diff --git a/Cargo.lock b/Cargo.lock index 9955e7a77..5966243a2 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -750,7 +750,7 @@ dependencies = [ [[package]] name = "binary-merkle-tree" version = "15.0.1" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "hash-db", "log", @@ -967,7 +967,7 @@ dependencies = [ [[package]] name = "bp-xcm-bridge-hub-router" version = "0.14.1" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "parity-scale-codec", "scale-info", @@ -1709,7 +1709,7 @@ dependencies = [ [[package]] name = "cumulus-client-cli" version = "0.18.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "clap", "parity-scale-codec", @@ -1726,7 +1726,7 @@ dependencies = [ [[package]] name = "cumulus-client-collator" version = "0.18.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "cumulus-client-consensus-common", "cumulus-client-network", @@ -1749,7 +1749,7 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-aura" version = "0.18.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "async-trait", "cumulus-client-collator", @@ -1794,7 +1794,7 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-common" version = "0.18.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "async-trait", "cumulus-client-pov-recovery", @@ -1824,7 +1824,7 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-proposer" version = "0.16.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "anyhow", "async-trait", @@ -1839,7 +1839,7 @@ dependencies = [ [[package]] name = "cumulus-client-network" version = "0.18.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "async-trait", "cumulus-relay-chain-interface", @@ -1865,7 +1865,7 @@ dependencies = [ [[package]] name = "cumulus-client-parachain-inherent" version = "0.12.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -1887,7 +1887,7 @@ dependencies = [ [[package]] name = "cumulus-client-pov-recovery" version = "0.18.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -1913,7 +1913,7 @@ dependencies = [ [[package]] name = "cumulus-client-service" version = "0.19.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "cumulus-client-cli", "cumulus-client-collator", @@ -1950,7 +1950,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-aura-ext" version = "0.17.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "cumulus-pallet-parachain-system", "frame-support 38.0.0", @@ -1967,7 +1967,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-parachain-system" version = "0.17.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "bytes", "cumulus-pallet-parachain-system-proc-macro", @@ -2003,7 +2003,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-parachain-system-proc-macro" version = "0.6.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "proc-macro-crate 3.2.0", "proc-macro2", @@ -2014,7 +2014,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-session-benchmarking" version = "19.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "frame-benchmarking 38.0.0", "frame-support 38.0.0", @@ -2027,7 +2027,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-xcm" version = "0.17.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "cumulus-primitives-core", "frame-support 38.0.0", @@ -2042,7 +2042,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-xcmp-queue" version = "0.17.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "bounded-collections", "bp-xcm-bridge-hub-router", @@ -2067,7 +2067,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-aura" version = "0.15.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "sp-api 34.0.0", "sp-consensus-aura", @@ -2076,7 +2076,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-core" version = "0.16.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "parity-scale-codec", "polkadot-core-primitives 15.0.0", @@ -2092,7 +2092,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-parachain-inherent" version = "0.16.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -2106,7 +2106,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-proof-size-hostfunction" version = "0.10.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "sp-externalities 0.29.0", "sp-runtime-interface 28.0.0", @@ -2116,7 +2116,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-storage-weight-reclaim" version = "8.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "cumulus-primitives-core", "cumulus-primitives-proof-size-hostfunction", @@ -2132,7 +2132,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-utility" version = "0.17.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "cumulus-primitives-core", "frame-support 38.0.0", @@ -2149,7 +2149,7 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-inprocess-interface" version = "0.19.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -2173,7 +2173,7 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-interface" version = "0.18.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -2192,7 +2192,7 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-minimal-node" version = "0.19.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "array-bytes", "async-trait", @@ -2227,7 +2227,7 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-rpc-interface" version = "0.18.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -2266,7 +2266,7 @@ dependencies = [ [[package]] name = "cumulus-test-relay-sproof-builder" version = "0.16.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "cumulus-primitives-core", "parity-scale-codec", @@ -3205,7 +3205,7 @@ checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" [[package]] name = "fork-tree" version = "13.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "parity-scale-codec", ] @@ -3264,7 +3264,7 @@ dependencies = [ [[package]] name = "frame-benchmarking" version = "38.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "frame-support 38.0.0", "frame-support-procedural 30.0.3", @@ -3288,7 +3288,7 @@ dependencies = [ [[package]] name = "frame-benchmarking-cli" version = "43.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "Inflector", "array-bytes", @@ -3350,7 +3350,7 @@ dependencies = [ [[package]] name = "frame-election-provider-solution-type" version = "14.0.1" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "proc-macro-crate 3.2.0", "proc-macro2", @@ -3379,7 +3379,7 @@ dependencies = [ [[package]] name = "frame-election-provider-support" version = "38.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "frame-election-provider-solution-type 14.0.1", "frame-support 38.0.0", @@ -3395,7 +3395,7 @@ dependencies = [ [[package]] name = "frame-executive" version = "38.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "aquamarine", "frame-support 38.0.0", @@ -3425,7 +3425,7 @@ dependencies = [ [[package]] name = "frame-metadata-hash-extension" version = "0.6.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "array-bytes", "docify", @@ -3482,7 +3482,7 @@ dependencies = [ [[package]] name = "frame-support" version = "38.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "aquamarine", "array-bytes", @@ -3543,7 +3543,7 @@ dependencies = [ [[package]] name = "frame-support-procedural" version = "30.0.3" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "Inflector", "cfg-expr", @@ -3576,7 +3576,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools" version = "13.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "frame-support-procedural-tools-derive 12.0.0", "proc-macro-crate 3.2.0", @@ -3599,7 +3599,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools-derive" version = "12.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "proc-macro2", "quote", @@ -3630,7 +3630,7 @@ dependencies = [ [[package]] name = "frame-system" version = "38.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "cfg-if", "docify", @@ -3650,7 +3650,7 @@ dependencies = [ [[package]] name = "frame-system-benchmarking" version = "38.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "frame-benchmarking 38.0.0", "frame-support 38.0.0", @@ -3664,7 +3664,7 @@ dependencies = [ [[package]] name = "frame-system-rpc-runtime-api" version = "34.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "docify", "parity-scale-codec", @@ -3674,7 +3674,7 @@ dependencies = [ [[package]] name = "frame-try-runtime" version = "0.44.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "frame-support 38.0.0", "parity-scale-codec", @@ -5915,7 +5915,7 @@ dependencies = [ [[package]] name = "mmr-gadget" version = "40.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "futures", "log", @@ -5934,7 +5934,7 @@ dependencies = [ [[package]] name = "mmr-rpc" version = "38.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -6593,7 +6593,7 @@ checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" [[package]] name = "pallet-asset-conversion" version = "20.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "frame-benchmarking 38.0.0", "frame-support 38.0.0", @@ -6627,7 +6627,7 @@ dependencies = [ [[package]] name = "pallet-asset-rate" version = "17.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "frame-benchmarking 38.0.0", "frame-support 38.0.0", @@ -6641,7 +6641,7 @@ dependencies = [ [[package]] name = "pallet-asset-tx-payment" version = "38.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "frame-benchmarking 38.0.0", "frame-support 38.0.0", @@ -6658,7 +6658,7 @@ dependencies = [ [[package]] name = "pallet-assets" version = "40.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "frame-benchmarking 38.0.0", "frame-support 38.0.0", @@ -6674,7 +6674,7 @@ dependencies = [ [[package]] name = "pallet-aura" version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "frame-support 38.0.0", "frame-system 38.0.0", @@ -6707,7 +6707,7 @@ dependencies = [ [[package]] name = "pallet-authority-discovery" version = "38.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "frame-support 38.0.0", "frame-system 38.0.0", @@ -6737,7 +6737,7 @@ dependencies = [ [[package]] name = "pallet-authorship" version = "38.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "frame-support 38.0.0", "frame-system 38.0.0", @@ -6775,7 +6775,7 @@ dependencies = [ [[package]] name = "pallet-babe" version = "38.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "frame-benchmarking 38.0.0", "frame-support 38.0.0", @@ -6798,7 +6798,7 @@ dependencies = [ [[package]] name = "pallet-bags-list" version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "aquamarine", "docify", @@ -6836,7 +6836,7 @@ dependencies = [ [[package]] name = "pallet-balances" version = "39.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "docify", "frame-benchmarking 38.0.0", @@ -6851,7 +6851,7 @@ dependencies = [ [[package]] name = "pallet-beefy" version = "39.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "frame-support 38.0.0", "frame-system 38.0.0", @@ -6870,7 +6870,7 @@ dependencies = [ [[package]] name = "pallet-beefy-mmr" version = "39.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "array-bytes", "binary-merkle-tree", @@ -6895,7 +6895,7 @@ dependencies = [ [[package]] name = "pallet-bounties" version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "frame-benchmarking 38.0.0", "frame-support 38.0.0", @@ -6931,7 +6931,7 @@ dependencies = [ [[package]] name = "pallet-broker" version = "0.17.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "bitvec", "frame-benchmarking 38.0.0", @@ -6978,7 +6978,7 @@ dependencies = [ [[package]] name = "pallet-child-bounties" version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "frame-benchmarking 38.0.0", "frame-support 38.0.0", @@ -6996,7 +6996,7 @@ dependencies = [ [[package]] name = "pallet-collator-selection" version = "19.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "frame-benchmarking 38.0.0", "frame-support 38.0.0", @@ -7015,7 +7015,7 @@ dependencies = [ [[package]] name = "pallet-collective" version = "38.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "frame-benchmarking 38.0.0", "frame-support 38.0.0", @@ -7031,7 +7031,7 @@ dependencies = [ [[package]] name = "pallet-conviction-voting" version = "38.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "assert_matches", "frame-benchmarking 38.0.0", @@ -7047,7 +7047,7 @@ dependencies = [ [[package]] name = "pallet-delegated-staking" version = "5.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "frame-support 38.0.0", "frame-system 38.0.0", @@ -7062,7 +7062,7 @@ dependencies = [ [[package]] name = "pallet-democracy" version = "38.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "frame-benchmarking 38.0.0", "frame-support 38.0.0", @@ -7103,7 +7103,7 @@ dependencies = [ [[package]] name = "pallet-election-provider-multi-phase" version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "frame-benchmarking 38.0.0", "frame-election-provider-support 38.0.0", @@ -7140,7 +7140,7 @@ dependencies = [ [[package]] name = "pallet-election-provider-support-benchmarking" version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "frame-benchmarking 38.0.0", "frame-election-provider-support 38.0.0", @@ -7153,7 +7153,7 @@ dependencies = [ [[package]] name = "pallet-elections-phragmen" version = "39.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "frame-benchmarking 38.0.0", "frame-support 38.0.0", @@ -7191,7 +7191,7 @@ dependencies = [ [[package]] name = "pallet-fast-unstake" version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "docify", "frame-benchmarking 38.0.0", @@ -7252,7 +7252,7 @@ dependencies = [ [[package]] name = "pallet-grandpa" version = "38.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "frame-benchmarking 38.0.0", "frame-support 38.0.0", @@ -7292,7 +7292,7 @@ dependencies = [ [[package]] name = "pallet-identity" version = "38.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "enumflags2", "frame-benchmarking 38.0.0", @@ -7308,7 +7308,7 @@ dependencies = [ [[package]] name = "pallet-im-online" version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "frame-benchmarking 38.0.0", "frame-support 38.0.0", @@ -7327,7 +7327,7 @@ dependencies = [ [[package]] name = "pallet-indices" version = "38.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "frame-benchmarking 38.0.0", "frame-support 38.0.0", @@ -7343,7 +7343,7 @@ dependencies = [ [[package]] name = "pallet-membership" version = "38.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "frame-benchmarking 38.0.0", "frame-support 38.0.0", @@ -7380,7 +7380,7 @@ dependencies = [ [[package]] name = "pallet-message-queue" version = "41.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "environmental", "frame-benchmarking 38.0.0", @@ -7399,7 +7399,7 @@ dependencies = [ [[package]] name = "pallet-mmr" version = "38.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "frame-benchmarking 38.0.0", "frame-support 38.0.0", @@ -7416,7 +7416,7 @@ dependencies = [ [[package]] name = "pallet-multisig" version = "38.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "frame-benchmarking 38.0.0", "frame-support 38.0.0", @@ -7431,7 +7431,7 @@ dependencies = [ [[package]] name = "pallet-nfts" version = "32.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "enumflags2", "frame-benchmarking 38.0.0", @@ -7448,7 +7448,7 @@ dependencies = [ [[package]] name = "pallet-nis" version = "38.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "frame-benchmarking 38.0.0", "frame-support 38.0.0", @@ -7463,7 +7463,7 @@ dependencies = [ [[package]] name = "pallet-nomination-pools" version = "35.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "frame-support 38.0.0", "frame-system 38.0.0", @@ -7481,7 +7481,7 @@ dependencies = [ [[package]] name = "pallet-nomination-pools-benchmarking" version = "36.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "frame-benchmarking 38.0.0", "frame-election-provider-support 38.0.0", @@ -7501,7 +7501,7 @@ dependencies = [ [[package]] name = "pallet-nomination-pools-runtime-api" version = "33.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "pallet-nomination-pools", "parity-scale-codec", @@ -7511,7 +7511,7 @@ dependencies = [ [[package]] name = "pallet-offences" version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "frame-support 38.0.0", "frame-system 38.0.0", @@ -7527,7 +7527,7 @@ dependencies = [ [[package]] name = "pallet-offences-benchmarking" version = "38.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "frame-benchmarking 38.0.0", "frame-election-provider-support 38.0.0", @@ -7550,7 +7550,7 @@ dependencies = [ [[package]] name = "pallet-parameters" version = "0.9.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "docify", "frame-benchmarking 38.0.0", @@ -7603,7 +7603,7 @@ dependencies = [ [[package]] name = "pallet-preimage" version = "38.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "frame-benchmarking 38.0.0", "frame-support 38.0.0", @@ -7657,7 +7657,7 @@ dependencies = [ [[package]] name = "pallet-proxy" version = "38.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "frame-benchmarking 38.0.0", "frame-support 38.0.0", @@ -7690,7 +7690,7 @@ dependencies = [ [[package]] name = "pallet-ranked-collective" version = "38.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "frame-benchmarking 38.0.0", "frame-support 38.0.0", @@ -7708,7 +7708,7 @@ dependencies = [ [[package]] name = "pallet-recovery" version = "38.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "frame-benchmarking 38.0.0", "frame-support 38.0.0", @@ -7722,7 +7722,7 @@ dependencies = [ [[package]] name = "pallet-referenda" version = "38.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "assert_matches", "frame-benchmarking 38.0.0", @@ -7740,7 +7740,7 @@ dependencies = [ [[package]] name = "pallet-root-testing" version = "14.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "frame-support 38.0.0", "frame-system 38.0.0", @@ -7754,7 +7754,7 @@ dependencies = [ [[package]] name = "pallet-scheduler" version = "39.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "docify", "frame-benchmarking 38.0.0", @@ -7794,7 +7794,7 @@ dependencies = [ [[package]] name = "pallet-session" version = "38.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "frame-support 38.0.0", "frame-system 38.0.0", @@ -7815,7 +7815,7 @@ dependencies = [ [[package]] name = "pallet-session-benchmarking" version = "38.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "frame-benchmarking 38.0.0", "frame-support 38.0.0", @@ -7831,7 +7831,7 @@ dependencies = [ [[package]] name = "pallet-society" version = "38.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "frame-benchmarking 38.0.0", "frame-support 38.0.0", @@ -7871,7 +7871,7 @@ dependencies = [ [[package]] name = "pallet-staking" version = "38.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "frame-benchmarking 38.0.0", "frame-election-provider-support 38.0.0", @@ -7903,7 +7903,7 @@ dependencies = [ [[package]] name = "pallet-staking-reward-fn" version = "22.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "log", "sp-arithmetic 26.0.0", @@ -7912,7 +7912,7 @@ dependencies = [ [[package]] name = "pallet-staking-runtime-api" version = "24.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "parity-scale-codec", "sp-api 34.0.0", @@ -7922,7 +7922,7 @@ dependencies = [ [[package]] name = "pallet-state-trie-migration" version = "40.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "frame-benchmarking 38.0.0", "frame-support 38.0.0", @@ -7973,7 +7973,7 @@ dependencies = [ [[package]] name = "pallet-sudo" version = "38.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "docify", "frame-benchmarking 38.0.0", @@ -8009,7 +8009,7 @@ dependencies = [ [[package]] name = "pallet-timestamp" version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "docify", "frame-benchmarking 38.0.0", @@ -8028,7 +8028,7 @@ dependencies = [ [[package]] name = "pallet-tips" version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "frame-benchmarking 38.0.0", "frame-support 38.0.0", @@ -8063,7 +8063,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment" version = "38.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "frame-support 38.0.0", "frame-system 38.0.0", @@ -8078,7 +8078,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc" version = "41.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "jsonrpsee", "pallet-transaction-payment-rpc-runtime-api", @@ -8094,7 +8094,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc-runtime-api" version = "38.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "pallet-transaction-payment 38.0.0", "parity-scale-codec", @@ -8126,7 +8126,7 @@ dependencies = [ [[package]] name = "pallet-treasury" version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "docify", "frame-benchmarking 38.0.0", @@ -8144,7 +8144,7 @@ dependencies = [ [[package]] name = "pallet-uniques" version = "38.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "frame-benchmarking 38.0.0", "frame-support 38.0.0", @@ -8158,7 +8158,7 @@ dependencies = [ [[package]] name = "pallet-utility" version = "38.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "frame-benchmarking 38.0.0", "frame-support 38.0.0", @@ -8189,7 +8189,7 @@ dependencies = [ [[package]] name = "pallet-vesting" version = "38.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "frame-benchmarking 38.0.0", "frame-support 38.0.0", @@ -8203,7 +8203,7 @@ dependencies = [ [[package]] name = "pallet-whitelist" version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "frame-benchmarking 38.0.0", "frame-support 38.0.0", @@ -8217,7 +8217,7 @@ dependencies = [ [[package]] name = "pallet-xcm" version = "17.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "bounded-collections", "frame-benchmarking 38.0.0", @@ -8240,7 +8240,7 @@ dependencies = [ [[package]] name = "pallet-xcm-benchmarks" version = "17.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "frame-benchmarking 38.0.0", "frame-support 38.0.0", @@ -8258,7 +8258,7 @@ dependencies = [ [[package]] name = "parachains-common" version = "18.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "cumulus-primitives-core", "cumulus-primitives-utility", @@ -8604,7 +8604,7 @@ checksum = "953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2" [[package]] name = "polkadot-approval-distribution" version = "18.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "bitvec", "futures", @@ -8624,7 +8624,7 @@ dependencies = [ [[package]] name = "polkadot-availability-bitfield-distribution" version = "18.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "always-assert", "futures", @@ -8640,7 +8640,7 @@ dependencies = [ [[package]] name = "polkadot-availability-distribution" version = "18.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "derive_more", "fatality", @@ -8664,7 +8664,7 @@ dependencies = [ [[package]] name = "polkadot-availability-recovery" version = "18.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "async-trait", "fatality", @@ -8697,7 +8697,7 @@ dependencies = [ [[package]] name = "polkadot-cli" version = "19.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "cfg-if", "clap", @@ -8725,7 +8725,7 @@ dependencies = [ [[package]] name = "polkadot-collator-protocol" version = "18.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "bitvec", "fatality", @@ -8761,7 +8761,7 @@ dependencies = [ [[package]] name = "polkadot-core-primitives" version = "15.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "parity-scale-codec", "scale-info", @@ -8772,7 +8772,7 @@ dependencies = [ [[package]] name = "polkadot-dispute-distribution" version = "18.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "derive_more", "fatality", @@ -8797,7 +8797,7 @@ dependencies = [ [[package]] name = "polkadot-erasure-coding" version = "16.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "parity-scale-codec", "polkadot-node-primitives", @@ -8811,7 +8811,7 @@ dependencies = [ [[package]] name = "polkadot-gossip-support" version = "18.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "futures", "futures-timer", @@ -8833,7 +8833,7 @@ dependencies = [ [[package]] name = "polkadot-network-bridge" version = "18.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "always-assert", "async-trait", @@ -8856,7 +8856,7 @@ dependencies = [ [[package]] name = "polkadot-node-collation-generation" version = "18.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "futures", "parity-scale-codec", @@ -8874,7 +8874,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-approval-voting" version = "18.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "bitvec", "derive_more", @@ -8907,7 +8907,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-av-store" version = "18.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "bitvec", "futures", @@ -8929,7 +8929,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-backing" version = "18.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "bitvec", "fatality", @@ -8949,7 +8949,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-bitfield-signing" version = "18.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "futures", "polkadot-node-subsystem", @@ -8964,7 +8964,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-candidate-validation" version = "18.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "async-trait", "futures", @@ -8986,7 +8986,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-chain-api" version = "18.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "futures", "polkadot-node-metrics", @@ -9000,7 +9000,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-chain-selection" version = "18.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "futures", "futures-timer", @@ -9017,7 +9017,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-dispute-coordinator" version = "18.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "fatality", "futures", @@ -9036,7 +9036,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-parachains-inherent" version = "18.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "async-trait", "futures", @@ -9053,7 +9053,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-prospective-parachains" version = "17.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "fatality", "futures", @@ -9067,7 +9067,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-provisioner" version = "18.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "bitvec", "fatality", @@ -9085,7 +9085,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-pvf" version = "18.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "always-assert", "array-bytes", @@ -9114,7 +9114,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-pvf-checker" version = "18.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "futures", "polkadot-node-primitives", @@ -9130,7 +9130,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-pvf-common" version = "16.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "cpu-time", "futures", @@ -9156,7 +9156,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-runtime-api" version = "18.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "futures", "polkadot-node-metrics", @@ -9171,7 +9171,7 @@ dependencies = [ [[package]] name = "polkadot-node-jaeger" version = "18.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "lazy_static", "log", @@ -9190,7 +9190,7 @@ dependencies = [ [[package]] name = "polkadot-node-metrics" version = "18.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "bs58 0.5.1", "futures", @@ -9209,7 +9209,7 @@ dependencies = [ [[package]] name = "polkadot-node-network-protocol" version = "18.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "async-channel 1.9.0", "async-trait", @@ -9235,7 +9235,7 @@ dependencies = [ [[package]] name = "polkadot-node-primitives" version = "16.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "bitvec", "bounded-vec", @@ -9261,7 +9261,7 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem" version = "18.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "polkadot-node-jaeger", "polkadot-node-subsystem-types", @@ -9271,7 +9271,7 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem-types" version = "18.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "async-trait", "bitvec", @@ -9301,7 +9301,7 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem-util" version = "18.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "async-trait", "derive_more", @@ -9337,7 +9337,7 @@ dependencies = [ [[package]] name = "polkadot-overseer" version = "18.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "async-trait", "futures", @@ -9377,7 +9377,7 @@ dependencies = [ [[package]] name = "polkadot-parachain-primitives" version = "14.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "bounded-collections", "derive_more", @@ -9421,7 +9421,7 @@ dependencies = [ [[package]] name = "polkadot-primitives" version = "16.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "bitvec", "hex-literal", @@ -9447,7 +9447,7 @@ dependencies = [ [[package]] name = "polkadot-rpc" version = "19.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "jsonrpsee", "mmr-rpc", @@ -9533,7 +9533,7 @@ dependencies = [ [[package]] name = "polkadot-runtime-common" version = "17.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "bitvec", "frame-benchmarking 38.0.0", @@ -9612,7 +9612,7 @@ dependencies = [ [[package]] name = "polkadot-runtime-metrics" version = "17.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "bs58 0.5.1", "frame-benchmarking 38.0.0", @@ -9673,7 +9673,7 @@ dependencies = [ [[package]] name = "polkadot-runtime-parachains" version = "17.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "bitflags 1.3.2", "bitvec", @@ -9722,7 +9722,7 @@ dependencies = [ [[package]] name = "polkadot-service" version = "19.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "async-trait", "frame-benchmarking 38.0.0", @@ -9831,7 +9831,7 @@ dependencies = [ [[package]] name = "polkadot-statement-distribution" version = "18.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "arrayvec 0.7.6", "bitvec", @@ -9854,7 +9854,7 @@ dependencies = [ [[package]] name = "polkadot-statement-table" version = "16.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "parity-scale-codec", "polkadot-primitives 16.0.0", @@ -10839,7 +10839,7 @@ dependencies = [ [[package]] name = "rococo-runtime" version = "18.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "binary-merkle-tree", "bitvec", @@ -10939,7 +10939,7 @@ dependencies = [ [[package]] name = "rococo-runtime-constants" version = "17.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "frame-support 38.0.0", "polkadot-primitives 16.0.0", @@ -11267,7 +11267,7 @@ dependencies = [ [[package]] name = "sc-allocator" version = "29.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "log", "sp-core 34.0.0", @@ -11278,7 +11278,7 @@ dependencies = [ [[package]] name = "sc-authority-discovery" version = "0.45.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "async-trait", "futures", @@ -11308,7 +11308,7 @@ dependencies = [ [[package]] name = "sc-basic-authorship" version = "0.45.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "futures", "futures-timer", @@ -11330,7 +11330,7 @@ dependencies = [ [[package]] name = "sc-block-builder" version = "0.42.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "parity-scale-codec", "sp-api 34.0.0", @@ -11345,7 +11345,7 @@ dependencies = [ [[package]] name = "sc-chain-spec" version = "38.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "array-bytes", "docify", @@ -11372,7 +11372,7 @@ dependencies = [ [[package]] name = "sc-chain-spec-derive" version = "12.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "proc-macro-crate 3.2.0", "proc-macro2", @@ -11383,7 +11383,7 @@ dependencies = [ [[package]] name = "sc-cli" version = "0.47.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "array-bytes", "chrono", @@ -11424,7 +11424,7 @@ dependencies = [ [[package]] name = "sc-client-api" version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "fnv", "futures", @@ -11451,7 +11451,7 @@ dependencies = [ [[package]] name = "sc-client-db" version = "0.44.1" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "hash-db", "kvdb", @@ -11477,7 +11477,7 @@ dependencies = [ [[package]] name = "sc-consensus" version = "0.44.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "async-trait", "futures", @@ -11501,7 +11501,7 @@ dependencies = [ [[package]] name = "sc-consensus-aura" version = "0.45.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "async-trait", "futures", @@ -11530,7 +11530,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe" version = "0.45.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "async-trait", "fork-tree", @@ -11566,7 +11566,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe-rpc" version = "0.45.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "futures", "jsonrpsee", @@ -11588,7 +11588,7 @@ dependencies = [ [[package]] name = "sc-consensus-beefy" version = "24.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "array-bytes", "async-channel 1.9.0", @@ -11624,7 +11624,7 @@ dependencies = [ [[package]] name = "sc-consensus-beefy-rpc" version = "24.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "futures", "jsonrpsee", @@ -11644,7 +11644,7 @@ dependencies = [ [[package]] name = "sc-consensus-epochs" version = "0.44.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "fork-tree", "parity-scale-codec", @@ -11657,7 +11657,7 @@ dependencies = [ [[package]] name = "sc-consensus-grandpa" version = "0.30.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "ahash 0.8.11", "array-bytes", @@ -11701,7 +11701,7 @@ dependencies = [ [[package]] name = "sc-consensus-grandpa-rpc" version = "0.30.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "finality-grandpa", "futures", @@ -11721,7 +11721,7 @@ dependencies = [ [[package]] name = "sc-consensus-manual-seal" version = "0.46.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "assert_matches", "async-trait", @@ -11756,7 +11756,7 @@ dependencies = [ [[package]] name = "sc-consensus-slots" version = "0.44.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "async-trait", "futures", @@ -11779,7 +11779,7 @@ dependencies = [ [[package]] name = "sc-executor" version = "0.40.1" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "parity-scale-codec", "parking_lot 0.12.3", @@ -11802,7 +11802,7 @@ dependencies = [ [[package]] name = "sc-executor-common" version = "0.35.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "polkavm", "sc-allocator", @@ -11815,7 +11815,7 @@ dependencies = [ [[package]] name = "sc-executor-polkavm" version = "0.32.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "log", "polkavm", @@ -11826,7 +11826,7 @@ dependencies = [ [[package]] name = "sc-executor-wasmtime" version = "0.35.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "anyhow", "cfg-if", @@ -11844,7 +11844,7 @@ dependencies = [ [[package]] name = "sc-informant" version = "0.44.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "console", "futures", @@ -11861,7 +11861,7 @@ dependencies = [ [[package]] name = "sc-keystore" version = "33.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "array-bytes", "parking_lot 0.12.3", @@ -11875,7 +11875,7 @@ dependencies = [ [[package]] name = "sc-mixnet" version = "0.15.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "array-bytes", "arrayvec 0.7.6", @@ -11904,7 +11904,7 @@ dependencies = [ [[package]] name = "sc-network" version = "0.45.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "array-bytes", "async-channel 1.9.0", @@ -11955,7 +11955,7 @@ dependencies = [ [[package]] name = "sc-network-common" version = "0.44.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "async-trait", "bitflags 1.3.2", @@ -11973,7 +11973,7 @@ dependencies = [ [[package]] name = "sc-network-gossip" version = "0.45.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "ahash 0.8.11", "futures", @@ -11992,7 +11992,7 @@ dependencies = [ [[package]] name = "sc-network-light" version = "0.44.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "array-bytes", "async-channel 1.9.0", @@ -12013,7 +12013,7 @@ dependencies = [ [[package]] name = "sc-network-sync" version = "0.44.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "array-bytes", "async-channel 1.9.0", @@ -12050,7 +12050,7 @@ dependencies = [ [[package]] name = "sc-network-transactions" version = "0.44.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "array-bytes", "futures", @@ -12069,7 +12069,7 @@ dependencies = [ [[package]] name = "sc-network-types" version = "0.12.1" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "bs58 0.5.1", "ed25519-dalek", @@ -12086,7 +12086,7 @@ dependencies = [ [[package]] name = "sc-offchain" version = "40.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "array-bytes", "bytes", @@ -12120,7 +12120,7 @@ dependencies = [ [[package]] name = "sc-proposer-metrics" version = "0.18.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "log", "substrate-prometheus-endpoint", @@ -12129,7 +12129,7 @@ dependencies = [ [[package]] name = "sc-rpc" version = "40.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "futures", "jsonrpsee", @@ -12161,7 +12161,7 @@ dependencies = [ [[package]] name = "sc-rpc-api" version = "0.44.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -12181,7 +12181,7 @@ dependencies = [ [[package]] name = "sc-rpc-server" version = "17.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "dyn-clone", "forwarded-header-value", @@ -12205,7 +12205,7 @@ dependencies = [ [[package]] name = "sc-rpc-spec-v2" version = "0.45.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "array-bytes", "futures", @@ -12237,7 +12237,7 @@ dependencies = [ [[package]] name = "sc-service" version = "0.46.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "async-trait", "directories", @@ -12301,7 +12301,7 @@ dependencies = [ [[package]] name = "sc-state-db" version = "0.36.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "log", "parity-scale-codec", @@ -12312,7 +12312,7 @@ dependencies = [ [[package]] name = "sc-storage-monitor" version = "0.22.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "clap", "fs4", @@ -12325,7 +12325,7 @@ dependencies = [ [[package]] name = "sc-sync-state-rpc" version = "0.45.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -12344,7 +12344,7 @@ dependencies = [ [[package]] name = "sc-sysinfo" version = "38.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "derive_more", "futures", @@ -12365,7 +12365,7 @@ dependencies = [ [[package]] name = "sc-telemetry" version = "25.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "chrono", "futures", @@ -12385,7 +12385,7 @@ dependencies = [ [[package]] name = "sc-tracing" version = "37.0.1" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "chrono", "console", @@ -12414,7 +12414,7 @@ dependencies = [ [[package]] name = "sc-tracing-proc-macro" version = "11.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "proc-macro-crate 3.2.0", "proc-macro2", @@ -12425,7 +12425,7 @@ dependencies = [ [[package]] name = "sc-transaction-pool" version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "async-trait", "futures", @@ -12452,7 +12452,7 @@ dependencies = [ [[package]] name = "sc-transaction-pool-api" version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "async-trait", "futures", @@ -12468,7 +12468,7 @@ dependencies = [ [[package]] name = "sc-utils" version = "17.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "async-channel 1.9.0", "futures", @@ -13448,7 +13448,7 @@ dependencies = [ [[package]] name = "slot-range-helper" version = "15.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "enumn", "parity-scale-codec", @@ -13677,7 +13677,7 @@ dependencies = [ [[package]] name = "sp-api" version = "34.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "docify", "hash-db", @@ -13714,7 +13714,7 @@ dependencies = [ [[package]] name = "sp-api-proc-macro" version = "20.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "Inflector", "blake2 0.10.6", @@ -13742,7 +13742,7 @@ dependencies = [ [[package]] name = "sp-application-crypto" version = "38.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "parity-scale-codec", "scale-info", @@ -13769,7 +13769,7 @@ dependencies = [ [[package]] name = "sp-arithmetic" version = "26.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "docify", "integer-sqrt", @@ -13797,7 +13797,7 @@ dependencies = [ [[package]] name = "sp-authority-discovery" version = "34.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "parity-scale-codec", "scale-info", @@ -13809,7 +13809,7 @@ dependencies = [ [[package]] name = "sp-block-builder" version = "34.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "sp-api 34.0.0", "sp-inherents 34.0.0", @@ -13819,7 +13819,7 @@ dependencies = [ [[package]] name = "sp-blockchain" version = "37.0.1" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "futures", "parity-scale-codec", @@ -13838,7 +13838,7 @@ dependencies = [ [[package]] name = "sp-consensus" version = "0.40.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "async-trait", "futures", @@ -13853,7 +13853,7 @@ dependencies = [ [[package]] name = "sp-consensus-aura" version = "0.40.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "async-trait", "parity-scale-codec", @@ -13889,7 +13889,7 @@ dependencies = [ [[package]] name = "sp-consensus-babe" version = "0.40.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "async-trait", "parity-scale-codec", @@ -13907,7 +13907,7 @@ dependencies = [ [[package]] name = "sp-consensus-beefy" version = "22.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "lazy_static", "parity-scale-codec", @@ -13928,7 +13928,7 @@ dependencies = [ [[package]] name = "sp-consensus-grandpa" version = "21.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "finality-grandpa", "log", @@ -13958,7 +13958,7 @@ dependencies = [ [[package]] name = "sp-consensus-slots" version = "0.40.1" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "parity-scale-codec", "scale-info", @@ -14015,7 +14015,7 @@ dependencies = [ [[package]] name = "sp-core" version = "34.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "array-bytes", "bitflags 1.3.2", @@ -14075,7 +14075,7 @@ dependencies = [ [[package]] name = "sp-crypto-hashing" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "blake2b_simd", "byteorder", @@ -14099,7 +14099,7 @@ dependencies = [ [[package]] name = "sp-crypto-hashing-proc-macro" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "quote", "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409)", @@ -14109,7 +14109,7 @@ dependencies = [ [[package]] name = "sp-database" version = "10.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "kvdb", "parking_lot 0.12.3", @@ -14129,7 +14129,7 @@ dependencies = [ [[package]] name = "sp-debug-derive" version = "14.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "proc-macro2", "quote", @@ -14151,7 +14151,7 @@ dependencies = [ [[package]] name = "sp-externalities" version = "0.29.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "environmental", "parity-scale-codec", @@ -14173,7 +14173,7 @@ dependencies = [ [[package]] name = "sp-genesis-builder" version = "0.15.1" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "parity-scale-codec", "scale-info", @@ -14200,7 +14200,7 @@ dependencies = [ [[package]] name = "sp-inherents" version = "34.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "async-trait", "impl-trait-for-tuples", @@ -14239,7 +14239,7 @@ dependencies = [ [[package]] name = "sp-io" version = "38.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "bytes", "docify", @@ -14265,7 +14265,7 @@ dependencies = [ [[package]] name = "sp-keyring" version = "39.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "sp-core 34.0.0", "sp-runtime 39.0.1", @@ -14288,7 +14288,7 @@ dependencies = [ [[package]] name = "sp-keystore" version = "0.40.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "parity-scale-codec", "parking_lot 0.12.3", @@ -14299,7 +14299,7 @@ dependencies = [ [[package]] name = "sp-maybe-compressed-blob" version = "11.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "thiserror", "zstd 0.12.4", @@ -14320,7 +14320,7 @@ dependencies = [ [[package]] name = "sp-metadata-ir" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "frame-metadata", "parity-scale-codec", @@ -14330,7 +14330,7 @@ dependencies = [ [[package]] name = "sp-mixnet" version = "0.12.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "parity-scale-codec", "scale-info", @@ -14341,7 +14341,7 @@ dependencies = [ [[package]] name = "sp-mmr-primitives" version = "34.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "log", "parity-scale-codec", @@ -14373,7 +14373,7 @@ dependencies = [ [[package]] name = "sp-npos-elections" version = "34.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "parity-scale-codec", "scale-info", @@ -14386,7 +14386,7 @@ dependencies = [ [[package]] name = "sp-offchain" version = "34.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "sp-api 34.0.0", "sp-core 34.0.0", @@ -14407,7 +14407,7 @@ dependencies = [ [[package]] name = "sp-panic-handler" version = "13.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "backtrace", "lazy_static", @@ -14417,7 +14417,7 @@ dependencies = [ [[package]] name = "sp-rpc" version = "32.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "rustc-hash 1.1.0", "serde", @@ -14452,7 +14452,7 @@ dependencies = [ [[package]] name = "sp-runtime" version = "39.0.1" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "docify", "either", @@ -14497,7 +14497,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "bytes", "impl-trait-for-tuples", @@ -14530,7 +14530,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface-proc-macro" version = "18.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "Inflector", "expander", @@ -14559,7 +14559,7 @@ dependencies = [ [[package]] name = "sp-session" version = "36.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "parity-scale-codec", "scale-info", @@ -14588,7 +14588,7 @@ dependencies = [ [[package]] name = "sp-staking" version = "36.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", @@ -14623,7 +14623,7 @@ dependencies = [ [[package]] name = "sp-state-machine" version = "0.43.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "hash-db", "log", @@ -14643,7 +14643,7 @@ dependencies = [ [[package]] name = "sp-statement-store" version = "18.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "aes-gcm", "curve25519-dalek 4.1.3", @@ -14673,7 +14673,7 @@ checksum = "12f8ee986414b0a9ad741776762f4083cd3a5128449b982a3919c4df36874834" [[package]] name = "sp-std" version = "14.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" [[package]] name = "sp-storage" @@ -14692,7 +14692,7 @@ dependencies = [ [[package]] name = "sp-storage" version = "21.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "impl-serde", "parity-scale-codec", @@ -14718,7 +14718,7 @@ dependencies = [ [[package]] name = "sp-timestamp" version = "34.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "async-trait", "parity-scale-codec", @@ -14743,7 +14743,7 @@ dependencies = [ [[package]] name = "sp-tracing" version = "17.0.1" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "parity-scale-codec", "tracing", @@ -14754,7 +14754,7 @@ dependencies = [ [[package]] name = "sp-transaction-pool" version = "34.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "sp-api 34.0.0", "sp-runtime 39.0.1", @@ -14763,7 +14763,7 @@ dependencies = [ [[package]] name = "sp-transaction-storage-proof" version = "34.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "async-trait", "parity-scale-codec", @@ -14802,7 +14802,7 @@ dependencies = [ [[package]] name = "sp-trie" version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "ahash 0.8.11", "hash-db", @@ -14843,7 +14843,7 @@ dependencies = [ [[package]] name = "sp-version" version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "impl-serde", "parity-scale-codec", @@ -14872,7 +14872,7 @@ dependencies = [ [[package]] name = "sp-version-proc-macro" version = "14.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "parity-scale-codec", "proc-macro2", @@ -14897,7 +14897,7 @@ dependencies = [ [[package]] name = "sp-wasm-interface" version = "21.0.1" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "anyhow", "impl-trait-for-tuples", @@ -14925,7 +14925,7 @@ dependencies = [ [[package]] name = "sp-weights" version = "31.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "bounded-collections", "parity-scale-codec", @@ -14991,7 +14991,7 @@ checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" [[package]] name = "staging-parachain-info" version = "0.17.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "cumulus-primitives-core", "frame-support 38.0.0", @@ -15023,7 +15023,7 @@ dependencies = [ [[package]] name = "staging-xcm" version = "14.2.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "array-bytes", "bounded-collections", @@ -15065,7 +15065,7 @@ dependencies = [ [[package]] name = "staging-xcm-builder" version = "17.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "frame-support 38.0.0", "frame-system 38.0.0", @@ -15109,7 +15109,7 @@ dependencies = [ [[package]] name = "staging-xcm-executor" version = "17.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "environmental", "frame-benchmarking 38.0.0", @@ -15444,7 +15444,7 @@ dependencies = [ [[package]] name = "substrate-bip39" version = "0.6.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "hmac 0.12.1", "pbkdf2 0.12.2", @@ -15456,12 +15456,12 @@ dependencies = [ [[package]] name = "substrate-build-script-utils" version = "11.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" [[package]] name = "substrate-frame-rpc-system" version = "39.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "docify", "frame-system-rpc-runtime-api", @@ -15481,7 +15481,7 @@ dependencies = [ [[package]] name = "substrate-prometheus-endpoint" version = "0.17.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "http-body-util", "hyper 1.4.1", @@ -15495,7 +15495,7 @@ dependencies = [ [[package]] name = "substrate-state-trie-migration-rpc" version = "38.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -15512,7 +15512,7 @@ dependencies = [ [[package]] name = "substrate-wasm-builder" version = "24.0.1" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "array-bytes", "build-helper", @@ -16075,7 +16075,7 @@ dependencies = [ [[package]] name = "tracing-gum" version = "16.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "coarsetime", "polkadot-primitives 16.0.0", @@ -16086,7 +16086,7 @@ dependencies = [ [[package]] name = "tracing-gum-proc-macro" version = "5.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "expander", "proc-macro-crate 3.2.0", @@ -16970,7 +16970,7 @@ dependencies = [ [[package]] name = "westend-runtime" version = "18.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "binary-merkle-tree", "bitvec", @@ -17078,7 +17078,7 @@ dependencies = [ [[package]] name = "westend-runtime-constants" version = "17.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "frame-support 38.0.0", "polkadot-primitives 16.0.0", @@ -17507,7 +17507,7 @@ dependencies = [ [[package]] name = "xcm-procedural" version = "10.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "Inflector", "proc-macro2", @@ -17518,7 +17518,7 @@ dependencies = [ [[package]] name = "xcm-runtime-apis" version = "0.4.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "frame-support 38.0.0", "parity-scale-codec", @@ -17532,7 +17532,7 @@ dependencies = [ [[package]] name = "xcm-simulator" version = "17.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#59370996db0d2b9d235cf4098270c06a392e8177" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2409#db2a0085d6a639d80a39138b981364afbf34b08a" dependencies = [ "frame-support 38.0.0", "frame-system 38.0.0", diff --git a/api-augment/dist/interfaces/lookup.js b/api-augment/dist/interfaces/lookup.js index a20e7950a..fc8371390 100644 --- a/api-augment/dist/interfaces/lookup.js +++ b/api-augment/dist/interfaces/lookup.js @@ -1384,6 +1384,11 @@ export default { providerId: "H256", amountSlashed: "u128" }, + BucketRootChanged: { + bucketId: "H256", + oldRoot: "H256", + newRoot: "H256" + }, MultiAddressAdded: { providerId: "H256", newMultiaddress: "Bytes" @@ -1435,12 +1440,12 @@ export default { _enum: { NewBucket: { who: "AccountId32", - mspId: "H256", + mspId: "Option", bucketId: "H256", name: "Bytes", collectionId: "Option", private: "bool", - valuePropId: "H256" + valuePropId: "Option" }, BucketDeleted: { who: "AccountId32", @@ -1475,8 +1480,8 @@ export default { size_: "u64", peerIds: "Vec" }, - MspRespondedToStorageRequests: { - results: "PalletFileSystemMspRespondStorageRequestsResult" + MspAcceptedStorageRequest: { + fileKey: "H256" }, AcceptedBspVolunteer: { _alias: { @@ -1505,6 +1510,10 @@ export default { StorageRequestRevoked: { fileKey: "H256" }, + StorageRequestRejected: { + fileKey: "H256", + reason: "PalletFileSystemRejectedStorageRequestReason" + }, BspRequestedToStopStoring: { bspId: "H256", fileKey: "H256", @@ -1535,7 +1544,7 @@ export default { user: "AccountId32", fileKey: "H256", bucketId: "H256", - mspId: "H256", + mspId: "Option", proofOfInclusion: "bool" }, ProofSubmittedForPendingFileDeletionRequest: { @@ -1561,10 +1570,6 @@ export default { bucketId: "H256", mspId: "H256" }, - DataServerRegisteredForMoveBucket: { - bspId: "H256", - bucketId: "H256" - }, MspStoppedStoringBucket: { mspId: "H256", owner: "AccountId32", @@ -1573,60 +1578,19 @@ export default { } }, /** - * Lookup135: pallet_file_system::types::MspRespondStorageRequestsResult - **/ - PalletFileSystemMspRespondStorageRequestsResult: { - mspId: "H256", - responses: "Vec" - }, - /** - * Lookup137: pallet_file_system::types::BatchResponses - **/ - PalletFileSystemBatchResponses: { - _enum: { - Accepted: "PalletFileSystemMspAcceptedBatchStorageRequests", - Rejected: "PalletFileSystemMspRejectedBatchStorageRequests", - Failed: "PalletFileSystemMspFailedBatchStorageRequests" - } - }, - /** - * Lookup138: pallet_file_system::types::MspAcceptedBatchStorageRequests - **/ - PalletFileSystemMspAcceptedBatchStorageRequests: { - fileKeys: "Vec", - bucketId: "H256", - newBucketRoot: "H256", - owner: "AccountId32" - }, - /** - * Lookup141: pallet_file_system::types::MspRejectedBatchStorageRequests - **/ - PalletFileSystemMspRejectedBatchStorageRequests: { - fileKeys: "Vec<(H256,PalletFileSystemRejectedStorageRequestReason)>", - bucketId: "H256", - owner: "AccountId32" - }, - /** - * Lookup144: pallet_file_system::types::RejectedStorageRequestReason + * Lookup138: pallet_file_system::types::RejectedStorageRequestReason **/ PalletFileSystemRejectedStorageRequestReason: { _enum: [ "ReachedMaximumCapacity", "ReceivedInvalidProof", "FileKeyAlreadyStored", + "RequestExpired", "InternalError" ] }, /** - * Lookup146: pallet_file_system::types::MspFailedBatchStorageRequests - **/ - PalletFileSystemMspFailedBatchStorageRequests: { - fileKeys: "Vec<(H256,SpRuntimeDispatchError)>", - bucketId: "H256", - owner: "AccountId32" - }, - /** - * Lookup151: pallet_file_system::types::EitherAccountIdOrMspId + * Lookup139: pallet_file_system::types::EitherAccountIdOrMspId **/ PalletFileSystemEitherAccountIdOrMspId: { _enum: { @@ -1635,7 +1599,7 @@ export default { } }, /** - * Lookup152: pallet_proofs_dealer::pallet::Event + * Lookup140: pallet_proofs_dealer::pallet::Event **/ PalletProofsDealerEvent: { _enum: { @@ -1680,34 +1644,34 @@ export default { } }, /** - * Lookup153: pallet_proofs_dealer::types::Proof + * Lookup141: pallet_proofs_dealer::types::Proof **/ PalletProofsDealerProof: { forestProof: "SpTrieStorageProofCompactProof", keyProofs: "BTreeMap" }, /** - * Lookup154: sp_trie::storage_proof::CompactProof + * Lookup142: sp_trie::storage_proof::CompactProof **/ SpTrieStorageProofCompactProof: { encodedNodes: "Vec" }, /** - * Lookup157: pallet_proofs_dealer::types::KeyProof + * Lookup145: pallet_proofs_dealer::types::KeyProof **/ PalletProofsDealerKeyProof: { proof: "ShpFileKeyVerifierFileKeyProof", challengeCount: "u32" }, /** - * Lookup158: shp_file_key_verifier::types::FileKeyProof + * Lookup146: shp_file_key_verifier::types::FileKeyProof **/ ShpFileKeyVerifierFileKeyProof: { fileMetadata: "ShpFileMetadataFileMetadata", proof: "SpTrieStorageProofCompactProof" }, /** - * Lookup159: shp_file_metadata::FileMetadata + * Lookup147: shp_file_metadata::FileMetadata **/ ShpFileMetadataFileMetadata: { owner: "Bytes", @@ -1717,15 +1681,15 @@ export default { fingerprint: "ShpFileMetadataFingerprint" }, /** - * Lookup160: shp_file_metadata::Fingerprint + * Lookup148: shp_file_metadata::Fingerprint **/ ShpFileMetadataFingerprint: "[u8;32]", /** - * Lookup166: shp_traits::TrieRemoveMutation + * Lookup154: shp_traits::TrieRemoveMutation **/ ShpTraitsTrieRemoveMutation: "Null", /** - * Lookup170: pallet_randomness::pallet::Event + * Lookup158: pallet_randomness::pallet::Event **/ PalletRandomnessEvent: { _enum: { @@ -1737,7 +1701,7 @@ export default { } }, /** - * Lookup171: pallet_payment_streams::pallet::Event + * Lookup159: pallet_payment_streams::pallet::Event **/ PalletPaymentStreamsEvent: { _enum: { @@ -1798,7 +1762,7 @@ export default { } }, /** - * Lookup173: pallet_bucket_nfts::pallet::Event + * Lookup161: pallet_bucket_nfts::pallet::Event **/ PalletBucketNftsEvent: { _enum: { @@ -1819,7 +1783,7 @@ export default { } }, /** - * Lookup174: pallet_nfts::pallet::Event + * Lookup162: pallet_nfts::pallet::Event **/ PalletNftsEvent: { _enum: { @@ -2020,7 +1984,7 @@ export default { } }, /** - * Lookup178: pallet_nfts::types::AttributeNamespace + * Lookup166: pallet_nfts::types::AttributeNamespace **/ PalletNftsAttributeNamespace: { _enum: { @@ -2031,20 +1995,20 @@ export default { } }, /** - * Lookup180: pallet_nfts::types::PriceWithDirection + * Lookup168: pallet_nfts::types::PriceWithDirection **/ PalletNftsPriceWithDirection: { amount: "u128", direction: "PalletNftsPriceDirection" }, /** - * Lookup181: pallet_nfts::types::PriceDirection + * Lookup169: pallet_nfts::types::PriceDirection **/ PalletNftsPriceDirection: { _enum: ["Send", "Receive"] }, /** - * Lookup182: pallet_nfts::types::PalletAttributes + * Lookup170: pallet_nfts::types::PalletAttributes **/ PalletNftsPalletAttributes: { _enum: { @@ -2053,7 +2017,7 @@ export default { } }, /** - * Lookup183: pallet_parameters::pallet::Event + * Lookup171: pallet_parameters::pallet::Event **/ PalletParametersEvent: { _enum: { @@ -2065,7 +2029,7 @@ export default { } }, /** - * Lookup184: storage_hub_runtime::configs::runtime_params::RuntimeParametersKey + * Lookup172: storage_hub_runtime::configs::runtime_params::RuntimeParametersKey **/ StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersKey: { _enum: { @@ -2073,7 +2037,7 @@ export default { } }, /** - * Lookup185: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::ParametersKey + * Lookup173: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::ParametersKey **/ StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParametersKey: { _enum: [ @@ -2097,77 +2061,77 @@ export default { ] }, /** - * Lookup186: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::SlashAmountPerMaxFileSize + * Lookup174: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::SlashAmountPerMaxFileSize **/ StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigSlashAmountPerMaxFileSize: "Null", /** - * Lookup187: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::StakeToChallengePeriod + * Lookup175: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::StakeToChallengePeriod **/ StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigStakeToChallengePeriod: "Null", /** - * Lookup188: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::CheckpointChallengePeriod + * Lookup176: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::CheckpointChallengePeriod **/ StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigCheckpointChallengePeriod: "Null", /** - * Lookup189: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::MinChallengePeriod + * Lookup177: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::MinChallengePeriod **/ StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigMinChallengePeriod: "Null", /** - * Lookup190: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::SystemUtilisationLowerThresholdPercentage + * Lookup178: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::SystemUtilisationLowerThresholdPercentage **/ StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigSystemUtilisationLowerThresholdPercentage: "Null", /** - * Lookup191: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::SystemUtilisationUpperThresholdPercentage + * Lookup179: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::SystemUtilisationUpperThresholdPercentage **/ StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigSystemUtilisationUpperThresholdPercentage: "Null", /** - * Lookup192: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::MostlyStablePrice + * Lookup180: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::MostlyStablePrice **/ StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigMostlyStablePrice: "Null", /** - * Lookup193: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::MaxPrice + * Lookup181: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::MaxPrice **/ StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigMaxPrice: "Null", /** - * Lookup194: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::MinPrice + * Lookup182: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::MinPrice **/ StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigMinPrice: "Null", /** - * Lookup195: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::UpperExponentFactor + * Lookup183: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::UpperExponentFactor **/ StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigUpperExponentFactor: "Null", /** - * Lookup196: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::LowerExponentFactor + * Lookup184: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::LowerExponentFactor **/ StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigLowerExponentFactor: "Null", /** - * Lookup197: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::ZeroSizeBucketFixedRate + * Lookup185: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::ZeroSizeBucketFixedRate **/ StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigZeroSizeBucketFixedRate: "Null", /** - * Lookup198: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::IdealUtilisationRate + * Lookup186: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::IdealUtilisationRate **/ StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigIdealUtilisationRate: "Null", /** - * Lookup199: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::DecayRate + * Lookup187: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::DecayRate **/ StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigDecayRate: "Null", /** - * Lookup200: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::MinimumTreasuryCut + * Lookup188: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::MinimumTreasuryCut **/ StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigMinimumTreasuryCut: "Null", /** - * Lookup201: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::MaximumTreasuryCut + * Lookup189: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::MaximumTreasuryCut **/ StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigMaximumTreasuryCut: "Null", /** - * Lookup202: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::BspStopStoringFilePenalty + * Lookup190: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::BspStopStoringFilePenalty **/ StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigBspStopStoringFilePenalty: "Null", /** - * Lookup204: storage_hub_runtime::configs::runtime_params::RuntimeParametersValue + * Lookup192: storage_hub_runtime::configs::runtime_params::RuntimeParametersValue **/ StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersValue: { _enum: { @@ -2176,7 +2140,7 @@ export default { } }, /** - * Lookup205: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::ParametersValue + * Lookup193: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::ParametersValue **/ StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParametersValue: { _enum: { @@ -2200,7 +2164,7 @@ export default { } }, /** - * Lookup207: frame_system::Phase + * Lookup195: frame_system::Phase **/ FrameSystemPhase: { _enum: { @@ -2210,21 +2174,21 @@ export default { } }, /** - * Lookup210: frame_system::LastRuntimeUpgradeInfo + * Lookup198: frame_system::LastRuntimeUpgradeInfo **/ FrameSystemLastRuntimeUpgradeInfo: { specVersion: "Compact", specName: "Text" }, /** - * Lookup212: frame_system::CodeUpgradeAuthorization + * Lookup200: frame_system::CodeUpgradeAuthorization **/ FrameSystemCodeUpgradeAuthorization: { codeHash: "H256", checkVersion: "bool" }, /** - * Lookup213: frame_system::pallet::Call + * Lookup201: frame_system::pallet::Call **/ FrameSystemCall: { _enum: { @@ -2269,7 +2233,7 @@ export default { } }, /** - * Lookup216: frame_system::limits::BlockWeights + * Lookup204: frame_system::limits::BlockWeights **/ FrameSystemLimitsBlockWeights: { baseBlock: "SpWeightsWeightV2Weight", @@ -2277,7 +2241,7 @@ export default { perClass: "FrameSupportDispatchPerDispatchClassWeightsPerClass" }, /** - * Lookup217: frame_support::dispatch::PerDispatchClass + * Lookup205: frame_support::dispatch::PerDispatchClass **/ FrameSupportDispatchPerDispatchClassWeightsPerClass: { normal: "FrameSystemLimitsWeightsPerClass", @@ -2285,7 +2249,7 @@ export default { mandatory: "FrameSystemLimitsWeightsPerClass" }, /** - * Lookup218: frame_system::limits::WeightsPerClass + * Lookup206: frame_system::limits::WeightsPerClass **/ FrameSystemLimitsWeightsPerClass: { baseExtrinsic: "SpWeightsWeightV2Weight", @@ -2294,13 +2258,13 @@ export default { reserved: "Option" }, /** - * Lookup220: frame_system::limits::BlockLength + * Lookup208: frame_system::limits::BlockLength **/ FrameSystemLimitsBlockLength: { max: "FrameSupportDispatchPerDispatchClassU32" }, /** - * Lookup221: frame_support::dispatch::PerDispatchClass + * Lookup209: frame_support::dispatch::PerDispatchClass **/ FrameSupportDispatchPerDispatchClassU32: { normal: "u32", @@ -2308,14 +2272,14 @@ export default { mandatory: "u32" }, /** - * Lookup222: sp_weights::RuntimeDbWeight + * Lookup210: sp_weights::RuntimeDbWeight **/ SpWeightsRuntimeDbWeight: { read: "u64", write: "u64" }, /** - * Lookup223: sp_version::RuntimeVersion + * Lookup211: sp_version::RuntimeVersion **/ SpVersionRuntimeVersion: { specName: "Text", @@ -2328,7 +2292,7 @@ export default { stateVersion: "u8" }, /** - * Lookup228: frame_system::pallet::Error + * Lookup216: frame_system::pallet::Error **/ FrameSystemError: { _enum: [ @@ -2344,7 +2308,7 @@ export default { ] }, /** - * Lookup230: cumulus_pallet_parachain_system::unincluded_segment::Ancestor + * Lookup218: cumulus_pallet_parachain_system::unincluded_segment::Ancestor **/ CumulusPalletParachainSystemUnincludedSegmentAncestor: { usedBandwidth: "CumulusPalletParachainSystemUnincludedSegmentUsedBandwidth", @@ -2352,7 +2316,7 @@ export default { consumedGoAheadSignal: "Option" }, /** - * Lookup231: cumulus_pallet_parachain_system::unincluded_segment::UsedBandwidth + * Lookup219: cumulus_pallet_parachain_system::unincluded_segment::UsedBandwidth **/ CumulusPalletParachainSystemUnincludedSegmentUsedBandwidth: { umpMsgCount: "u32", @@ -2360,20 +2324,20 @@ export default { hrmpOutgoing: "BTreeMap" }, /** - * Lookup233: cumulus_pallet_parachain_system::unincluded_segment::HrmpChannelUpdate + * Lookup221: cumulus_pallet_parachain_system::unincluded_segment::HrmpChannelUpdate **/ CumulusPalletParachainSystemUnincludedSegmentHrmpChannelUpdate: { msgCount: "u32", totalBytes: "u32" }, /** - * Lookup238: polkadot_primitives::v8::UpgradeGoAhead + * Lookup225: polkadot_primitives::v8::UpgradeGoAhead **/ PolkadotPrimitivesV8UpgradeGoAhead: { _enum: ["Abort", "GoAhead"] }, /** - * Lookup239: cumulus_pallet_parachain_system::unincluded_segment::SegmentTracker + * Lookup226: cumulus_pallet_parachain_system::unincluded_segment::SegmentTracker **/ CumulusPalletParachainSystemUnincludedSegmentSegmentTracker: { usedBandwidth: "CumulusPalletParachainSystemUnincludedSegmentUsedBandwidth", @@ -2381,7 +2345,7 @@ export default { consumedGoAheadSignal: "Option" }, /** - * Lookup240: polkadot_primitives::v8::PersistedValidationData + * Lookup227: polkadot_primitives::v8::PersistedValidationData **/ PolkadotPrimitivesV8PersistedValidationData: { parentHead: "Bytes", @@ -2390,19 +2354,19 @@ export default { maxPovSize: "u32" }, /** - * Lookup243: polkadot_primitives::v8::UpgradeRestriction + * Lookup230: polkadot_primitives::v8::UpgradeRestriction **/ PolkadotPrimitivesV8UpgradeRestriction: { _enum: ["Present"] }, /** - * Lookup244: sp_trie::storage_proof::StorageProof + * Lookup231: sp_trie::storage_proof::StorageProof **/ SpTrieStorageProof: { trieNodes: "BTreeSet" }, /** - * Lookup246: cumulus_pallet_parachain_system::relay_state_snapshot::MessagingStateSnapshot + * Lookup233: cumulus_pallet_parachain_system::relay_state_snapshot::MessagingStateSnapshot **/ CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot: { dmqMqcHead: "H256", @@ -2412,14 +2376,14 @@ export default { egressChannels: "Vec<(u32,PolkadotPrimitivesV8AbridgedHrmpChannel)>" }, /** - * Lookup247: cumulus_pallet_parachain_system::relay_state_snapshot::RelayDispatchQueueRemainingCapacity + * Lookup234: cumulus_pallet_parachain_system::relay_state_snapshot::RelayDispatchQueueRemainingCapacity **/ CumulusPalletParachainSystemRelayStateSnapshotRelayDispatchQueueRemainingCapacity: { remainingCount: "u32", remainingSize: "u32" }, /** - * Lookup250: polkadot_primitives::v8::AbridgedHrmpChannel + * Lookup237: polkadot_primitives::v8::AbridgedHrmpChannel **/ PolkadotPrimitivesV8AbridgedHrmpChannel: { maxCapacity: "u32", @@ -2430,7 +2394,7 @@ export default { mqcHead: "Option" }, /** - * Lookup251: polkadot_primitives::v8::AbridgedHostConfiguration + * Lookup238: polkadot_primitives::v8::AbridgedHostConfiguration **/ PolkadotPrimitivesV8AbridgedHostConfiguration: { maxCodeSize: "u32", @@ -2445,21 +2409,21 @@ export default { asyncBackingParams: "PolkadotPrimitivesV8AsyncBackingAsyncBackingParams" }, /** - * Lookup252: polkadot_primitives::v8::async_backing::AsyncBackingParams + * Lookup239: polkadot_primitives::v8::async_backing::AsyncBackingParams **/ PolkadotPrimitivesV8AsyncBackingAsyncBackingParams: { maxCandidateDepth: "u32", allowedAncestryLen: "u32" }, /** - * Lookup258: polkadot_core_primitives::OutboundHrmpMessage + * Lookup245: polkadot_core_primitives::OutboundHrmpMessage **/ PolkadotCorePrimitivesOutboundHrmpMessage: { recipient: "u32", data: "Bytes" }, /** - * Lookup260: cumulus_pallet_parachain_system::pallet::Call + * Lookup247: cumulus_pallet_parachain_system::pallet::Call **/ CumulusPalletParachainSystemCall: { _enum: { @@ -2472,7 +2436,7 @@ export default { } }, /** - * Lookup261: cumulus_primitives_parachain_inherent::ParachainInherentData + * Lookup248: cumulus_primitives_parachain_inherent::ParachainInherentData **/ CumulusPrimitivesParachainInherentParachainInherentData: { validationData: "PolkadotPrimitivesV8PersistedValidationData", @@ -2481,21 +2445,21 @@ export default { horizontalMessages: "BTreeMap>" }, /** - * Lookup263: polkadot_core_primitives::InboundDownwardMessage + * Lookup250: polkadot_core_primitives::InboundDownwardMessage **/ PolkadotCorePrimitivesInboundDownwardMessage: { sentAt: "u32", msg: "Bytes" }, /** - * Lookup266: polkadot_core_primitives::InboundHrmpMessage + * Lookup253: polkadot_core_primitives::InboundHrmpMessage **/ PolkadotCorePrimitivesInboundHrmpMessage: { sentAt: "u32", data: "Bytes" }, /** - * Lookup269: cumulus_pallet_parachain_system::pallet::Error + * Lookup256: cumulus_pallet_parachain_system::pallet::Error **/ CumulusPalletParachainSystemError: { _enum: [ @@ -2510,7 +2474,7 @@ export default { ] }, /** - * Lookup270: pallet_timestamp::pallet::Call + * Lookup257: pallet_timestamp::pallet::Call **/ PalletTimestampCall: { _enum: { @@ -2520,11 +2484,11 @@ export default { } }, /** - * Lookup271: staging_parachain_info::pallet::Call + * Lookup258: staging_parachain_info::pallet::Call **/ StagingParachainInfoCall: "Null", /** - * Lookup273: pallet_balances::types::BalanceLock + * Lookup260: pallet_balances::types::BalanceLock **/ PalletBalancesBalanceLock: { id: "[u8;8]", @@ -2532,20 +2496,20 @@ export default { reasons: "PalletBalancesReasons" }, /** - * Lookup274: pallet_balances::types::Reasons + * Lookup261: pallet_balances::types::Reasons **/ PalletBalancesReasons: { _enum: ["Fee", "Misc", "All"] }, /** - * Lookup277: pallet_balances::types::ReserveData + * Lookup264: pallet_balances::types::ReserveData **/ PalletBalancesReserveData: { id: "[u8;8]", amount: "u128" }, /** - * Lookup281: storage_hub_runtime::RuntimeHoldReason + * Lookup268: storage_hub_runtime::RuntimeHoldReason **/ StorageHubRuntimeRuntimeHoldReason: { _enum: { @@ -2597,32 +2561,32 @@ export default { } }, /** - * Lookup282: pallet_storage_providers::pallet::HoldReason + * Lookup269: pallet_storage_providers::pallet::HoldReason **/ PalletStorageProvidersHoldReason: { _enum: ["StorageProviderDeposit", "BucketDeposit"] }, /** - * Lookup283: pallet_file_system::pallet::HoldReason + * Lookup270: pallet_file_system::pallet::HoldReason **/ PalletFileSystemHoldReason: { _enum: ["StorageRequestCreationHold"] }, /** - * Lookup284: pallet_payment_streams::pallet::HoldReason + * Lookup271: pallet_payment_streams::pallet::HoldReason **/ PalletPaymentStreamsHoldReason: { _enum: ["PaymentStreamDeposit"] }, /** - * Lookup287: frame_support::traits::tokens::misc::IdAmount + * Lookup274: frame_support::traits::tokens::misc::IdAmount **/ FrameSupportTokensMiscIdAmount: { id: "Null", amount: "u128" }, /** - * Lookup289: pallet_balances::pallet::Call + * Lookup276: pallet_balances::pallet::Call **/ PalletBalancesCall: { _enum: { @@ -2667,13 +2631,13 @@ export default { } }, /** - * Lookup292: pallet_balances::types::AdjustmentDirection + * Lookup279: pallet_balances::types::AdjustmentDirection **/ PalletBalancesAdjustmentDirection: { _enum: ["Increase", "Decrease"] }, /** - * Lookup293: pallet_balances::pallet::Error + * Lookup280: pallet_balances::pallet::Error **/ PalletBalancesError: { _enum: [ @@ -2692,13 +2656,13 @@ export default { ] }, /** - * Lookup294: pallet_transaction_payment::Releases + * Lookup281: pallet_transaction_payment::Releases **/ PalletTransactionPaymentReleases: { _enum: ["V1Ancient", "V2"] }, /** - * Lookup295: pallet_sudo::pallet::Call + * Lookup282: pallet_sudo::pallet::Call **/ PalletSudoCall: { _enum: { @@ -2723,7 +2687,7 @@ export default { } }, /** - * Lookup297: pallet_collator_selection::pallet::Call + * Lookup284: pallet_collator_selection::pallet::Call **/ PalletCollatorSelectionCall: { _enum: { @@ -2757,7 +2721,7 @@ export default { } }, /** - * Lookup298: pallet_session::pallet::Call + * Lookup285: pallet_session::pallet::Call **/ PalletSessionCall: { _enum: { @@ -2772,17 +2736,17 @@ export default { } }, /** - * Lookup299: storage_hub_runtime::SessionKeys + * Lookup286: storage_hub_runtime::SessionKeys **/ StorageHubRuntimeSessionKeys: { aura: "SpConsensusAuraSr25519AppSr25519Public" }, /** - * Lookup300: sp_consensus_aura::sr25519::app_sr25519::Public + * Lookup287: sp_consensus_aura::sr25519::app_sr25519::Public **/ SpConsensusAuraSr25519AppSr25519Public: "[u8;32]", /** - * Lookup301: cumulus_pallet_xcmp_queue::pallet::Call + * Lookup288: cumulus_pallet_xcmp_queue::pallet::Call **/ CumulusPalletXcmpQueueCall: { _enum: { @@ -2810,7 +2774,7 @@ export default { } }, /** - * Lookup302: pallet_xcm::pallet::Call + * Lookup289: pallet_xcm::pallet::Call **/ PalletXcmCall: { _enum: { @@ -2887,7 +2851,7 @@ export default { } }, /** - * Lookup303: xcm::VersionedXcm + * Lookup290: xcm::VersionedXcm **/ XcmVersionedXcm: { _enum: { @@ -2899,11 +2863,11 @@ export default { } }, /** - * Lookup304: xcm::v2::Xcm + * Lookup291: xcm::v2::Xcm **/ XcmV2Xcm: "Vec", /** - * Lookup306: xcm::v2::Instruction + * Lookup293: xcm::v2::Instruction **/ XcmV2Instruction: { _enum: { @@ -3001,7 +2965,7 @@ export default { } }, /** - * Lookup307: xcm::v2::Response + * Lookup294: xcm::v2::Response **/ XcmV2Response: { _enum: { @@ -3012,7 +2976,7 @@ export default { } }, /** - * Lookup310: xcm::v2::traits::Error + * Lookup297: xcm::v2::traits::Error **/ XcmV2TraitsError: { _enum: { @@ -3045,13 +3009,13 @@ export default { } }, /** - * Lookup311: xcm::v2::OriginKind + * Lookup298: xcm::v2::OriginKind **/ XcmV2OriginKind: { _enum: ["Native", "SovereignAccount", "Superuser", "Xcm"] }, /** - * Lookup312: xcm::v2::multiasset::MultiAssetFilter + * Lookup299: xcm::v2::multiasset::MultiAssetFilter **/ XcmV2MultiassetMultiAssetFilter: { _enum: { @@ -3060,7 +3024,7 @@ export default { } }, /** - * Lookup313: xcm::v2::multiasset::WildMultiAsset + * Lookup300: xcm::v2::multiasset::WildMultiAsset **/ XcmV2MultiassetWildMultiAsset: { _enum: { @@ -3072,13 +3036,13 @@ export default { } }, /** - * Lookup314: xcm::v2::multiasset::WildFungibility + * Lookup301: xcm::v2::multiasset::WildFungibility **/ XcmV2MultiassetWildFungibility: { _enum: ["Fungible", "NonFungible"] }, /** - * Lookup315: xcm::v2::WeightLimit + * Lookup302: xcm::v2::WeightLimit **/ XcmV2WeightLimit: { _enum: { @@ -3087,11 +3051,11 @@ export default { } }, /** - * Lookup316: xcm::v3::Xcm + * Lookup303: xcm::v3::Xcm **/ XcmV3Xcm: "Vec", /** - * Lookup318: xcm::v3::Instruction + * Lookup305: xcm::v3::Instruction **/ XcmV3Instruction: { _enum: { @@ -3233,7 +3197,7 @@ export default { } }, /** - * Lookup319: xcm::v3::Response + * Lookup306: xcm::v3::Response **/ XcmV3Response: { _enum: { @@ -3246,7 +3210,7 @@ export default { } }, /** - * Lookup321: xcm::v3::PalletInfo + * Lookup308: xcm::v3::PalletInfo **/ XcmV3PalletInfo: { index: "Compact", @@ -3257,7 +3221,7 @@ export default { patch: "Compact" }, /** - * Lookup325: xcm::v3::QueryResponseInfo + * Lookup312: xcm::v3::QueryResponseInfo **/ XcmV3QueryResponseInfo: { destination: "StagingXcmV3MultiLocation", @@ -3265,7 +3229,7 @@ export default { maxWeight: "SpWeightsWeightV2Weight" }, /** - * Lookup326: xcm::v3::multiasset::MultiAssetFilter + * Lookup313: xcm::v3::multiasset::MultiAssetFilter **/ XcmV3MultiassetMultiAssetFilter: { _enum: { @@ -3274,7 +3238,7 @@ export default { } }, /** - * Lookup327: xcm::v3::multiasset::WildMultiAsset + * Lookup314: xcm::v3::multiasset::WildMultiAsset **/ XcmV3MultiassetWildMultiAsset: { _enum: { @@ -3292,13 +3256,13 @@ export default { } }, /** - * Lookup328: xcm::v3::multiasset::WildFungibility + * Lookup315: xcm::v3::multiasset::WildFungibility **/ XcmV3MultiassetWildFungibility: { _enum: ["Fungible", "NonFungible"] }, /** - * Lookup340: staging_xcm_executor::traits::asset_transfer::TransferType + * Lookup327: staging_xcm_executor::traits::asset_transfer::TransferType **/ StagingXcmExecutorAssetTransferTransferType: { _enum: { @@ -3309,7 +3273,7 @@ export default { } }, /** - * Lookup341: xcm::VersionedAssetId + * Lookup328: xcm::VersionedAssetId **/ XcmVersionedAssetId: { _enum: { @@ -3321,11 +3285,11 @@ export default { } }, /** - * Lookup342: cumulus_pallet_xcm::pallet::Call + * Lookup329: cumulus_pallet_xcm::pallet::Call **/ CumulusPalletXcmCall: "Null", /** - * Lookup343: pallet_message_queue::pallet::Call + * Lookup330: pallet_message_queue::pallet::Call **/ PalletMessageQueueCall: { _enum: { @@ -3342,7 +3306,7 @@ export default { } }, /** - * Lookup344: pallet_storage_providers::pallet::Call + * Lookup331: pallet_storage_providers::pallet::Call **/ PalletStorageProvidersCall: { _enum: { @@ -3406,15 +3370,15 @@ export default { } }, /** - * Lookup345: pallet_file_system::pallet::Call + * Lookup332: pallet_file_system::pallet::Call **/ PalletFileSystemCall: { _enum: { create_bucket: { - mspId: "H256", + mspId: "Option", name: "Bytes", private: "bool", - valuePropId: "H256" + valuePropId: "Option" }, request_move_bucket: { bucketId: "H256", @@ -3442,14 +3406,14 @@ export default { location: "Bytes", fingerprint: "H256", size_: "u64", - mspId: "H256", + mspId: "Option", peerIds: "Vec" }, revoke_storage_request: { fileKey: "H256" }, msp_respond_storage_requests_multiple_buckets: { - fileKeyResponsesInput: "Vec<(H256,PalletFileSystemMspStorageRequestResponse)>" + storageRequestMspResponse: "Vec" }, msp_stop_storing_bucket: { bucketId: "H256" @@ -3514,27 +3478,42 @@ export default { } }, /** - * Lookup346: pallet_file_system::types::BucketMoveRequestResponse + * Lookup333: pallet_file_system::types::BucketMoveRequestResponse **/ PalletFileSystemBucketMoveRequestResponse: { _enum: ["Accepted", "Rejected"] }, /** - * Lookup349: pallet_file_system::types::MspStorageRequestResponse + * Lookup335: pallet_file_system::types::StorageRequestMspBucketResponse **/ - PalletFileSystemMspStorageRequestResponse: { - accept: "Option", - reject: "Option>" + PalletFileSystemStorageRequestMspBucketResponse: { + bucketId: "H256", + accept: "Option", + reject: "Vec" }, /** - * Lookup351: pallet_file_system::types::AcceptedStorageRequestParameters + * Lookup337: pallet_file_system::types::StorageRequestMspAcceptedFileKeys **/ - PalletFileSystemAcceptedStorageRequestParameters: { - fileKeysAndProofs: "Vec<(H256,ShpFileKeyVerifierFileKeyProof)>", + PalletFileSystemStorageRequestMspAcceptedFileKeys: { + fileKeysAndProofs: "Vec", nonInclusionForestProof: "SpTrieStorageProofCompactProof" }, /** - * Lookup358: pallet_proofs_dealer::pallet::Call + * Lookup339: pallet_file_system::types::FileKeyWithProof + **/ + PalletFileSystemFileKeyWithProof: { + fileKey: "H256", + proof: "ShpFileKeyVerifierFileKeyProof" + }, + /** + * Lookup342: pallet_file_system::types::RejectedStorageRequest + **/ + PalletFileSystemRejectedStorageRequest: { + fileKey: "H256", + reason: "PalletFileSystemRejectedStorageRequestReason" + }, + /** + * Lookup349: pallet_proofs_dealer::pallet::Call **/ PalletProofsDealerCall: { _enum: { @@ -3554,13 +3533,13 @@ export default { } }, /** - * Lookup359: pallet_randomness::pallet::Call + * Lookup350: pallet_randomness::pallet::Call **/ PalletRandomnessCall: { _enum: ["set_babe_randomness"] }, /** - * Lookup360: pallet_payment_streams::pallet::Call + * Lookup351: pallet_payment_streams::pallet::Call **/ PalletPaymentStreamsCall: { _enum: { @@ -3603,7 +3582,7 @@ export default { } }, /** - * Lookup361: pallet_bucket_nfts::pallet::Call + * Lookup352: pallet_bucket_nfts::pallet::Call **/ PalletBucketNftsCall: { _enum: { @@ -3621,7 +3600,7 @@ export default { } }, /** - * Lookup363: pallet_nfts::pallet::Call + * Lookup354: pallet_nfts::pallet::Call **/ PalletNftsCall: { _enum: { @@ -3818,7 +3797,7 @@ export default { } }, /** - * Lookup364: pallet_nfts::types::CollectionConfig + * Lookup355: pallet_nfts::types::CollectionConfig **/ PalletNftsCollectionConfig: { settings: "u64", @@ -3826,7 +3805,7 @@ export default { mintSettings: "PalletNftsMintSettings" }, /** - * Lookup366: pallet_nfts::types::CollectionSetting + * Lookup357: pallet_nfts::types::CollectionSetting **/ PalletNftsCollectionSetting: { _enum: [ @@ -3850,7 +3829,7 @@ export default { ] }, /** - * Lookup367: pallet_nfts::types::MintSettings + * Lookup358: pallet_nfts::types::MintSettings **/ PalletNftsMintSettings: { mintType: "PalletNftsMintType", @@ -3860,7 +3839,7 @@ export default { defaultItemSettings: "u64" }, /** - * Lookup368: pallet_nfts::types::MintType + * Lookup359: pallet_nfts::types::MintType **/ PalletNftsMintType: { _enum: { @@ -3870,13 +3849,13 @@ export default { } }, /** - * Lookup371: pallet_nfts::types::ItemSetting + * Lookup362: pallet_nfts::types::ItemSetting **/ PalletNftsItemSetting: { _enum: ["__Unused0", "Transferable", "UnlockedMetadata", "__Unused3", "UnlockedAttributes"] }, /** - * Lookup372: pallet_nfts::types::DestroyWitness + * Lookup363: pallet_nfts::types::DestroyWitness **/ PalletNftsDestroyWitness: { itemMetadatas: "Compact", @@ -3884,26 +3863,26 @@ export default { attributes: "Compact" }, /** - * Lookup374: pallet_nfts::types::MintWitness + * Lookup365: pallet_nfts::types::MintWitness **/ PalletNftsMintWitness: { ownedItem: "Option", mintPrice: "Option" }, /** - * Lookup375: pallet_nfts::types::ItemConfig + * Lookup366: pallet_nfts::types::ItemConfig **/ PalletNftsItemConfig: { settings: "u64" }, /** - * Lookup377: pallet_nfts::types::CancelAttributesApprovalWitness + * Lookup368: pallet_nfts::types::CancelAttributesApprovalWitness **/ PalletNftsCancelAttributesApprovalWitness: { accountAttributes: "u32" }, /** - * Lookup379: pallet_nfts::types::ItemTip + * Lookup370: pallet_nfts::types::ItemTip **/ PalletNftsItemTip: { collection: "u32", @@ -3912,7 +3891,7 @@ export default { amount: "u128" }, /** - * Lookup381: pallet_nfts::types::PreSignedMint + * Lookup372: pallet_nfts::types::PreSignedMint **/ PalletNftsPreSignedMint: { collection: "u32", @@ -3924,7 +3903,7 @@ export default { mintPrice: "Option" }, /** - * Lookup382: sp_runtime::MultiSignature + * Lookup373: sp_runtime::MultiSignature **/ SpRuntimeMultiSignature: { _enum: { @@ -3934,7 +3913,7 @@ export default { } }, /** - * Lookup385: pallet_nfts::types::PreSignedAttributes + * Lookup376: pallet_nfts::types::PreSignedAttributes **/ PalletNftsPreSignedAttributes: { collection: "u32", @@ -3944,7 +3923,7 @@ export default { deadline: "u32" }, /** - * Lookup386: pallet_parameters::pallet::Call + * Lookup377: pallet_parameters::pallet::Call **/ PalletParametersCall: { _enum: { @@ -3954,7 +3933,7 @@ export default { } }, /** - * Lookup387: storage_hub_runtime::configs::runtime_params::RuntimeParameters + * Lookup378: storage_hub_runtime::configs::runtime_params::RuntimeParameters **/ StorageHubRuntimeConfigsRuntimeParamsRuntimeParameters: { _enum: { @@ -3962,7 +3941,7 @@ export default { } }, /** - * Lookup388: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::Parameters + * Lookup379: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::Parameters **/ StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParameters: { _enum: { @@ -4003,20 +3982,20 @@ export default { } }, /** - * Lookup390: pallet_sudo::pallet::Error + * Lookup381: pallet_sudo::pallet::Error **/ PalletSudoError: { _enum: ["RequireSudo"] }, /** - * Lookup393: pallet_collator_selection::pallet::CandidateInfo + * Lookup384: pallet_collator_selection::pallet::CandidateInfo **/ PalletCollatorSelectionCandidateInfo: { who: "AccountId32", deposit: "u128" }, /** - * Lookup395: pallet_collator_selection::pallet::Error + * Lookup386: pallet_collator_selection::pallet::Error **/ PalletCollatorSelectionError: { _enum: [ @@ -4040,17 +4019,17 @@ export default { ] }, /** - * Lookup399: sp_core::crypto::KeyTypeId + * Lookup390: sp_core::crypto::KeyTypeId **/ SpCoreCryptoKeyTypeId: "[u8;4]", /** - * Lookup400: pallet_session::pallet::Error + * Lookup391: pallet_session::pallet::Error **/ PalletSessionError: { _enum: ["InvalidProof", "NoAssociatedValidatorId", "DuplicatedKey", "NoKeys", "NoAccount"] }, /** - * Lookup409: cumulus_pallet_xcmp_queue::OutboundChannelDetails + * Lookup400: cumulus_pallet_xcmp_queue::OutboundChannelDetails **/ CumulusPalletXcmpQueueOutboundChannelDetails: { recipient: "u32", @@ -4060,13 +4039,13 @@ export default { lastIndex: "u16" }, /** - * Lookup410: cumulus_pallet_xcmp_queue::OutboundState + * Lookup401: cumulus_pallet_xcmp_queue::OutboundState **/ CumulusPalletXcmpQueueOutboundState: { _enum: ["Ok", "Suspended"] }, /** - * Lookup414: cumulus_pallet_xcmp_queue::QueueConfigData + * Lookup405: cumulus_pallet_xcmp_queue::QueueConfigData **/ CumulusPalletXcmpQueueQueueConfigData: { suspendThreshold: "u32", @@ -4074,7 +4053,7 @@ export default { resumeThreshold: "u32" }, /** - * Lookup415: cumulus_pallet_xcmp_queue::pallet::Error + * Lookup406: cumulus_pallet_xcmp_queue::pallet::Error **/ CumulusPalletXcmpQueueError: { _enum: [ @@ -4086,7 +4065,7 @@ export default { ] }, /** - * Lookup416: pallet_xcm::pallet::QueryStatus + * Lookup407: pallet_xcm::pallet::QueryStatus **/ PalletXcmQueryStatus: { _enum: { @@ -4107,7 +4086,7 @@ export default { } }, /** - * Lookup420: xcm::VersionedResponse + * Lookup411: xcm::VersionedResponse **/ XcmVersionedResponse: { _enum: { @@ -4119,7 +4098,7 @@ export default { } }, /** - * Lookup426: pallet_xcm::pallet::VersionMigrationStage + * Lookup417: pallet_xcm::pallet::VersionMigrationStage **/ PalletXcmVersionMigrationStage: { _enum: { @@ -4130,7 +4109,7 @@ export default { } }, /** - * Lookup429: pallet_xcm::pallet::RemoteLockedFungibleRecord + * Lookup420: pallet_xcm::pallet::RemoteLockedFungibleRecord **/ PalletXcmRemoteLockedFungibleRecord: { amount: "u128", @@ -4139,7 +4118,7 @@ export default { consumers: "Vec<(Null,u128)>" }, /** - * Lookup436: pallet_xcm::pallet::Error + * Lookup427: pallet_xcm::pallet::Error **/ PalletXcmError: { _enum: [ @@ -4171,7 +4150,7 @@ export default { ] }, /** - * Lookup437: pallet_message_queue::BookState + * Lookup428: pallet_message_queue::BookState **/ PalletMessageQueueBookState: { _alias: { @@ -4185,14 +4164,14 @@ export default { size_: "u64" }, /** - * Lookup439: pallet_message_queue::Neighbours + * Lookup430: pallet_message_queue::Neighbours **/ PalletMessageQueueNeighbours: { prev: "CumulusPrimitivesCoreAggregateMessageOrigin", next: "CumulusPrimitivesCoreAggregateMessageOrigin" }, /** - * Lookup441: pallet_message_queue::Page + * Lookup432: pallet_message_queue::Page **/ PalletMessageQueuePage: { remaining: "u32", @@ -4203,7 +4182,7 @@ export default { heap: "Bytes" }, /** - * Lookup443: pallet_message_queue::pallet::Error + * Lookup434: pallet_message_queue::pallet::Error **/ PalletMessageQueueError: { _enum: [ @@ -4219,14 +4198,14 @@ export default { ] }, /** - * Lookup444: pallet_storage_providers::types::SignUpRequest + * Lookup435: pallet_storage_providers::types::SignUpRequest **/ PalletStorageProvidersSignUpRequest: { spSignUpRequest: "PalletStorageProvidersSignUpRequestSpParams", at: "u32" }, /** - * Lookup445: pallet_storage_providers::types::SignUpRequestSpParams + * Lookup436: pallet_storage_providers::types::SignUpRequestSpParams **/ PalletStorageProvidersSignUpRequestSpParams: { _enum: { @@ -4235,7 +4214,7 @@ export default { } }, /** - * Lookup446: pallet_storage_providers::types::BackupStorageProvider + * Lookup437: pallet_storage_providers::types::BackupStorageProvider **/ PalletStorageProvidersBackupStorageProvider: { capacity: "u64", @@ -4249,14 +4228,14 @@ export default { signUpBlock: "u32" }, /** - * Lookup447: pallet_storage_providers::types::MainStorageProviderSignUpRequest + * Lookup438: pallet_storage_providers::types::MainStorageProviderSignUpRequest **/ PalletStorageProvidersMainStorageProviderSignUpRequest: { mspInfo: "PalletStorageProvidersMainStorageProvider", valueProp: "PalletStorageProvidersValueProposition" }, /** - * Lookup448: pallet_storage_providers::types::MainStorageProvider + * Lookup439: pallet_storage_providers::types::MainStorageProvider **/ PalletStorageProvidersMainStorageProvider: { capacity: "u64", @@ -4268,7 +4247,7 @@ export default { signUpBlock: "u32" }, /** - * Lookup449: pallet_storage_providers::types::Bucket + * Lookup440: pallet_storage_providers::types::Bucket **/ PalletStorageProvidersBucket: { _alias: { @@ -4280,10 +4259,10 @@ export default { private: "bool", readAccessGroupId: "Option", size_: "u64", - valuePropId: "H256" + valuePropId: "Option" }, /** - * Lookup451: pallet_storage_providers::pallet::Error + * Lookup442: pallet_storage_providers::pallet::Error **/ PalletStorageProvidersError: { _enum: [ @@ -4324,13 +4303,14 @@ export default { "FixedRatePaymentStreamNotFound", "MspAlreadyAssignedToBucket", "BucketSizeExceedsLimit", + "BucketHasNoValueProposition", "InvalidEncodedFileMetadata", "InvalidEncodedAccountId", "PaymentStreamNotFound" ] }, /** - * Lookup452: pallet_file_system::types::StorageRequestMetadata + * Lookup443: pallet_file_system::types::StorageRequestMetadata **/ PalletFileSystemStorageRequestMetadata: { _alias: { @@ -4349,19 +4329,19 @@ export default { bspsVolunteered: "u32" }, /** - * Lookup455: pallet_file_system::types::StorageRequestBspsMetadata + * Lookup446: pallet_file_system::types::StorageRequestBspsMetadata **/ PalletFileSystemStorageRequestBspsMetadata: { confirmed: "bool" }, /** - * Lookup464: pallet_file_system::types::MoveBucketRequestMetadata + * Lookup455: pallet_file_system::types::MoveBucketRequestMetadata **/ PalletFileSystemMoveBucketRequestMetadata: { requester: "AccountId32" }, /** - * Lookup465: pallet_file_system::pallet::Error + * Lookup456: pallet_file_system::pallet::Error **/ PalletFileSystemError: { _enum: [ @@ -4433,7 +4413,7 @@ export default { ] }, /** - * Lookup471: pallet_proofs_dealer::pallet::Error + * Lookup462: pallet_proofs_dealer::pallet::Error **/ PalletProofsDealerError: { _enum: [ @@ -4462,7 +4442,7 @@ export default { ] }, /** - * Lookup474: pallet_payment_streams::types::FixedRatePaymentStream + * Lookup465: pallet_payment_streams::types::FixedRatePaymentStream **/ PalletPaymentStreamsFixedRatePaymentStream: { rate: "u128", @@ -4471,7 +4451,7 @@ export default { outOfFundsTick: "Option" }, /** - * Lookup475: pallet_payment_streams::types::DynamicRatePaymentStream + * Lookup466: pallet_payment_streams::types::DynamicRatePaymentStream **/ PalletPaymentStreamsDynamicRatePaymentStream: { amountProvided: "u64", @@ -4480,14 +4460,14 @@ export default { outOfFundsTick: "Option" }, /** - * Lookup476: pallet_payment_streams::types::ProviderLastChargeableInfo + * Lookup467: pallet_payment_streams::types::ProviderLastChargeableInfo **/ PalletPaymentStreamsProviderLastChargeableInfo: { lastChargeableTick: "u32", priceIndex: "u128" }, /** - * Lookup477: pallet_payment_streams::pallet::Error + * Lookup468: pallet_payment_streams::pallet::Error **/ PalletPaymentStreamsError: { _enum: [ @@ -4510,7 +4490,7 @@ export default { ] }, /** - * Lookup478: pallet_bucket_nfts::pallet::Error + * Lookup469: pallet_bucket_nfts::pallet::Error **/ PalletBucketNftsError: { _enum: [ @@ -4521,7 +4501,7 @@ export default { ] }, /** - * Lookup479: pallet_nfts::types::CollectionDetails + * Lookup470: pallet_nfts::types::CollectionDetails **/ PalletNftsCollectionDetails: { owner: "AccountId32", @@ -4532,13 +4512,13 @@ export default { attributes: "u32" }, /** - * Lookup484: pallet_nfts::types::CollectionRole + * Lookup475: pallet_nfts::types::CollectionRole **/ PalletNftsCollectionRole: { _enum: ["__Unused0", "Issuer", "Freezer", "__Unused3", "Admin"] }, /** - * Lookup485: pallet_nfts::types::ItemDetails, bounded_collections::bounded_btree_map::BoundedBTreeMap, S>> + * Lookup476: pallet_nfts::types::ItemDetails, bounded_collections::bounded_btree_map::BoundedBTreeMap, S>> **/ PalletNftsItemDetails: { owner: "AccountId32", @@ -4546,42 +4526,42 @@ export default { deposit: "PalletNftsItemDeposit" }, /** - * Lookup486: pallet_nfts::types::ItemDeposit + * Lookup477: pallet_nfts::types::ItemDeposit **/ PalletNftsItemDeposit: { account: "AccountId32", amount: "u128" }, /** - * Lookup491: pallet_nfts::types::CollectionMetadata + * Lookup482: pallet_nfts::types::CollectionMetadata **/ PalletNftsCollectionMetadata: { deposit: "u128", data: "Bytes" }, /** - * Lookup492: pallet_nfts::types::ItemMetadata, StringLimit> + * Lookup483: pallet_nfts::types::ItemMetadata, StringLimit> **/ PalletNftsItemMetadata: { deposit: "PalletNftsItemMetadataDeposit", data: "Bytes" }, /** - * Lookup493: pallet_nfts::types::ItemMetadataDeposit + * Lookup484: pallet_nfts::types::ItemMetadataDeposit **/ PalletNftsItemMetadataDeposit: { account: "Option", amount: "u128" }, /** - * Lookup496: pallet_nfts::types::AttributeDeposit + * Lookup487: pallet_nfts::types::AttributeDeposit **/ PalletNftsAttributeDeposit: { account: "Option", amount: "u128" }, /** - * Lookup500: pallet_nfts::types::PendingSwap, Deadline> + * Lookup491: pallet_nfts::types::PendingSwap, Deadline> **/ PalletNftsPendingSwap: { desiredCollection: "u32", @@ -4590,7 +4570,7 @@ export default { deadline: "u32" }, /** - * Lookup502: pallet_nfts::types::PalletFeature + * Lookup493: pallet_nfts::types::PalletFeature **/ PalletNftsPalletFeature: { _enum: [ @@ -4606,7 +4586,7 @@ export default { ] }, /** - * Lookup503: pallet_nfts::pallet::Error + * Lookup494: pallet_nfts::pallet::Error **/ PalletNftsError: { _enum: [ @@ -4658,51 +4638,51 @@ export default { ] }, /** - * Lookup506: frame_system::extensions::check_non_zero_sender::CheckNonZeroSender + * Lookup497: frame_system::extensions::check_non_zero_sender::CheckNonZeroSender **/ FrameSystemExtensionsCheckNonZeroSender: "Null", /** - * Lookup507: frame_system::extensions::check_spec_version::CheckSpecVersion + * Lookup498: frame_system::extensions::check_spec_version::CheckSpecVersion **/ FrameSystemExtensionsCheckSpecVersion: "Null", /** - * Lookup508: frame_system::extensions::check_tx_version::CheckTxVersion + * Lookup499: frame_system::extensions::check_tx_version::CheckTxVersion **/ FrameSystemExtensionsCheckTxVersion: "Null", /** - * Lookup509: frame_system::extensions::check_genesis::CheckGenesis + * Lookup500: frame_system::extensions::check_genesis::CheckGenesis **/ FrameSystemExtensionsCheckGenesis: "Null", /** - * Lookup512: frame_system::extensions::check_nonce::CheckNonce + * Lookup503: frame_system::extensions::check_nonce::CheckNonce **/ FrameSystemExtensionsCheckNonce: "Compact", /** - * Lookup513: frame_system::extensions::check_weight::CheckWeight + * Lookup504: frame_system::extensions::check_weight::CheckWeight **/ FrameSystemExtensionsCheckWeight: "Null", /** - * Lookup514: pallet_transaction_payment::ChargeTransactionPayment + * Lookup505: pallet_transaction_payment::ChargeTransactionPayment **/ PalletTransactionPaymentChargeTransactionPayment: "Compact", /** - * Lookup515: cumulus_primitives_storage_weight_reclaim::StorageWeightReclaim + * Lookup506: cumulus_primitives_storage_weight_reclaim::StorageWeightReclaim **/ CumulusPrimitivesStorageWeightReclaimStorageWeightReclaim: "Null", /** - * Lookup516: frame_metadata_hash_extension::CheckMetadataHash + * Lookup507: frame_metadata_hash_extension::CheckMetadataHash **/ FrameMetadataHashExtensionCheckMetadataHash: { mode: "FrameMetadataHashExtensionMode" }, /** - * Lookup517: frame_metadata_hash_extension::Mode + * Lookup508: frame_metadata_hash_extension::Mode **/ FrameMetadataHashExtensionMode: { _enum: ["Disabled", "Enabled"] }, /** - * Lookup518: storage_hub_runtime::Runtime + * Lookup509: storage_hub_runtime::Runtime **/ StorageHubRuntimeRuntime: "Null" }; diff --git a/api-augment/dist/interfaces/lookup.js.map b/api-augment/dist/interfaces/lookup.js.map index b8b50bd70..39847b4e2 100644 --- a/api-augment/dist/interfaces/lookup.js.map +++ b/api-augment/dist/interfaces/lookup.js.map @@ -1 +1 @@ -{"version":3,"file":"lookup.js","sourceRoot":"","sources":["../../src/interfaces/lookup.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"lookup.js","sourceRoot":"","sources":["../../src/interfaces/lookup.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/api-augment/dist/types/interfaces/augment-api-errors.d.ts b/api-augment/dist/types/interfaces/augment-api-errors.d.ts index 3c96febf0..59f7a5eab 100644 --- a/api-augment/dist/types/interfaces/augment-api-errors.d.ts +++ b/api-augment/dist/types/interfaces/augment-api-errors.d.ts @@ -998,6 +998,10 @@ declare module "@polkadot/api-base/types/errors" { * Error thrown when a bucket ID already exists in storage. **/ BucketAlreadyExists: AugmentedError; + /** + * Error thrown when a bucket has no value proposition. + **/ + BucketHasNoValueProposition: AugmentedError; /** * Error thrown when an operation requires an MSP to be storing the bucket. **/ diff --git a/api-augment/dist/types/interfaces/augment-api-events.d.ts b/api-augment/dist/types/interfaces/augment-api-events.d.ts index ab7a1a187..d45daedbd 100644 --- a/api-augment/dist/types/interfaces/augment-api-events.d.ts +++ b/api-augment/dist/types/interfaces/augment-api-events.d.ts @@ -21,7 +21,7 @@ import type { FrameSupportMessagesProcessMessageError, FrameSupportTokensMiscBalanceStatus, PalletFileSystemEitherAccountIdOrMspId, - PalletFileSystemMspRespondStorageRequestsResult, + PalletFileSystemRejectedStorageRequestReason, PalletNftsAttributeNamespace, PalletNftsPalletAttributes, PalletNftsPriceWithDirection, @@ -536,9 +536,6 @@ declare module "@polkadot/api-base/types/events" { newRoot: H256; } >; - /** - * Notifies that a BSP has opened a request to stop storing a file. - **/ BspRequestedToStopStoring: AugmentedEvent< ApiType, [bspId: H256, fileKey: H256, owner: AccountId32, location: Bytes], @@ -574,17 +571,6 @@ declare module "@polkadot/api-base/types/events" { private: bool; } >; - /** - * Notifies that a data server has been registered for a move bucket request. - **/ - DataServerRegisteredForMoveBucket: AugmentedEvent< - ApiType, - [bspId: H256, bucketId: H256], - { - bspId: H256; - bucketId: H256; - } - >; /** * Notifies that a priority challenge failed to be queued for pending file deletion. **/ @@ -601,12 +587,18 @@ declare module "@polkadot/api-base/types/events" { **/ FileDeletionRequest: AugmentedEvent< ApiType, - [user: AccountId32, fileKey: H256, bucketId: H256, mspId: H256, proofOfInclusion: bool], + [ + user: AccountId32, + fileKey: H256, + bucketId: H256, + mspId: Option, + proofOfInclusion: bool + ], { user: AccountId32; fileKey: H256; bucketId: H256; - mspId: H256; + mspId: Option; proofOfInclusion: bool; } >; @@ -656,13 +648,21 @@ declare module "@polkadot/api-base/types/events" { } >; /** - * Notifies that a MSP has responded to storage request(s). + * Notifies that a Main Storage Provider (MSP) has accepted a storage request for a specific file key. + * + * This event is emitted when an MSP agrees to store a file, but the storage request + * is not yet fully fulfilled (i.e., the required number of Backup Storage Providers + * have not yet confirmed storage). + * + * # Note + * This event is not emitted when the storage request is immediately fulfilled upon + * MSP acceptance. In such cases, a [`StorageRequestFulfilled`] event is emitted instead. **/ - MspRespondedToStorageRequests: AugmentedEvent< + MspAcceptedStorageRequest: AugmentedEvent< ApiType, - [results: PalletFileSystemMspRespondStorageRequestsResult], + [fileKey: H256], { - results: PalletFileSystemMspRespondStorageRequestsResult; + fileKey: H256; } >; /** @@ -684,21 +684,21 @@ declare module "@polkadot/api-base/types/events" { ApiType, [ who: AccountId32, - mspId: H256, + mspId: Option, bucketId: H256, name: Bytes, collectionId: Option, private: bool, - valuePropId: H256 + valuePropId: Option ], { who: AccountId32; - mspId: H256; + mspId: Option; bucketId: H256; name: Bytes; collectionId: Option; private: bool; - valuePropId: H256; + valuePropId: Option; } >; /** @@ -777,7 +777,10 @@ declare module "@polkadot/api-base/types/events" { } >; /** - * Notifies the expiration of a storage request. + * Notifies the expiration of a storage request. This means that the storage request has + * been accepted by the MSP but the BSP target has not been reached (possibly 0 BSPs). + * Note: This is a valid storage outcome, the user being responsible to track the number + * of BSPs and choose to either delete the file and re-issue a storage request or continue. **/ StorageRequestExpired: AugmentedEvent< ApiType, @@ -788,6 +791,8 @@ declare module "@polkadot/api-base/types/events" { >; /** * Notifies that a storage request for a file key has been fulfilled. + * This means that the storage request has been accepted by the MSP and the BSP target + * has been reached. **/ StorageRequestFulfilled: AugmentedEvent< ApiType, @@ -796,8 +801,24 @@ declare module "@polkadot/api-base/types/events" { fileKey: H256; } >; + /** + * Notifies that a storage request has either been directly rejected by the MSP or + * the MSP did not respond to the storage request in time. + * Note: There might be BSPs that have volunteered and confirmed the file already, for + * which a priority challenge to delete the file will be issued. + **/ + StorageRequestRejected: AugmentedEvent< + ApiType, + [fileKey: H256, reason: PalletFileSystemRejectedStorageRequestReason], + { + fileKey: H256; + reason: PalletFileSystemRejectedStorageRequestReason; + } + >; /** * Notifies that a storage request has been revoked by the user who initiated it. + * Note: the BSPs who confirmed the file are also issued a priority challenge to delete the + * file. **/ StorageRequestRevoked: AugmentedEvent< ApiType, @@ -2135,6 +2156,18 @@ declare module "@polkadot/api-base/types/events" { capacity: u64; } >; + /** + * Event emitted when a bucket's root has been changed. + **/ + BucketRootChanged: AugmentedEvent< + ApiType, + [bucketId: H256, oldRoot: H256, newRoot: H256], + { + bucketId: H256; + oldRoot: H256; + newRoot: H256; + } + >; /** * Event emitted when a SP has changed its capacity successfully. Provides information about * that SP's account id, its old total data that could store, and the new total data. diff --git a/api-augment/dist/types/interfaces/augment-api-tx.d.ts b/api-augment/dist/types/interfaces/augment-api-tx.d.ts index c28803146..cdba92aa5 100644 --- a/api-augment/dist/types/interfaces/augment-api-tx.d.ts +++ b/api-augment/dist/types/interfaces/augment-api-tx.d.ts @@ -13,7 +13,7 @@ import type { CumulusPrimitivesParachainInherentParachainInherentData, PalletBalancesAdjustmentDirection, PalletFileSystemBucketMoveRequestResponse, - PalletFileSystemMspStorageRequestResponse, + PalletFileSystemStorageRequestMspBucketResponse, PalletNftsAttributeNamespace, PalletNftsCancelAttributesApprovalWitness, PalletNftsCollectionConfig, @@ -590,12 +590,12 @@ declare module "@polkadot/api-base/types/submittable" { >; createBucket: AugmentedSubmittable< ( - mspId: H256 | string | Uint8Array, + mspId: Option | null | Uint8Array | H256 | string, name: Bytes | string | Uint8Array, private: bool | boolean | Uint8Array, - valuePropId: H256 | string | Uint8Array + valuePropId: Option | null | Uint8Array | H256 | string ) => SubmittableExtrinsic, - [H256, Bytes, bool, H256] + [Option, Bytes, bool, Option] >; /** * Dispatchable extrinsic that allows a User to delete any of their buckets if it is currently empty. @@ -638,10 +638,10 @@ declare module "@polkadot/api-base/types/submittable" { location: Bytes | string | Uint8Array, fingerprint: H256 | string | Uint8Array, size: u64 | AnyNumber | Uint8Array, - mspId: H256 | string | Uint8Array, + mspId: Option | null | Uint8Array | H256 | string, peerIds: Vec | (Bytes | string | Uint8Array)[] ) => SubmittableExtrinsic, - [H256, Bytes, H256, u64, H256, Vec] + [H256, Bytes, H256, u64, Option, Vec] >; mspRespondMoveBucketRequest: AugmentedSubmittable< ( @@ -668,22 +668,20 @@ declare module "@polkadot/api-base/types/submittable" { **/ mspRespondStorageRequestsMultipleBuckets: AugmentedSubmittable< ( - fileKeyResponsesInput: - | Vec> - | [ - H256 | string | Uint8Array, - ( - | PalletFileSystemMspStorageRequestResponse - | { - accept?: any; - reject?: any; - } - | string - | Uint8Array - ) - ][] + storageRequestMspResponse: + | Vec + | ( + | PalletFileSystemStorageRequestMspBucketResponse + | { + bucketId?: any; + accept?: any; + reject?: any; + } + | string + | Uint8Array + )[] ) => SubmittableExtrinsic, - [Vec>] + [Vec] >; mspStopStoringBucket: AugmentedSubmittable< (bucketId: H256 | string | Uint8Array) => SubmittableExtrinsic, diff --git a/api-augment/dist/types/interfaces/lookup.d.ts b/api-augment/dist/types/interfaces/lookup.d.ts index 6adc4a936..c66a9844b 100644 --- a/api-augment/dist/types/interfaces/lookup.d.ts +++ b/api-augment/dist/types/interfaces/lookup.d.ts @@ -1370,6 +1370,11 @@ declare const _default: { providerId: string; amountSlashed: string; }; + BucketRootChanged: { + bucketId: string; + oldRoot: string; + newRoot: string; + }; MultiAddressAdded: { providerId: string; newMultiaddress: string; @@ -1461,8 +1466,8 @@ declare const _default: { size_: string; peerIds: string; }; - MspRespondedToStorageRequests: { - results: string; + MspAcceptedStorageRequest: { + fileKey: string; }; AcceptedBspVolunteer: { _alias: { @@ -1491,6 +1496,10 @@ declare const _default: { StorageRequestRevoked: { fileKey: string; }; + StorageRequestRejected: { + fileKey: string; + reason: string; + }; BspRequestedToStopStoring: { bspId: string; fileKey: string; @@ -1547,10 +1556,6 @@ declare const _default: { bucketId: string; mspId: string; }; - DataServerRegisteredForMoveBucket: { - bspId: string; - bucketId: string; - }; MspStoppedStoringBucket: { mspId: string; owner: string; @@ -1559,55 +1564,13 @@ declare const _default: { }; }; /** - * Lookup135: pallet_file_system::types::MspRespondStorageRequestsResult - **/ - PalletFileSystemMspRespondStorageRequestsResult: { - mspId: string; - responses: string; - }; - /** - * Lookup137: pallet_file_system::types::BatchResponses - **/ - PalletFileSystemBatchResponses: { - _enum: { - Accepted: string; - Rejected: string; - Failed: string; - }; - }; - /** - * Lookup138: pallet_file_system::types::MspAcceptedBatchStorageRequests - **/ - PalletFileSystemMspAcceptedBatchStorageRequests: { - fileKeys: string; - bucketId: string; - newBucketRoot: string; - owner: string; - }; - /** - * Lookup141: pallet_file_system::types::MspRejectedBatchStorageRequests - **/ - PalletFileSystemMspRejectedBatchStorageRequests: { - fileKeys: string; - bucketId: string; - owner: string; - }; - /** - * Lookup144: pallet_file_system::types::RejectedStorageRequestReason + * Lookup138: pallet_file_system::types::RejectedStorageRequestReason **/ PalletFileSystemRejectedStorageRequestReason: { _enum: string[]; }; /** - * Lookup146: pallet_file_system::types::MspFailedBatchStorageRequests - **/ - PalletFileSystemMspFailedBatchStorageRequests: { - fileKeys: string; - bucketId: string; - owner: string; - }; - /** - * Lookup151: pallet_file_system::types::EitherAccountIdOrMspId + * Lookup139: pallet_file_system::types::EitherAccountIdOrMspId **/ PalletFileSystemEitherAccountIdOrMspId: { _enum: { @@ -1616,7 +1579,7 @@ declare const _default: { }; }; /** - * Lookup152: pallet_proofs_dealer::pallet::Event + * Lookup140: pallet_proofs_dealer::pallet::Event **/ PalletProofsDealerEvent: { _enum: { @@ -1661,34 +1624,34 @@ declare const _default: { }; }; /** - * Lookup153: pallet_proofs_dealer::types::Proof + * Lookup141: pallet_proofs_dealer::types::Proof **/ PalletProofsDealerProof: { forestProof: string; keyProofs: string; }; /** - * Lookup154: sp_trie::storage_proof::CompactProof + * Lookup142: sp_trie::storage_proof::CompactProof **/ SpTrieStorageProofCompactProof: { encodedNodes: string; }; /** - * Lookup157: pallet_proofs_dealer::types::KeyProof + * Lookup145: pallet_proofs_dealer::types::KeyProof **/ PalletProofsDealerKeyProof: { proof: string; challengeCount: string; }; /** - * Lookup158: shp_file_key_verifier::types::FileKeyProof + * Lookup146: shp_file_key_verifier::types::FileKeyProof **/ ShpFileKeyVerifierFileKeyProof: { fileMetadata: string; proof: string; }; /** - * Lookup159: shp_file_metadata::FileMetadata + * Lookup147: shp_file_metadata::FileMetadata **/ ShpFileMetadataFileMetadata: { owner: string; @@ -1698,15 +1661,15 @@ declare const _default: { fingerprint: string; }; /** - * Lookup160: shp_file_metadata::Fingerprint + * Lookup148: shp_file_metadata::Fingerprint **/ ShpFileMetadataFingerprint: string; /** - * Lookup166: shp_traits::TrieRemoveMutation + * Lookup154: shp_traits::TrieRemoveMutation **/ ShpTraitsTrieRemoveMutation: string; /** - * Lookup170: pallet_randomness::pallet::Event + * Lookup158: pallet_randomness::pallet::Event **/ PalletRandomnessEvent: { _enum: { @@ -1718,7 +1681,7 @@ declare const _default: { }; }; /** - * Lookup171: pallet_payment_streams::pallet::Event + * Lookup159: pallet_payment_streams::pallet::Event **/ PalletPaymentStreamsEvent: { _enum: { @@ -1779,7 +1742,7 @@ declare const _default: { }; }; /** - * Lookup173: pallet_bucket_nfts::pallet::Event + * Lookup161: pallet_bucket_nfts::pallet::Event **/ PalletBucketNftsEvent: { _enum: { @@ -1800,7 +1763,7 @@ declare const _default: { }; }; /** - * Lookup174: pallet_nfts::pallet::Event + * Lookup162: pallet_nfts::pallet::Event **/ PalletNftsEvent: { _enum: { @@ -2001,7 +1964,7 @@ declare const _default: { }; }; /** - * Lookup178: pallet_nfts::types::AttributeNamespace + * Lookup166: pallet_nfts::types::AttributeNamespace **/ PalletNftsAttributeNamespace: { _enum: { @@ -2012,20 +1975,20 @@ declare const _default: { }; }; /** - * Lookup180: pallet_nfts::types::PriceWithDirection + * Lookup168: pallet_nfts::types::PriceWithDirection **/ PalletNftsPriceWithDirection: { amount: string; direction: string; }; /** - * Lookup181: pallet_nfts::types::PriceDirection + * Lookup169: pallet_nfts::types::PriceDirection **/ PalletNftsPriceDirection: { _enum: string[]; }; /** - * Lookup182: pallet_nfts::types::PalletAttributes + * Lookup170: pallet_nfts::types::PalletAttributes **/ PalletNftsPalletAttributes: { _enum: { @@ -2034,7 +1997,7 @@ declare const _default: { }; }; /** - * Lookup183: pallet_parameters::pallet::Event + * Lookup171: pallet_parameters::pallet::Event **/ PalletParametersEvent: { _enum: { @@ -2046,7 +2009,7 @@ declare const _default: { }; }; /** - * Lookup184: storage_hub_runtime::configs::runtime_params::RuntimeParametersKey + * Lookup172: storage_hub_runtime::configs::runtime_params::RuntimeParametersKey **/ StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersKey: { _enum: { @@ -2054,81 +2017,81 @@ declare const _default: { }; }; /** - * Lookup185: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::ParametersKey + * Lookup173: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::ParametersKey **/ StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParametersKey: { _enum: string[]; }; /** - * Lookup186: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::SlashAmountPerMaxFileSize + * Lookup174: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::SlashAmountPerMaxFileSize **/ StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigSlashAmountPerMaxFileSize: string; /** - * Lookup187: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::StakeToChallengePeriod + * Lookup175: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::StakeToChallengePeriod **/ StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigStakeToChallengePeriod: string; /** - * Lookup188: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::CheckpointChallengePeriod + * Lookup176: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::CheckpointChallengePeriod **/ StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigCheckpointChallengePeriod: string; /** - * Lookup189: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::MinChallengePeriod + * Lookup177: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::MinChallengePeriod **/ StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigMinChallengePeriod: string; /** - * Lookup190: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::SystemUtilisationLowerThresholdPercentage + * Lookup178: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::SystemUtilisationLowerThresholdPercentage **/ StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigSystemUtilisationLowerThresholdPercentage: string; /** - * Lookup191: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::SystemUtilisationUpperThresholdPercentage + * Lookup179: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::SystemUtilisationUpperThresholdPercentage **/ StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigSystemUtilisationUpperThresholdPercentage: string; /** - * Lookup192: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::MostlyStablePrice + * Lookup180: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::MostlyStablePrice **/ StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigMostlyStablePrice: string; /** - * Lookup193: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::MaxPrice + * Lookup181: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::MaxPrice **/ StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigMaxPrice: string; /** - * Lookup194: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::MinPrice + * Lookup182: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::MinPrice **/ StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigMinPrice: string; /** - * Lookup195: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::UpperExponentFactor + * Lookup183: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::UpperExponentFactor **/ StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigUpperExponentFactor: string; /** - * Lookup196: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::LowerExponentFactor + * Lookup184: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::LowerExponentFactor **/ StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigLowerExponentFactor: string; /** - * Lookup197: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::ZeroSizeBucketFixedRate + * Lookup185: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::ZeroSizeBucketFixedRate **/ StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigZeroSizeBucketFixedRate: string; /** - * Lookup198: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::IdealUtilisationRate + * Lookup186: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::IdealUtilisationRate **/ StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigIdealUtilisationRate: string; /** - * Lookup199: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::DecayRate + * Lookup187: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::DecayRate **/ StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigDecayRate: string; /** - * Lookup200: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::MinimumTreasuryCut + * Lookup188: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::MinimumTreasuryCut **/ StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigMinimumTreasuryCut: string; /** - * Lookup201: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::MaximumTreasuryCut + * Lookup189: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::MaximumTreasuryCut **/ StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigMaximumTreasuryCut: string; /** - * Lookup202: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::BspStopStoringFilePenalty + * Lookup190: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::BspStopStoringFilePenalty **/ StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigBspStopStoringFilePenalty: string; /** - * Lookup204: storage_hub_runtime::configs::runtime_params::RuntimeParametersValue + * Lookup192: storage_hub_runtime::configs::runtime_params::RuntimeParametersValue **/ StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersValue: { _enum: { @@ -2136,7 +2099,7 @@ declare const _default: { }; }; /** - * Lookup205: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::ParametersValue + * Lookup193: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::ParametersValue **/ StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParametersValue: { _enum: { @@ -2160,7 +2123,7 @@ declare const _default: { }; }; /** - * Lookup207: frame_system::Phase + * Lookup195: frame_system::Phase **/ FrameSystemPhase: { _enum: { @@ -2170,21 +2133,21 @@ declare const _default: { }; }; /** - * Lookup210: frame_system::LastRuntimeUpgradeInfo + * Lookup198: frame_system::LastRuntimeUpgradeInfo **/ FrameSystemLastRuntimeUpgradeInfo: { specVersion: string; specName: string; }; /** - * Lookup212: frame_system::CodeUpgradeAuthorization + * Lookup200: frame_system::CodeUpgradeAuthorization **/ FrameSystemCodeUpgradeAuthorization: { codeHash: string; checkVersion: string; }; /** - * Lookup213: frame_system::pallet::Call + * Lookup201: frame_system::pallet::Call **/ FrameSystemCall: { _enum: { @@ -2229,7 +2192,7 @@ declare const _default: { }; }; /** - * Lookup216: frame_system::limits::BlockWeights + * Lookup204: frame_system::limits::BlockWeights **/ FrameSystemLimitsBlockWeights: { baseBlock: string; @@ -2237,7 +2200,7 @@ declare const _default: { perClass: string; }; /** - * Lookup217: frame_support::dispatch::PerDispatchClass + * Lookup205: frame_support::dispatch::PerDispatchClass **/ FrameSupportDispatchPerDispatchClassWeightsPerClass: { normal: string; @@ -2245,7 +2208,7 @@ declare const _default: { mandatory: string; }; /** - * Lookup218: frame_system::limits::WeightsPerClass + * Lookup206: frame_system::limits::WeightsPerClass **/ FrameSystemLimitsWeightsPerClass: { baseExtrinsic: string; @@ -2254,13 +2217,13 @@ declare const _default: { reserved: string; }; /** - * Lookup220: frame_system::limits::BlockLength + * Lookup208: frame_system::limits::BlockLength **/ FrameSystemLimitsBlockLength: { max: string; }; /** - * Lookup221: frame_support::dispatch::PerDispatchClass + * Lookup209: frame_support::dispatch::PerDispatchClass **/ FrameSupportDispatchPerDispatchClassU32: { normal: string; @@ -2268,14 +2231,14 @@ declare const _default: { mandatory: string; }; /** - * Lookup222: sp_weights::RuntimeDbWeight + * Lookup210: sp_weights::RuntimeDbWeight **/ SpWeightsRuntimeDbWeight: { read: string; write: string; }; /** - * Lookup223: sp_version::RuntimeVersion + * Lookup211: sp_version::RuntimeVersion **/ SpVersionRuntimeVersion: { specName: string; @@ -2288,13 +2251,13 @@ declare const _default: { stateVersion: string; }; /** - * Lookup228: frame_system::pallet::Error + * Lookup216: frame_system::pallet::Error **/ FrameSystemError: { _enum: string[]; }; /** - * Lookup230: cumulus_pallet_parachain_system::unincluded_segment::Ancestor + * Lookup218: cumulus_pallet_parachain_system::unincluded_segment::Ancestor **/ CumulusPalletParachainSystemUnincludedSegmentAncestor: { usedBandwidth: string; @@ -2302,7 +2265,7 @@ declare const _default: { consumedGoAheadSignal: string; }; /** - * Lookup231: cumulus_pallet_parachain_system::unincluded_segment::UsedBandwidth + * Lookup219: cumulus_pallet_parachain_system::unincluded_segment::UsedBandwidth **/ CumulusPalletParachainSystemUnincludedSegmentUsedBandwidth: { umpMsgCount: string; @@ -2310,20 +2273,20 @@ declare const _default: { hrmpOutgoing: string; }; /** - * Lookup233: cumulus_pallet_parachain_system::unincluded_segment::HrmpChannelUpdate + * Lookup221: cumulus_pallet_parachain_system::unincluded_segment::HrmpChannelUpdate **/ CumulusPalletParachainSystemUnincludedSegmentHrmpChannelUpdate: { msgCount: string; totalBytes: string; }; /** - * Lookup238: polkadot_primitives::v8::UpgradeGoAhead + * Lookup225: polkadot_primitives::v8::UpgradeGoAhead **/ PolkadotPrimitivesV8UpgradeGoAhead: { _enum: string[]; }; /** - * Lookup239: cumulus_pallet_parachain_system::unincluded_segment::SegmentTracker + * Lookup226: cumulus_pallet_parachain_system::unincluded_segment::SegmentTracker **/ CumulusPalletParachainSystemUnincludedSegmentSegmentTracker: { usedBandwidth: string; @@ -2331,7 +2294,7 @@ declare const _default: { consumedGoAheadSignal: string; }; /** - * Lookup240: polkadot_primitives::v8::PersistedValidationData + * Lookup227: polkadot_primitives::v8::PersistedValidationData **/ PolkadotPrimitivesV8PersistedValidationData: { parentHead: string; @@ -2340,19 +2303,19 @@ declare const _default: { maxPovSize: string; }; /** - * Lookup243: polkadot_primitives::v8::UpgradeRestriction + * Lookup230: polkadot_primitives::v8::UpgradeRestriction **/ PolkadotPrimitivesV8UpgradeRestriction: { _enum: string[]; }; /** - * Lookup244: sp_trie::storage_proof::StorageProof + * Lookup231: sp_trie::storage_proof::StorageProof **/ SpTrieStorageProof: { trieNodes: string; }; /** - * Lookup246: cumulus_pallet_parachain_system::relay_state_snapshot::MessagingStateSnapshot + * Lookup233: cumulus_pallet_parachain_system::relay_state_snapshot::MessagingStateSnapshot **/ CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot: { dmqMqcHead: string; @@ -2361,14 +2324,14 @@ declare const _default: { egressChannels: string; }; /** - * Lookup247: cumulus_pallet_parachain_system::relay_state_snapshot::RelayDispatchQueueRemainingCapacity + * Lookup234: cumulus_pallet_parachain_system::relay_state_snapshot::RelayDispatchQueueRemainingCapacity **/ CumulusPalletParachainSystemRelayStateSnapshotRelayDispatchQueueRemainingCapacity: { remainingCount: string; remainingSize: string; }; /** - * Lookup250: polkadot_primitives::v8::AbridgedHrmpChannel + * Lookup237: polkadot_primitives::v8::AbridgedHrmpChannel **/ PolkadotPrimitivesV8AbridgedHrmpChannel: { maxCapacity: string; @@ -2379,7 +2342,7 @@ declare const _default: { mqcHead: string; }; /** - * Lookup251: polkadot_primitives::v8::AbridgedHostConfiguration + * Lookup238: polkadot_primitives::v8::AbridgedHostConfiguration **/ PolkadotPrimitivesV8AbridgedHostConfiguration: { maxCodeSize: string; @@ -2394,21 +2357,21 @@ declare const _default: { asyncBackingParams: string; }; /** - * Lookup252: polkadot_primitives::v8::async_backing::AsyncBackingParams + * Lookup239: polkadot_primitives::v8::async_backing::AsyncBackingParams **/ PolkadotPrimitivesV8AsyncBackingAsyncBackingParams: { maxCandidateDepth: string; allowedAncestryLen: string; }; /** - * Lookup258: polkadot_core_primitives::OutboundHrmpMessage + * Lookup245: polkadot_core_primitives::OutboundHrmpMessage **/ PolkadotCorePrimitivesOutboundHrmpMessage: { recipient: string; data: string; }; /** - * Lookup260: cumulus_pallet_parachain_system::pallet::Call + * Lookup247: cumulus_pallet_parachain_system::pallet::Call **/ CumulusPalletParachainSystemCall: { _enum: { @@ -2421,7 +2384,7 @@ declare const _default: { }; }; /** - * Lookup261: cumulus_primitives_parachain_inherent::ParachainInherentData + * Lookup248: cumulus_primitives_parachain_inherent::ParachainInherentData **/ CumulusPrimitivesParachainInherentParachainInherentData: { validationData: string; @@ -2430,27 +2393,27 @@ declare const _default: { horizontalMessages: string; }; /** - * Lookup263: polkadot_core_primitives::InboundDownwardMessage + * Lookup250: polkadot_core_primitives::InboundDownwardMessage **/ PolkadotCorePrimitivesInboundDownwardMessage: { sentAt: string; msg: string; }; /** - * Lookup266: polkadot_core_primitives::InboundHrmpMessage + * Lookup253: polkadot_core_primitives::InboundHrmpMessage **/ PolkadotCorePrimitivesInboundHrmpMessage: { sentAt: string; data: string; }; /** - * Lookup269: cumulus_pallet_parachain_system::pallet::Error + * Lookup256: cumulus_pallet_parachain_system::pallet::Error **/ CumulusPalletParachainSystemError: { _enum: string[]; }; /** - * Lookup270: pallet_timestamp::pallet::Call + * Lookup257: pallet_timestamp::pallet::Call **/ PalletTimestampCall: { _enum: { @@ -2460,11 +2423,11 @@ declare const _default: { }; }; /** - * Lookup271: staging_parachain_info::pallet::Call + * Lookup258: staging_parachain_info::pallet::Call **/ StagingParachainInfoCall: string; /** - * Lookup273: pallet_balances::types::BalanceLock + * Lookup260: pallet_balances::types::BalanceLock **/ PalletBalancesBalanceLock: { id: string; @@ -2472,20 +2435,20 @@ declare const _default: { reasons: string; }; /** - * Lookup274: pallet_balances::types::Reasons + * Lookup261: pallet_balances::types::Reasons **/ PalletBalancesReasons: { _enum: string[]; }; /** - * Lookup277: pallet_balances::types::ReserveData + * Lookup264: pallet_balances::types::ReserveData **/ PalletBalancesReserveData: { id: string; amount: string; }; /** - * Lookup281: storage_hub_runtime::RuntimeHoldReason + * Lookup268: storage_hub_runtime::RuntimeHoldReason **/ StorageHubRuntimeRuntimeHoldReason: { _enum: { @@ -2537,32 +2500,32 @@ declare const _default: { }; }; /** - * Lookup282: pallet_storage_providers::pallet::HoldReason + * Lookup269: pallet_storage_providers::pallet::HoldReason **/ PalletStorageProvidersHoldReason: { _enum: string[]; }; /** - * Lookup283: pallet_file_system::pallet::HoldReason + * Lookup270: pallet_file_system::pallet::HoldReason **/ PalletFileSystemHoldReason: { _enum: string[]; }; /** - * Lookup284: pallet_payment_streams::pallet::HoldReason + * Lookup271: pallet_payment_streams::pallet::HoldReason **/ PalletPaymentStreamsHoldReason: { _enum: string[]; }; /** - * Lookup287: frame_support::traits::tokens::misc::IdAmount + * Lookup274: frame_support::traits::tokens::misc::IdAmount **/ FrameSupportTokensMiscIdAmount: { id: string; amount: string; }; /** - * Lookup289: pallet_balances::pallet::Call + * Lookup276: pallet_balances::pallet::Call **/ PalletBalancesCall: { _enum: { @@ -2607,25 +2570,25 @@ declare const _default: { }; }; /** - * Lookup292: pallet_balances::types::AdjustmentDirection + * Lookup279: pallet_balances::types::AdjustmentDirection **/ PalletBalancesAdjustmentDirection: { _enum: string[]; }; /** - * Lookup293: pallet_balances::pallet::Error + * Lookup280: pallet_balances::pallet::Error **/ PalletBalancesError: { _enum: string[]; }; /** - * Lookup294: pallet_transaction_payment::Releases + * Lookup281: pallet_transaction_payment::Releases **/ PalletTransactionPaymentReleases: { _enum: string[]; }; /** - * Lookup295: pallet_sudo::pallet::Call + * Lookup282: pallet_sudo::pallet::Call **/ PalletSudoCall: { _enum: { @@ -2650,7 +2613,7 @@ declare const _default: { }; }; /** - * Lookup297: pallet_collator_selection::pallet::Call + * Lookup284: pallet_collator_selection::pallet::Call **/ PalletCollatorSelectionCall: { _enum: { @@ -2684,7 +2647,7 @@ declare const _default: { }; }; /** - * Lookup298: pallet_session::pallet::Call + * Lookup285: pallet_session::pallet::Call **/ PalletSessionCall: { _enum: { @@ -2699,17 +2662,17 @@ declare const _default: { }; }; /** - * Lookup299: storage_hub_runtime::SessionKeys + * Lookup286: storage_hub_runtime::SessionKeys **/ StorageHubRuntimeSessionKeys: { aura: string; }; /** - * Lookup300: sp_consensus_aura::sr25519::app_sr25519::Public + * Lookup287: sp_consensus_aura::sr25519::app_sr25519::Public **/ SpConsensusAuraSr25519AppSr25519Public: string; /** - * Lookup301: cumulus_pallet_xcmp_queue::pallet::Call + * Lookup288: cumulus_pallet_xcmp_queue::pallet::Call **/ CumulusPalletXcmpQueueCall: { _enum: { @@ -2737,7 +2700,7 @@ declare const _default: { }; }; /** - * Lookup302: pallet_xcm::pallet::Call + * Lookup289: pallet_xcm::pallet::Call **/ PalletXcmCall: { _enum: { @@ -2814,7 +2777,7 @@ declare const _default: { }; }; /** - * Lookup303: xcm::VersionedXcm + * Lookup290: xcm::VersionedXcm **/ XcmVersionedXcm: { _enum: { @@ -2826,11 +2789,11 @@ declare const _default: { }; }; /** - * Lookup304: xcm::v2::Xcm + * Lookup291: xcm::v2::Xcm **/ XcmV2Xcm: string; /** - * Lookup306: xcm::v2::Instruction + * Lookup293: xcm::v2::Instruction **/ XcmV2Instruction: { _enum: { @@ -2928,7 +2891,7 @@ declare const _default: { }; }; /** - * Lookup307: xcm::v2::Response + * Lookup294: xcm::v2::Response **/ XcmV2Response: { _enum: { @@ -2939,7 +2902,7 @@ declare const _default: { }; }; /** - * Lookup310: xcm::v2::traits::Error + * Lookup297: xcm::v2::traits::Error **/ XcmV2TraitsError: { _enum: { @@ -2972,13 +2935,13 @@ declare const _default: { }; }; /** - * Lookup311: xcm::v2::OriginKind + * Lookup298: xcm::v2::OriginKind **/ XcmV2OriginKind: { _enum: string[]; }; /** - * Lookup312: xcm::v2::multiasset::MultiAssetFilter + * Lookup299: xcm::v2::multiasset::MultiAssetFilter **/ XcmV2MultiassetMultiAssetFilter: { _enum: { @@ -2987,7 +2950,7 @@ declare const _default: { }; }; /** - * Lookup313: xcm::v2::multiasset::WildMultiAsset + * Lookup300: xcm::v2::multiasset::WildMultiAsset **/ XcmV2MultiassetWildMultiAsset: { _enum: { @@ -2999,13 +2962,13 @@ declare const _default: { }; }; /** - * Lookup314: xcm::v2::multiasset::WildFungibility + * Lookup301: xcm::v2::multiasset::WildFungibility **/ XcmV2MultiassetWildFungibility: { _enum: string[]; }; /** - * Lookup315: xcm::v2::WeightLimit + * Lookup302: xcm::v2::WeightLimit **/ XcmV2WeightLimit: { _enum: { @@ -3014,11 +2977,11 @@ declare const _default: { }; }; /** - * Lookup316: xcm::v3::Xcm + * Lookup303: xcm::v3::Xcm **/ XcmV3Xcm: string; /** - * Lookup318: xcm::v3::Instruction + * Lookup305: xcm::v3::Instruction **/ XcmV3Instruction: { _enum: { @@ -3160,7 +3123,7 @@ declare const _default: { }; }; /** - * Lookup319: xcm::v3::Response + * Lookup306: xcm::v3::Response **/ XcmV3Response: { _enum: { @@ -3173,7 +3136,7 @@ declare const _default: { }; }; /** - * Lookup321: xcm::v3::PalletInfo + * Lookup308: xcm::v3::PalletInfo **/ XcmV3PalletInfo: { index: string; @@ -3184,7 +3147,7 @@ declare const _default: { patch: string; }; /** - * Lookup325: xcm::v3::QueryResponseInfo + * Lookup312: xcm::v3::QueryResponseInfo **/ XcmV3QueryResponseInfo: { destination: string; @@ -3192,7 +3155,7 @@ declare const _default: { maxWeight: string; }; /** - * Lookup326: xcm::v3::multiasset::MultiAssetFilter + * Lookup313: xcm::v3::multiasset::MultiAssetFilter **/ XcmV3MultiassetMultiAssetFilter: { _enum: { @@ -3201,7 +3164,7 @@ declare const _default: { }; }; /** - * Lookup327: xcm::v3::multiasset::WildMultiAsset + * Lookup314: xcm::v3::multiasset::WildMultiAsset **/ XcmV3MultiassetWildMultiAsset: { _enum: { @@ -3219,13 +3182,13 @@ declare const _default: { }; }; /** - * Lookup328: xcm::v3::multiasset::WildFungibility + * Lookup315: xcm::v3::multiasset::WildFungibility **/ XcmV3MultiassetWildFungibility: { _enum: string[]; }; /** - * Lookup340: staging_xcm_executor::traits::asset_transfer::TransferType + * Lookup327: staging_xcm_executor::traits::asset_transfer::TransferType **/ StagingXcmExecutorAssetTransferTransferType: { _enum: { @@ -3236,7 +3199,7 @@ declare const _default: { }; }; /** - * Lookup341: xcm::VersionedAssetId + * Lookup328: xcm::VersionedAssetId **/ XcmVersionedAssetId: { _enum: { @@ -3248,11 +3211,11 @@ declare const _default: { }; }; /** - * Lookup342: cumulus_pallet_xcm::pallet::Call + * Lookup329: cumulus_pallet_xcm::pallet::Call **/ CumulusPalletXcmCall: string; /** - * Lookup343: pallet_message_queue::pallet::Call + * Lookup330: pallet_message_queue::pallet::Call **/ PalletMessageQueueCall: { _enum: { @@ -3269,7 +3232,7 @@ declare const _default: { }; }; /** - * Lookup344: pallet_storage_providers::pallet::Call + * Lookup331: pallet_storage_providers::pallet::Call **/ PalletStorageProvidersCall: { _enum: { @@ -3333,7 +3296,7 @@ declare const _default: { }; }; /** - * Lookup345: pallet_file_system::pallet::Call + * Lookup332: pallet_file_system::pallet::Call **/ PalletFileSystemCall: { _enum: { @@ -3376,7 +3339,7 @@ declare const _default: { fileKey: string; }; msp_respond_storage_requests_multiple_buckets: { - fileKeyResponsesInput: string; + storageRequestMspResponse: string; }; msp_stop_storing_bucket: { bucketId: string; @@ -3441,27 +3404,42 @@ declare const _default: { }; }; /** - * Lookup346: pallet_file_system::types::BucketMoveRequestResponse + * Lookup333: pallet_file_system::types::BucketMoveRequestResponse **/ PalletFileSystemBucketMoveRequestResponse: { _enum: string[]; }; /** - * Lookup349: pallet_file_system::types::MspStorageRequestResponse + * Lookup335: pallet_file_system::types::StorageRequestMspBucketResponse **/ - PalletFileSystemMspStorageRequestResponse: { + PalletFileSystemStorageRequestMspBucketResponse: { + bucketId: string; accept: string; reject: string; }; /** - * Lookup351: pallet_file_system::types::AcceptedStorageRequestParameters + * Lookup337: pallet_file_system::types::StorageRequestMspAcceptedFileKeys **/ - PalletFileSystemAcceptedStorageRequestParameters: { + PalletFileSystemStorageRequestMspAcceptedFileKeys: { fileKeysAndProofs: string; nonInclusionForestProof: string; }; /** - * Lookup358: pallet_proofs_dealer::pallet::Call + * Lookup339: pallet_file_system::types::FileKeyWithProof + **/ + PalletFileSystemFileKeyWithProof: { + fileKey: string; + proof: string; + }; + /** + * Lookup342: pallet_file_system::types::RejectedStorageRequest + **/ + PalletFileSystemRejectedStorageRequest: { + fileKey: string; + reason: string; + }; + /** + * Lookup349: pallet_proofs_dealer::pallet::Call **/ PalletProofsDealerCall: { _enum: { @@ -3481,13 +3459,13 @@ declare const _default: { }; }; /** - * Lookup359: pallet_randomness::pallet::Call + * Lookup350: pallet_randomness::pallet::Call **/ PalletRandomnessCall: { _enum: string[]; }; /** - * Lookup360: pallet_payment_streams::pallet::Call + * Lookup351: pallet_payment_streams::pallet::Call **/ PalletPaymentStreamsCall: { _enum: { @@ -3530,7 +3508,7 @@ declare const _default: { }; }; /** - * Lookup361: pallet_bucket_nfts::pallet::Call + * Lookup352: pallet_bucket_nfts::pallet::Call **/ PalletBucketNftsCall: { _enum: { @@ -3548,7 +3526,7 @@ declare const _default: { }; }; /** - * Lookup363: pallet_nfts::pallet::Call + * Lookup354: pallet_nfts::pallet::Call **/ PalletNftsCall: { _enum: { @@ -3745,7 +3723,7 @@ declare const _default: { }; }; /** - * Lookup364: pallet_nfts::types::CollectionConfig + * Lookup355: pallet_nfts::types::CollectionConfig **/ PalletNftsCollectionConfig: { settings: string; @@ -3753,13 +3731,13 @@ declare const _default: { mintSettings: string; }; /** - * Lookup366: pallet_nfts::types::CollectionSetting + * Lookup357: pallet_nfts::types::CollectionSetting **/ PalletNftsCollectionSetting: { _enum: string[]; }; /** - * Lookup367: pallet_nfts::types::MintSettings + * Lookup358: pallet_nfts::types::MintSettings **/ PalletNftsMintSettings: { mintType: string; @@ -3769,7 +3747,7 @@ declare const _default: { defaultItemSettings: string; }; /** - * Lookup368: pallet_nfts::types::MintType + * Lookup359: pallet_nfts::types::MintType **/ PalletNftsMintType: { _enum: { @@ -3779,13 +3757,13 @@ declare const _default: { }; }; /** - * Lookup371: pallet_nfts::types::ItemSetting + * Lookup362: pallet_nfts::types::ItemSetting **/ PalletNftsItemSetting: { _enum: string[]; }; /** - * Lookup372: pallet_nfts::types::DestroyWitness + * Lookup363: pallet_nfts::types::DestroyWitness **/ PalletNftsDestroyWitness: { itemMetadatas: string; @@ -3793,26 +3771,26 @@ declare const _default: { attributes: string; }; /** - * Lookup374: pallet_nfts::types::MintWitness + * Lookup365: pallet_nfts::types::MintWitness **/ PalletNftsMintWitness: { ownedItem: string; mintPrice: string; }; /** - * Lookup375: pallet_nfts::types::ItemConfig + * Lookup366: pallet_nfts::types::ItemConfig **/ PalletNftsItemConfig: { settings: string; }; /** - * Lookup377: pallet_nfts::types::CancelAttributesApprovalWitness + * Lookup368: pallet_nfts::types::CancelAttributesApprovalWitness **/ PalletNftsCancelAttributesApprovalWitness: { accountAttributes: string; }; /** - * Lookup379: pallet_nfts::types::ItemTip + * Lookup370: pallet_nfts::types::ItemTip **/ PalletNftsItemTip: { collection: string; @@ -3821,7 +3799,7 @@ declare const _default: { amount: string; }; /** - * Lookup381: pallet_nfts::types::PreSignedMint + * Lookup372: pallet_nfts::types::PreSignedMint **/ PalletNftsPreSignedMint: { collection: string; @@ -3833,7 +3811,7 @@ declare const _default: { mintPrice: string; }; /** - * Lookup382: sp_runtime::MultiSignature + * Lookup373: sp_runtime::MultiSignature **/ SpRuntimeMultiSignature: { _enum: { @@ -3843,7 +3821,7 @@ declare const _default: { }; }; /** - * Lookup385: pallet_nfts::types::PreSignedAttributes + * Lookup376: pallet_nfts::types::PreSignedAttributes **/ PalletNftsPreSignedAttributes: { collection: string; @@ -3853,7 +3831,7 @@ declare const _default: { deadline: string; }; /** - * Lookup386: pallet_parameters::pallet::Call + * Lookup377: pallet_parameters::pallet::Call **/ PalletParametersCall: { _enum: { @@ -3863,7 +3841,7 @@ declare const _default: { }; }; /** - * Lookup387: storage_hub_runtime::configs::runtime_params::RuntimeParameters + * Lookup378: storage_hub_runtime::configs::runtime_params::RuntimeParameters **/ StorageHubRuntimeConfigsRuntimeParamsRuntimeParameters: { _enum: { @@ -3871,7 +3849,7 @@ declare const _default: { }; }; /** - * Lookup388: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::Parameters + * Lookup379: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::Parameters **/ StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParameters: { _enum: { @@ -3895,36 +3873,36 @@ declare const _default: { }; }; /** - * Lookup390: pallet_sudo::pallet::Error + * Lookup381: pallet_sudo::pallet::Error **/ PalletSudoError: { _enum: string[]; }; /** - * Lookup393: pallet_collator_selection::pallet::CandidateInfo + * Lookup384: pallet_collator_selection::pallet::CandidateInfo **/ PalletCollatorSelectionCandidateInfo: { who: string; deposit: string; }; /** - * Lookup395: pallet_collator_selection::pallet::Error + * Lookup386: pallet_collator_selection::pallet::Error **/ PalletCollatorSelectionError: { _enum: string[]; }; /** - * Lookup399: sp_core::crypto::KeyTypeId + * Lookup390: sp_core::crypto::KeyTypeId **/ SpCoreCryptoKeyTypeId: string; /** - * Lookup400: pallet_session::pallet::Error + * Lookup391: pallet_session::pallet::Error **/ PalletSessionError: { _enum: string[]; }; /** - * Lookup409: cumulus_pallet_xcmp_queue::OutboundChannelDetails + * Lookup400: cumulus_pallet_xcmp_queue::OutboundChannelDetails **/ CumulusPalletXcmpQueueOutboundChannelDetails: { recipient: string; @@ -3934,13 +3912,13 @@ declare const _default: { lastIndex: string; }; /** - * Lookup410: cumulus_pallet_xcmp_queue::OutboundState + * Lookup401: cumulus_pallet_xcmp_queue::OutboundState **/ CumulusPalletXcmpQueueOutboundState: { _enum: string[]; }; /** - * Lookup414: cumulus_pallet_xcmp_queue::QueueConfigData + * Lookup405: cumulus_pallet_xcmp_queue::QueueConfigData **/ CumulusPalletXcmpQueueQueueConfigData: { suspendThreshold: string; @@ -3948,13 +3926,13 @@ declare const _default: { resumeThreshold: string; }; /** - * Lookup415: cumulus_pallet_xcmp_queue::pallet::Error + * Lookup406: cumulus_pallet_xcmp_queue::pallet::Error **/ CumulusPalletXcmpQueueError: { _enum: string[]; }; /** - * Lookup416: pallet_xcm::pallet::QueryStatus + * Lookup407: pallet_xcm::pallet::QueryStatus **/ PalletXcmQueryStatus: { _enum: { @@ -3975,7 +3953,7 @@ declare const _default: { }; }; /** - * Lookup420: xcm::VersionedResponse + * Lookup411: xcm::VersionedResponse **/ XcmVersionedResponse: { _enum: { @@ -3987,7 +3965,7 @@ declare const _default: { }; }; /** - * Lookup426: pallet_xcm::pallet::VersionMigrationStage + * Lookup417: pallet_xcm::pallet::VersionMigrationStage **/ PalletXcmVersionMigrationStage: { _enum: { @@ -3998,7 +3976,7 @@ declare const _default: { }; }; /** - * Lookup429: pallet_xcm::pallet::RemoteLockedFungibleRecord + * Lookup420: pallet_xcm::pallet::RemoteLockedFungibleRecord **/ PalletXcmRemoteLockedFungibleRecord: { amount: string; @@ -4007,13 +3985,13 @@ declare const _default: { consumers: string; }; /** - * Lookup436: pallet_xcm::pallet::Error + * Lookup427: pallet_xcm::pallet::Error **/ PalletXcmError: { _enum: string[]; }; /** - * Lookup437: pallet_message_queue::BookState + * Lookup428: pallet_message_queue::BookState **/ PalletMessageQueueBookState: { _alias: { @@ -4027,14 +4005,14 @@ declare const _default: { size_: string; }; /** - * Lookup439: pallet_message_queue::Neighbours + * Lookup430: pallet_message_queue::Neighbours **/ PalletMessageQueueNeighbours: { prev: string; next: string; }; /** - * Lookup441: pallet_message_queue::Page + * Lookup432: pallet_message_queue::Page **/ PalletMessageQueuePage: { remaining: string; @@ -4045,20 +4023,20 @@ declare const _default: { heap: string; }; /** - * Lookup443: pallet_message_queue::pallet::Error + * Lookup434: pallet_message_queue::pallet::Error **/ PalletMessageQueueError: { _enum: string[]; }; /** - * Lookup444: pallet_storage_providers::types::SignUpRequest + * Lookup435: pallet_storage_providers::types::SignUpRequest **/ PalletStorageProvidersSignUpRequest: { spSignUpRequest: string; at: string; }; /** - * Lookup445: pallet_storage_providers::types::SignUpRequestSpParams + * Lookup436: pallet_storage_providers::types::SignUpRequestSpParams **/ PalletStorageProvidersSignUpRequestSpParams: { _enum: { @@ -4067,7 +4045,7 @@ declare const _default: { }; }; /** - * Lookup446: pallet_storage_providers::types::BackupStorageProvider + * Lookup437: pallet_storage_providers::types::BackupStorageProvider **/ PalletStorageProvidersBackupStorageProvider: { capacity: string; @@ -4081,14 +4059,14 @@ declare const _default: { signUpBlock: string; }; /** - * Lookup447: pallet_storage_providers::types::MainStorageProviderSignUpRequest + * Lookup438: pallet_storage_providers::types::MainStorageProviderSignUpRequest **/ PalletStorageProvidersMainStorageProviderSignUpRequest: { mspInfo: string; valueProp: string; }; /** - * Lookup448: pallet_storage_providers::types::MainStorageProvider + * Lookup439: pallet_storage_providers::types::MainStorageProvider **/ PalletStorageProvidersMainStorageProvider: { capacity: string; @@ -4100,7 +4078,7 @@ declare const _default: { signUpBlock: string; }; /** - * Lookup449: pallet_storage_providers::types::Bucket + * Lookup440: pallet_storage_providers::types::Bucket **/ PalletStorageProvidersBucket: { _alias: { @@ -4115,13 +4093,13 @@ declare const _default: { valuePropId: string; }; /** - * Lookup451: pallet_storage_providers::pallet::Error + * Lookup442: pallet_storage_providers::pallet::Error **/ PalletStorageProvidersError: { _enum: string[]; }; /** - * Lookup452: pallet_file_system::types::StorageRequestMetadata + * Lookup443: pallet_file_system::types::StorageRequestMetadata **/ PalletFileSystemStorageRequestMetadata: { _alias: { @@ -4140,31 +4118,31 @@ declare const _default: { bspsVolunteered: string; }; /** - * Lookup455: pallet_file_system::types::StorageRequestBspsMetadata + * Lookup446: pallet_file_system::types::StorageRequestBspsMetadata **/ PalletFileSystemStorageRequestBspsMetadata: { confirmed: string; }; /** - * Lookup464: pallet_file_system::types::MoveBucketRequestMetadata + * Lookup455: pallet_file_system::types::MoveBucketRequestMetadata **/ PalletFileSystemMoveBucketRequestMetadata: { requester: string; }; /** - * Lookup465: pallet_file_system::pallet::Error + * Lookup456: pallet_file_system::pallet::Error **/ PalletFileSystemError: { _enum: string[]; }; /** - * Lookup471: pallet_proofs_dealer::pallet::Error + * Lookup462: pallet_proofs_dealer::pallet::Error **/ PalletProofsDealerError: { _enum: string[]; }; /** - * Lookup474: pallet_payment_streams::types::FixedRatePaymentStream + * Lookup465: pallet_payment_streams::types::FixedRatePaymentStream **/ PalletPaymentStreamsFixedRatePaymentStream: { rate: string; @@ -4173,7 +4151,7 @@ declare const _default: { outOfFundsTick: string; }; /** - * Lookup475: pallet_payment_streams::types::DynamicRatePaymentStream + * Lookup466: pallet_payment_streams::types::DynamicRatePaymentStream **/ PalletPaymentStreamsDynamicRatePaymentStream: { amountProvided: string; @@ -4182,26 +4160,26 @@ declare const _default: { outOfFundsTick: string; }; /** - * Lookup476: pallet_payment_streams::types::ProviderLastChargeableInfo + * Lookup467: pallet_payment_streams::types::ProviderLastChargeableInfo **/ PalletPaymentStreamsProviderLastChargeableInfo: { lastChargeableTick: string; priceIndex: string; }; /** - * Lookup477: pallet_payment_streams::pallet::Error + * Lookup468: pallet_payment_streams::pallet::Error **/ PalletPaymentStreamsError: { _enum: string[]; }; /** - * Lookup478: pallet_bucket_nfts::pallet::Error + * Lookup469: pallet_bucket_nfts::pallet::Error **/ PalletBucketNftsError: { _enum: string[]; }; /** - * Lookup479: pallet_nfts::types::CollectionDetails + * Lookup470: pallet_nfts::types::CollectionDetails **/ PalletNftsCollectionDetails: { owner: string; @@ -4212,13 +4190,13 @@ declare const _default: { attributes: string; }; /** - * Lookup484: pallet_nfts::types::CollectionRole + * Lookup475: pallet_nfts::types::CollectionRole **/ PalletNftsCollectionRole: { _enum: string[]; }; /** - * Lookup485: pallet_nfts::types::ItemDetails, bounded_collections::bounded_btree_map::BoundedBTreeMap, S>> + * Lookup476: pallet_nfts::types::ItemDetails, bounded_collections::bounded_btree_map::BoundedBTreeMap, S>> **/ PalletNftsItemDetails: { owner: string; @@ -4226,42 +4204,42 @@ declare const _default: { deposit: string; }; /** - * Lookup486: pallet_nfts::types::ItemDeposit + * Lookup477: pallet_nfts::types::ItemDeposit **/ PalletNftsItemDeposit: { account: string; amount: string; }; /** - * Lookup491: pallet_nfts::types::CollectionMetadata + * Lookup482: pallet_nfts::types::CollectionMetadata **/ PalletNftsCollectionMetadata: { deposit: string; data: string; }; /** - * Lookup492: pallet_nfts::types::ItemMetadata, StringLimit> + * Lookup483: pallet_nfts::types::ItemMetadata, StringLimit> **/ PalletNftsItemMetadata: { deposit: string; data: string; }; /** - * Lookup493: pallet_nfts::types::ItemMetadataDeposit + * Lookup484: pallet_nfts::types::ItemMetadataDeposit **/ PalletNftsItemMetadataDeposit: { account: string; amount: string; }; /** - * Lookup496: pallet_nfts::types::AttributeDeposit + * Lookup487: pallet_nfts::types::AttributeDeposit **/ PalletNftsAttributeDeposit: { account: string; amount: string; }; /** - * Lookup500: pallet_nfts::types::PendingSwap, Deadline> + * Lookup491: pallet_nfts::types::PendingSwap, Deadline> **/ PalletNftsPendingSwap: { desiredCollection: string; @@ -4270,63 +4248,63 @@ declare const _default: { deadline: string; }; /** - * Lookup502: pallet_nfts::types::PalletFeature + * Lookup493: pallet_nfts::types::PalletFeature **/ PalletNftsPalletFeature: { _enum: string[]; }; /** - * Lookup503: pallet_nfts::pallet::Error + * Lookup494: pallet_nfts::pallet::Error **/ PalletNftsError: { _enum: string[]; }; /** - * Lookup506: frame_system::extensions::check_non_zero_sender::CheckNonZeroSender + * Lookup497: frame_system::extensions::check_non_zero_sender::CheckNonZeroSender **/ FrameSystemExtensionsCheckNonZeroSender: string; /** - * Lookup507: frame_system::extensions::check_spec_version::CheckSpecVersion + * Lookup498: frame_system::extensions::check_spec_version::CheckSpecVersion **/ FrameSystemExtensionsCheckSpecVersion: string; /** - * Lookup508: frame_system::extensions::check_tx_version::CheckTxVersion + * Lookup499: frame_system::extensions::check_tx_version::CheckTxVersion **/ FrameSystemExtensionsCheckTxVersion: string; /** - * Lookup509: frame_system::extensions::check_genesis::CheckGenesis + * Lookup500: frame_system::extensions::check_genesis::CheckGenesis **/ FrameSystemExtensionsCheckGenesis: string; /** - * Lookup512: frame_system::extensions::check_nonce::CheckNonce + * Lookup503: frame_system::extensions::check_nonce::CheckNonce **/ FrameSystemExtensionsCheckNonce: string; /** - * Lookup513: frame_system::extensions::check_weight::CheckWeight + * Lookup504: frame_system::extensions::check_weight::CheckWeight **/ FrameSystemExtensionsCheckWeight: string; /** - * Lookup514: pallet_transaction_payment::ChargeTransactionPayment + * Lookup505: pallet_transaction_payment::ChargeTransactionPayment **/ PalletTransactionPaymentChargeTransactionPayment: string; /** - * Lookup515: cumulus_primitives_storage_weight_reclaim::StorageWeightReclaim + * Lookup506: cumulus_primitives_storage_weight_reclaim::StorageWeightReclaim **/ CumulusPrimitivesStorageWeightReclaimStorageWeightReclaim: string; /** - * Lookup516: frame_metadata_hash_extension::CheckMetadataHash + * Lookup507: frame_metadata_hash_extension::CheckMetadataHash **/ FrameMetadataHashExtensionCheckMetadataHash: { mode: string; }; /** - * Lookup517: frame_metadata_hash_extension::Mode + * Lookup508: frame_metadata_hash_extension::Mode **/ FrameMetadataHashExtensionMode: { _enum: string[]; }; /** - * Lookup518: storage_hub_runtime::Runtime + * Lookup509: storage_hub_runtime::Runtime **/ StorageHubRuntimeRuntime: string; }; diff --git a/api-augment/dist/types/interfaces/registry.d.ts b/api-augment/dist/types/interfaces/registry.d.ts index 93c744c72..ef9d4d553 100644 --- a/api-augment/dist/types/interfaces/registry.d.ts +++ b/api-augment/dist/types/interfaces/registry.d.ts @@ -63,23 +63,20 @@ import type { PalletCollatorSelectionCandidateInfo, PalletCollatorSelectionError, PalletCollatorSelectionEvent, - PalletFileSystemAcceptedStorageRequestParameters, - PalletFileSystemBatchResponses, PalletFileSystemBucketMoveRequestResponse, PalletFileSystemCall, PalletFileSystemEitherAccountIdOrMspId, PalletFileSystemError, PalletFileSystemEvent, + PalletFileSystemFileKeyWithProof, PalletFileSystemHoldReason, PalletFileSystemMoveBucketRequestMetadata, - PalletFileSystemMspAcceptedBatchStorageRequests, - PalletFileSystemMspFailedBatchStorageRequests, - PalletFileSystemMspRejectedBatchStorageRequests, - PalletFileSystemMspRespondStorageRequestsResult, - PalletFileSystemMspStorageRequestResponse, + PalletFileSystemRejectedStorageRequest, PalletFileSystemRejectedStorageRequestReason, PalletFileSystemStorageRequestBspsMetadata, PalletFileSystemStorageRequestMetadata, + PalletFileSystemStorageRequestMspAcceptedFileKeys, + PalletFileSystemStorageRequestMspBucketResponse, PalletMessageQueueBookState, PalletMessageQueueCall, PalletMessageQueueError, @@ -349,23 +346,20 @@ declare module "@polkadot/types/types/registry" { PalletCollatorSelectionCandidateInfo: PalletCollatorSelectionCandidateInfo; PalletCollatorSelectionError: PalletCollatorSelectionError; PalletCollatorSelectionEvent: PalletCollatorSelectionEvent; - PalletFileSystemAcceptedStorageRequestParameters: PalletFileSystemAcceptedStorageRequestParameters; - PalletFileSystemBatchResponses: PalletFileSystemBatchResponses; PalletFileSystemBucketMoveRequestResponse: PalletFileSystemBucketMoveRequestResponse; PalletFileSystemCall: PalletFileSystemCall; PalletFileSystemEitherAccountIdOrMspId: PalletFileSystemEitherAccountIdOrMspId; PalletFileSystemError: PalletFileSystemError; PalletFileSystemEvent: PalletFileSystemEvent; + PalletFileSystemFileKeyWithProof: PalletFileSystemFileKeyWithProof; PalletFileSystemHoldReason: PalletFileSystemHoldReason; PalletFileSystemMoveBucketRequestMetadata: PalletFileSystemMoveBucketRequestMetadata; - PalletFileSystemMspAcceptedBatchStorageRequests: PalletFileSystemMspAcceptedBatchStorageRequests; - PalletFileSystemMspFailedBatchStorageRequests: PalletFileSystemMspFailedBatchStorageRequests; - PalletFileSystemMspRejectedBatchStorageRequests: PalletFileSystemMspRejectedBatchStorageRequests; - PalletFileSystemMspRespondStorageRequestsResult: PalletFileSystemMspRespondStorageRequestsResult; - PalletFileSystemMspStorageRequestResponse: PalletFileSystemMspStorageRequestResponse; + PalletFileSystemRejectedStorageRequest: PalletFileSystemRejectedStorageRequest; PalletFileSystemRejectedStorageRequestReason: PalletFileSystemRejectedStorageRequestReason; PalletFileSystemStorageRequestBspsMetadata: PalletFileSystemStorageRequestBspsMetadata; PalletFileSystemStorageRequestMetadata: PalletFileSystemStorageRequestMetadata; + PalletFileSystemStorageRequestMspAcceptedFileKeys: PalletFileSystemStorageRequestMspAcceptedFileKeys; + PalletFileSystemStorageRequestMspBucketResponse: PalletFileSystemStorageRequestMspBucketResponse; PalletMessageQueueBookState: PalletMessageQueueBookState; PalletMessageQueueCall: PalletMessageQueueCall; PalletMessageQueueError: PalletMessageQueueError; diff --git a/api-augment/dist/types/interfaces/types-lookup.d.ts b/api-augment/dist/types/interfaces/types-lookup.d.ts index 0413cac12..ed110f13b 100644 --- a/api-augment/dist/types/interfaces/types-lookup.d.ts +++ b/api-augment/dist/types/interfaces/types-lookup.d.ts @@ -1774,6 +1774,12 @@ declare module "@polkadot/types/lookup" { readonly providerId: H256; readonly amountSlashed: u128; } & Struct; + readonly isBucketRootChanged: boolean; + readonly asBucketRootChanged: { + readonly bucketId: H256; + readonly oldRoot: H256; + readonly newRoot: H256; + } & Struct; readonly isMultiAddressAdded: boolean; readonly asMultiAddressAdded: { readonly providerId: H256; @@ -1805,6 +1811,7 @@ declare module "@polkadot/types/lookup" { | "BspSignOffSuccess" | "CapacityChanged" | "Slashed" + | "BucketRootChanged" | "MultiAddressAdded" | "MultiAddressRemoved" | "ValuePropAdded" @@ -1835,12 +1842,12 @@ declare module "@polkadot/types/lookup" { readonly isNewBucket: boolean; readonly asNewBucket: { readonly who: AccountId32; - readonly mspId: H256; + readonly mspId: Option; readonly bucketId: H256; readonly name: Bytes; readonly collectionId: Option; readonly private: bool; - readonly valuePropId: H256; + readonly valuePropId: Option; } & Struct; readonly isBucketDeleted: boolean; readonly asBucketDeleted: { @@ -1877,9 +1884,9 @@ declare module "@polkadot/types/lookup" { readonly size_: u64; readonly peerIds: Vec; } & Struct; - readonly isMspRespondedToStorageRequests: boolean; - readonly asMspRespondedToStorageRequests: { - readonly results: PalletFileSystemMspRespondStorageRequestsResult; + readonly isMspAcceptedStorageRequest: boolean; + readonly asMspAcceptedStorageRequest: { + readonly fileKey: H256; } & Struct; readonly isAcceptedBspVolunteer: boolean; readonly asAcceptedBspVolunteer: { @@ -1910,6 +1917,11 @@ declare module "@polkadot/types/lookup" { readonly asStorageRequestRevoked: { readonly fileKey: H256; } & Struct; + readonly isStorageRequestRejected: boolean; + readonly asStorageRequestRejected: { + readonly fileKey: H256; + readonly reason: PalletFileSystemRejectedStorageRequestReason; + } & Struct; readonly isBspRequestedToStopStoring: boolean; readonly asBspRequestedToStopStoring: { readonly bspId: H256; @@ -1946,7 +1958,7 @@ declare module "@polkadot/types/lookup" { readonly user: AccountId32; readonly fileKey: H256; readonly bucketId: H256; - readonly mspId: H256; + readonly mspId: Option; readonly proofOfInclusion: bool; } & Struct; readonly isProofSubmittedForPendingFileDeletionRequest: boolean; @@ -1977,11 +1989,6 @@ declare module "@polkadot/types/lookup" { readonly bucketId: H256; readonly mspId: H256; } & Struct; - readonly isDataServerRegisteredForMoveBucket: boolean; - readonly asDataServerRegisteredForMoveBucket: { - readonly bspId: H256; - readonly bucketId: H256; - } & Struct; readonly isMspStoppedStoringBucket: boolean; readonly asMspStoppedStoringBucket: { readonly mspId: H256; @@ -1995,12 +2002,13 @@ declare module "@polkadot/types/lookup" { | "BucketPrivacyUpdated" | "NewCollectionAndAssociation" | "NewStorageRequest" - | "MspRespondedToStorageRequests" + | "MspAcceptedStorageRequest" | "AcceptedBspVolunteer" | "BspConfirmedStoring" | "StorageRequestFulfilled" | "StorageRequestExpired" | "StorageRequestRevoked" + | "StorageRequestRejected" | "BspRequestedToStopStoring" | "BspConfirmStoppedStoring" | "PriorityChallengeForFileDeletionQueued" @@ -2012,56 +2020,23 @@ declare module "@polkadot/types/lookup" { | "MoveBucketRequestExpired" | "MoveBucketAccepted" | "MoveBucketRejected" - | "DataServerRegisteredForMoveBucket" | "MspStoppedStoringBucket"; } - /** @name PalletFileSystemMspRespondStorageRequestsResult (135) */ - interface PalletFileSystemMspRespondStorageRequestsResult extends Struct { - readonly mspId: H256; - readonly responses: Vec; - } - /** @name PalletFileSystemBatchResponses (137) */ - interface PalletFileSystemBatchResponses extends Enum { - readonly isAccepted: boolean; - readonly asAccepted: PalletFileSystemMspAcceptedBatchStorageRequests; - readonly isRejected: boolean; - readonly asRejected: PalletFileSystemMspRejectedBatchStorageRequests; - readonly isFailed: boolean; - readonly asFailed: PalletFileSystemMspFailedBatchStorageRequests; - readonly type: "Accepted" | "Rejected" | "Failed"; - } - /** @name PalletFileSystemMspAcceptedBatchStorageRequests (138) */ - interface PalletFileSystemMspAcceptedBatchStorageRequests extends Struct { - readonly fileKeys: Vec; - readonly bucketId: H256; - readonly newBucketRoot: H256; - readonly owner: AccountId32; - } - /** @name PalletFileSystemMspRejectedBatchStorageRequests (141) */ - interface PalletFileSystemMspRejectedBatchStorageRequests extends Struct { - readonly fileKeys: Vec>; - readonly bucketId: H256; - readonly owner: AccountId32; - } - /** @name PalletFileSystemRejectedStorageRequestReason (144) */ + /** @name PalletFileSystemRejectedStorageRequestReason (138) */ interface PalletFileSystemRejectedStorageRequestReason extends Enum { readonly isReachedMaximumCapacity: boolean; readonly isReceivedInvalidProof: boolean; readonly isFileKeyAlreadyStored: boolean; + readonly isRequestExpired: boolean; readonly isInternalError: boolean; readonly type: | "ReachedMaximumCapacity" | "ReceivedInvalidProof" | "FileKeyAlreadyStored" + | "RequestExpired" | "InternalError"; } - /** @name PalletFileSystemMspFailedBatchStorageRequests (146) */ - interface PalletFileSystemMspFailedBatchStorageRequests extends Struct { - readonly fileKeys: Vec>; - readonly bucketId: H256; - readonly owner: AccountId32; - } - /** @name PalletFileSystemEitherAccountIdOrMspId (151) */ + /** @name PalletFileSystemEitherAccountIdOrMspId (139) */ interface PalletFileSystemEitherAccountIdOrMspId extends Enum { readonly isAccountId: boolean; readonly asAccountId: AccountId32; @@ -2069,7 +2044,7 @@ declare module "@polkadot/types/lookup" { readonly asMspId: H256; readonly type: "AccountId" | "MspId"; } - /** @name PalletProofsDealerEvent (152) */ + /** @name PalletProofsDealerEvent (140) */ interface PalletProofsDealerEvent extends Enum { readonly isNewChallenge: boolean; readonly asNewChallenge: { @@ -2129,26 +2104,26 @@ declare module "@polkadot/types/lookup" { | "MutationsApplied" | "ChallengesTickerSet"; } - /** @name PalletProofsDealerProof (153) */ + /** @name PalletProofsDealerProof (141) */ interface PalletProofsDealerProof extends Struct { readonly forestProof: SpTrieStorageProofCompactProof; readonly keyProofs: BTreeMap; } - /** @name SpTrieStorageProofCompactProof (154) */ + /** @name SpTrieStorageProofCompactProof (142) */ interface SpTrieStorageProofCompactProof extends Struct { readonly encodedNodes: Vec; } - /** @name PalletProofsDealerKeyProof (157) */ + /** @name PalletProofsDealerKeyProof (145) */ interface PalletProofsDealerKeyProof extends Struct { readonly proof: ShpFileKeyVerifierFileKeyProof; readonly challengeCount: u32; } - /** @name ShpFileKeyVerifierFileKeyProof (158) */ + /** @name ShpFileKeyVerifierFileKeyProof (146) */ interface ShpFileKeyVerifierFileKeyProof extends Struct { readonly fileMetadata: ShpFileMetadataFileMetadata; readonly proof: SpTrieStorageProofCompactProof; } - /** @name ShpFileMetadataFileMetadata (159) */ + /** @name ShpFileMetadataFileMetadata (147) */ interface ShpFileMetadataFileMetadata extends Struct { readonly owner: Bytes; readonly bucketId: Bytes; @@ -2156,11 +2131,11 @@ declare module "@polkadot/types/lookup" { readonly fileSize: Compact; readonly fingerprint: ShpFileMetadataFingerprint; } - /** @name ShpFileMetadataFingerprint (160) */ + /** @name ShpFileMetadataFingerprint (148) */ interface ShpFileMetadataFingerprint extends U8aFixed {} - /** @name ShpTraitsTrieRemoveMutation (166) */ + /** @name ShpTraitsTrieRemoveMutation (154) */ type ShpTraitsTrieRemoveMutation = Null; - /** @name PalletRandomnessEvent (170) */ + /** @name PalletRandomnessEvent (158) */ interface PalletRandomnessEvent extends Enum { readonly isNewOneEpochAgoRandomnessAvailable: boolean; readonly asNewOneEpochAgoRandomnessAvailable: { @@ -2170,7 +2145,7 @@ declare module "@polkadot/types/lookup" { } & Struct; readonly type: "NewOneEpochAgoRandomnessAvailable"; } - /** @name PalletPaymentStreamsEvent (171) */ + /** @name PalletPaymentStreamsEvent (159) */ interface PalletPaymentStreamsEvent extends Enum { readonly isFixedRatePaymentStreamCreated: boolean; readonly asFixedRatePaymentStreamCreated: { @@ -2252,7 +2227,7 @@ declare module "@polkadot/types/lookup" { | "UserPaidDebts" | "UserSolvent"; } - /** @name PalletBucketNftsEvent (173) */ + /** @name PalletBucketNftsEvent (161) */ interface PalletBucketNftsEvent extends Enum { readonly isAccessShared: boolean; readonly asAccessShared: { @@ -2273,7 +2248,7 @@ declare module "@polkadot/types/lookup" { } & Struct; readonly type: "AccessShared" | "ItemReadAccessUpdated" | "ItemBurned"; } - /** @name PalletNftsEvent (174) */ + /** @name PalletNftsEvent (162) */ interface PalletNftsEvent extends Enum { readonly isCreated: boolean; readonly asCreated: { @@ -2547,7 +2522,7 @@ declare module "@polkadot/types/lookup" { | "PreSignedAttributesSet" | "PalletAttributeSet"; } - /** @name PalletNftsAttributeNamespace (178) */ + /** @name PalletNftsAttributeNamespace (166) */ interface PalletNftsAttributeNamespace extends Enum { readonly isPallet: boolean; readonly isCollectionOwner: boolean; @@ -2556,25 +2531,25 @@ declare module "@polkadot/types/lookup" { readonly asAccount: AccountId32; readonly type: "Pallet" | "CollectionOwner" | "ItemOwner" | "Account"; } - /** @name PalletNftsPriceWithDirection (180) */ + /** @name PalletNftsPriceWithDirection (168) */ interface PalletNftsPriceWithDirection extends Struct { readonly amount: u128; readonly direction: PalletNftsPriceDirection; } - /** @name PalletNftsPriceDirection (181) */ + /** @name PalletNftsPriceDirection (169) */ interface PalletNftsPriceDirection extends Enum { readonly isSend: boolean; readonly isReceive: boolean; readonly type: "Send" | "Receive"; } - /** @name PalletNftsPalletAttributes (182) */ + /** @name PalletNftsPalletAttributes (170) */ interface PalletNftsPalletAttributes extends Enum { readonly isUsedToClaim: boolean; readonly asUsedToClaim: u32; readonly isTransferDisabled: boolean; readonly type: "UsedToClaim" | "TransferDisabled"; } - /** @name PalletParametersEvent (183) */ + /** @name PalletParametersEvent (171) */ interface PalletParametersEvent extends Enum { readonly isUpdated: boolean; readonly asUpdated: { @@ -2584,13 +2559,13 @@ declare module "@polkadot/types/lookup" { } & Struct; readonly type: "Updated"; } - /** @name StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersKey (184) */ + /** @name StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersKey (172) */ interface StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersKey extends Enum { readonly isRuntimeConfig: boolean; readonly asRuntimeConfig: StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParametersKey; readonly type: "RuntimeConfig"; } - /** @name StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParametersKey (185) */ + /** @name StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParametersKey (173) */ interface StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParametersKey extends Enum { readonly isSlashAmountPerMaxFileSize: boolean; @@ -2629,53 +2604,53 @@ declare module "@polkadot/types/lookup" { | "MaximumTreasuryCut" | "BspStopStoringFilePenalty"; } - /** @name StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigSlashAmountPerMaxFileSize (186) */ + /** @name StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigSlashAmountPerMaxFileSize (174) */ type StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigSlashAmountPerMaxFileSize = Null; - /** @name StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigStakeToChallengePeriod (187) */ + /** @name StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigStakeToChallengePeriod (175) */ type StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigStakeToChallengePeriod = Null; - /** @name StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigCheckpointChallengePeriod (188) */ + /** @name StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigCheckpointChallengePeriod (176) */ type StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigCheckpointChallengePeriod = Null; - /** @name StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigMinChallengePeriod (189) */ + /** @name StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigMinChallengePeriod (177) */ type StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigMinChallengePeriod = Null; - /** @name StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigSystemUtilisationLowerThresholdPercentage (190) */ + /** @name StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigSystemUtilisationLowerThresholdPercentage (178) */ type StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigSystemUtilisationLowerThresholdPercentage = Null; - /** @name StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigSystemUtilisationUpperThresholdPercentage (191) */ + /** @name StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigSystemUtilisationUpperThresholdPercentage (179) */ type StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigSystemUtilisationUpperThresholdPercentage = Null; - /** @name StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigMostlyStablePrice (192) */ + /** @name StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigMostlyStablePrice (180) */ type StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigMostlyStablePrice = Null; - /** @name StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigMaxPrice (193) */ + /** @name StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigMaxPrice (181) */ type StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigMaxPrice = Null; - /** @name StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigMinPrice (194) */ + /** @name StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigMinPrice (182) */ type StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigMinPrice = Null; - /** @name StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigUpperExponentFactor (195) */ + /** @name StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigUpperExponentFactor (183) */ type StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigUpperExponentFactor = Null; - /** @name StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigLowerExponentFactor (196) */ + /** @name StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigLowerExponentFactor (184) */ type StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigLowerExponentFactor = Null; - /** @name StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigZeroSizeBucketFixedRate (197) */ + /** @name StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigZeroSizeBucketFixedRate (185) */ type StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigZeroSizeBucketFixedRate = Null; - /** @name StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigIdealUtilisationRate (198) */ + /** @name StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigIdealUtilisationRate (186) */ type StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigIdealUtilisationRate = Null; - /** @name StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigDecayRate (199) */ + /** @name StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigDecayRate (187) */ type StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigDecayRate = Null; - /** @name StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigMinimumTreasuryCut (200) */ + /** @name StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigMinimumTreasuryCut (188) */ type StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigMinimumTreasuryCut = Null; - /** @name StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigMaximumTreasuryCut (201) */ + /** @name StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigMaximumTreasuryCut (189) */ type StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigMaximumTreasuryCut = Null; - /** @name StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigBspStopStoringFilePenalty (202) */ + /** @name StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigBspStopStoringFilePenalty (190) */ type StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigBspStopStoringFilePenalty = Null; - /** @name StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersValue (204) */ + /** @name StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersValue (192) */ interface StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersValue extends Enum { readonly isRuntimeConfig: boolean; readonly asRuntimeConfig: StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParametersValue; readonly type: "RuntimeConfig"; } - /** @name StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParametersValue (205) */ + /** @name StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParametersValue (193) */ interface StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParametersValue extends Enum { readonly isSlashAmountPerMaxFileSize: boolean; @@ -2731,7 +2706,7 @@ declare module "@polkadot/types/lookup" { | "MaximumTreasuryCut" | "BspStopStoringFilePenalty"; } - /** @name FrameSystemPhase (207) */ + /** @name FrameSystemPhase (195) */ interface FrameSystemPhase extends Enum { readonly isApplyExtrinsic: boolean; readonly asApplyExtrinsic: u32; @@ -2739,17 +2714,17 @@ declare module "@polkadot/types/lookup" { readonly isInitialization: boolean; readonly type: "ApplyExtrinsic" | "Finalization" | "Initialization"; } - /** @name FrameSystemLastRuntimeUpgradeInfo (210) */ + /** @name FrameSystemLastRuntimeUpgradeInfo (198) */ interface FrameSystemLastRuntimeUpgradeInfo extends Struct { readonly specVersion: Compact; readonly specName: Text; } - /** @name FrameSystemCodeUpgradeAuthorization (212) */ + /** @name FrameSystemCodeUpgradeAuthorization (200) */ interface FrameSystemCodeUpgradeAuthorization extends Struct { readonly codeHash: H256; readonly checkVersion: bool; } - /** @name FrameSystemCall (213) */ + /** @name FrameSystemCall (201) */ interface FrameSystemCall extends Enum { readonly isRemark: boolean; readonly asRemark: { @@ -2809,41 +2784,41 @@ declare module "@polkadot/types/lookup" { | "AuthorizeUpgradeWithoutChecks" | "ApplyAuthorizedUpgrade"; } - /** @name FrameSystemLimitsBlockWeights (216) */ + /** @name FrameSystemLimitsBlockWeights (204) */ interface FrameSystemLimitsBlockWeights extends Struct { readonly baseBlock: SpWeightsWeightV2Weight; readonly maxBlock: SpWeightsWeightV2Weight; readonly perClass: FrameSupportDispatchPerDispatchClassWeightsPerClass; } - /** @name FrameSupportDispatchPerDispatchClassWeightsPerClass (217) */ + /** @name FrameSupportDispatchPerDispatchClassWeightsPerClass (205) */ interface FrameSupportDispatchPerDispatchClassWeightsPerClass extends Struct { readonly normal: FrameSystemLimitsWeightsPerClass; readonly operational: FrameSystemLimitsWeightsPerClass; readonly mandatory: FrameSystemLimitsWeightsPerClass; } - /** @name FrameSystemLimitsWeightsPerClass (218) */ + /** @name FrameSystemLimitsWeightsPerClass (206) */ interface FrameSystemLimitsWeightsPerClass extends Struct { readonly baseExtrinsic: SpWeightsWeightV2Weight; readonly maxExtrinsic: Option; readonly maxTotal: Option; readonly reserved: Option; } - /** @name FrameSystemLimitsBlockLength (220) */ + /** @name FrameSystemLimitsBlockLength (208) */ interface FrameSystemLimitsBlockLength extends Struct { readonly max: FrameSupportDispatchPerDispatchClassU32; } - /** @name FrameSupportDispatchPerDispatchClassU32 (221) */ + /** @name FrameSupportDispatchPerDispatchClassU32 (209) */ interface FrameSupportDispatchPerDispatchClassU32 extends Struct { readonly normal: u32; readonly operational: u32; readonly mandatory: u32; } - /** @name SpWeightsRuntimeDbWeight (222) */ + /** @name SpWeightsRuntimeDbWeight (210) */ interface SpWeightsRuntimeDbWeight extends Struct { readonly read: u64; readonly write: u64; } - /** @name SpVersionRuntimeVersion (223) */ + /** @name SpVersionRuntimeVersion (211) */ interface SpVersionRuntimeVersion extends Struct { readonly specName: Text; readonly implName: Text; @@ -2854,7 +2829,7 @@ declare module "@polkadot/types/lookup" { readonly transactionVersion: u32; readonly stateVersion: u8; } - /** @name FrameSystemError (228) */ + /** @name FrameSystemError (216) */ interface FrameSystemError extends Enum { readonly isInvalidSpecName: boolean; readonly isSpecVersionNeedsToIncrease: boolean; @@ -2876,13 +2851,13 @@ declare module "@polkadot/types/lookup" { | "NothingAuthorized" | "Unauthorized"; } - /** @name CumulusPalletParachainSystemUnincludedSegmentAncestor (230) */ + /** @name CumulusPalletParachainSystemUnincludedSegmentAncestor (218) */ interface CumulusPalletParachainSystemUnincludedSegmentAncestor extends Struct { readonly usedBandwidth: CumulusPalletParachainSystemUnincludedSegmentUsedBandwidth; readonly paraHeadHash: Option; readonly consumedGoAheadSignal: Option; } - /** @name CumulusPalletParachainSystemUnincludedSegmentUsedBandwidth (231) */ + /** @name CumulusPalletParachainSystemUnincludedSegmentUsedBandwidth (219) */ interface CumulusPalletParachainSystemUnincludedSegmentUsedBandwidth extends Struct { readonly umpMsgCount: u32; readonly umpTotalBytes: u32; @@ -2891,53 +2866,53 @@ declare module "@polkadot/types/lookup" { CumulusPalletParachainSystemUnincludedSegmentHrmpChannelUpdate >; } - /** @name CumulusPalletParachainSystemUnincludedSegmentHrmpChannelUpdate (233) */ + /** @name CumulusPalletParachainSystemUnincludedSegmentHrmpChannelUpdate (221) */ interface CumulusPalletParachainSystemUnincludedSegmentHrmpChannelUpdate extends Struct { readonly msgCount: u32; readonly totalBytes: u32; } - /** @name PolkadotPrimitivesV8UpgradeGoAhead (238) */ + /** @name PolkadotPrimitivesV8UpgradeGoAhead (225) */ interface PolkadotPrimitivesV8UpgradeGoAhead extends Enum { readonly isAbort: boolean; readonly isGoAhead: boolean; readonly type: "Abort" | "GoAhead"; } - /** @name CumulusPalletParachainSystemUnincludedSegmentSegmentTracker (239) */ + /** @name CumulusPalletParachainSystemUnincludedSegmentSegmentTracker (226) */ interface CumulusPalletParachainSystemUnincludedSegmentSegmentTracker extends Struct { readonly usedBandwidth: CumulusPalletParachainSystemUnincludedSegmentUsedBandwidth; readonly hrmpWatermark: Option; readonly consumedGoAheadSignal: Option; } - /** @name PolkadotPrimitivesV8PersistedValidationData (240) */ + /** @name PolkadotPrimitivesV8PersistedValidationData (227) */ interface PolkadotPrimitivesV8PersistedValidationData extends Struct { readonly parentHead: Bytes; readonly relayParentNumber: u32; readonly relayParentStorageRoot: H256; readonly maxPovSize: u32; } - /** @name PolkadotPrimitivesV8UpgradeRestriction (243) */ + /** @name PolkadotPrimitivesV8UpgradeRestriction (230) */ interface PolkadotPrimitivesV8UpgradeRestriction extends Enum { readonly isPresent: boolean; readonly type: "Present"; } - /** @name SpTrieStorageProof (244) */ + /** @name SpTrieStorageProof (231) */ interface SpTrieStorageProof extends Struct { readonly trieNodes: BTreeSet; } - /** @name CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot (246) */ + /** @name CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot (233) */ interface CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot extends Struct { readonly dmqMqcHead: H256; readonly relayDispatchQueueRemainingCapacity: CumulusPalletParachainSystemRelayStateSnapshotRelayDispatchQueueRemainingCapacity; readonly ingressChannels: Vec>; readonly egressChannels: Vec>; } - /** @name CumulusPalletParachainSystemRelayStateSnapshotRelayDispatchQueueRemainingCapacity (247) */ + /** @name CumulusPalletParachainSystemRelayStateSnapshotRelayDispatchQueueRemainingCapacity (234) */ interface CumulusPalletParachainSystemRelayStateSnapshotRelayDispatchQueueRemainingCapacity extends Struct { readonly remainingCount: u32; readonly remainingSize: u32; } - /** @name PolkadotPrimitivesV8AbridgedHrmpChannel (250) */ + /** @name PolkadotPrimitivesV8AbridgedHrmpChannel (237) */ interface PolkadotPrimitivesV8AbridgedHrmpChannel extends Struct { readonly maxCapacity: u32; readonly maxTotalSize: u32; @@ -2946,7 +2921,7 @@ declare module "@polkadot/types/lookup" { readonly totalSize: u32; readonly mqcHead: Option; } - /** @name PolkadotPrimitivesV8AbridgedHostConfiguration (251) */ + /** @name PolkadotPrimitivesV8AbridgedHostConfiguration (238) */ interface PolkadotPrimitivesV8AbridgedHostConfiguration extends Struct { readonly maxCodeSize: u32; readonly maxHeadDataSize: u32; @@ -2959,17 +2934,17 @@ declare module "@polkadot/types/lookup" { readonly validationUpgradeDelay: u32; readonly asyncBackingParams: PolkadotPrimitivesV8AsyncBackingAsyncBackingParams; } - /** @name PolkadotPrimitivesV8AsyncBackingAsyncBackingParams (252) */ + /** @name PolkadotPrimitivesV8AsyncBackingAsyncBackingParams (239) */ interface PolkadotPrimitivesV8AsyncBackingAsyncBackingParams extends Struct { readonly maxCandidateDepth: u32; readonly allowedAncestryLen: u32; } - /** @name PolkadotCorePrimitivesOutboundHrmpMessage (258) */ + /** @name PolkadotCorePrimitivesOutboundHrmpMessage (245) */ interface PolkadotCorePrimitivesOutboundHrmpMessage extends Struct { readonly recipient: u32; readonly data: Bytes; } - /** @name CumulusPalletParachainSystemCall (260) */ + /** @name CumulusPalletParachainSystemCall (247) */ interface CumulusPalletParachainSystemCall extends Enum { readonly isSetValidationData: boolean; readonly asSetValidationData: { @@ -2981,24 +2956,24 @@ declare module "@polkadot/types/lookup" { } & Struct; readonly type: "SetValidationData" | "SudoSendUpwardMessage"; } - /** @name CumulusPrimitivesParachainInherentParachainInherentData (261) */ + /** @name CumulusPrimitivesParachainInherentParachainInherentData (248) */ interface CumulusPrimitivesParachainInherentParachainInherentData extends Struct { readonly validationData: PolkadotPrimitivesV8PersistedValidationData; readonly relayChainState: SpTrieStorageProof; readonly downwardMessages: Vec; readonly horizontalMessages: BTreeMap>; } - /** @name PolkadotCorePrimitivesInboundDownwardMessage (263) */ + /** @name PolkadotCorePrimitivesInboundDownwardMessage (250) */ interface PolkadotCorePrimitivesInboundDownwardMessage extends Struct { readonly sentAt: u32; readonly msg: Bytes; } - /** @name PolkadotCorePrimitivesInboundHrmpMessage (266) */ + /** @name PolkadotCorePrimitivesInboundHrmpMessage (253) */ interface PolkadotCorePrimitivesInboundHrmpMessage extends Struct { readonly sentAt: u32; readonly data: Bytes; } - /** @name CumulusPalletParachainSystemError (269) */ + /** @name CumulusPalletParachainSystemError (256) */ interface CumulusPalletParachainSystemError extends Enum { readonly isOverlappingUpgrades: boolean; readonly isProhibitedByPolkadot: boolean; @@ -3018,7 +2993,7 @@ declare module "@polkadot/types/lookup" { | "NothingAuthorized" | "Unauthorized"; } - /** @name PalletTimestampCall (270) */ + /** @name PalletTimestampCall (257) */ interface PalletTimestampCall extends Enum { readonly isSet: boolean; readonly asSet: { @@ -3026,27 +3001,27 @@ declare module "@polkadot/types/lookup" { } & Struct; readonly type: "Set"; } - /** @name StagingParachainInfoCall (271) */ + /** @name StagingParachainInfoCall (258) */ type StagingParachainInfoCall = Null; - /** @name PalletBalancesBalanceLock (273) */ + /** @name PalletBalancesBalanceLock (260) */ interface PalletBalancesBalanceLock extends Struct { readonly id: U8aFixed; readonly amount: u128; readonly reasons: PalletBalancesReasons; } - /** @name PalletBalancesReasons (274) */ + /** @name PalletBalancesReasons (261) */ interface PalletBalancesReasons extends Enum { readonly isFee: boolean; readonly isMisc: boolean; readonly isAll: boolean; readonly type: "Fee" | "Misc" | "All"; } - /** @name PalletBalancesReserveData (277) */ + /** @name PalletBalancesReserveData (264) */ interface PalletBalancesReserveData extends Struct { readonly id: U8aFixed; readonly amount: u128; } - /** @name StorageHubRuntimeRuntimeHoldReason (281) */ + /** @name StorageHubRuntimeRuntimeHoldReason (268) */ interface StorageHubRuntimeRuntimeHoldReason extends Enum { readonly isProviders: boolean; readonly asProviders: PalletStorageProvidersHoldReason; @@ -3056,28 +3031,28 @@ declare module "@polkadot/types/lookup" { readonly asPaymentStreams: PalletPaymentStreamsHoldReason; readonly type: "Providers" | "FileSystem" | "PaymentStreams"; } - /** @name PalletStorageProvidersHoldReason (282) */ + /** @name PalletStorageProvidersHoldReason (269) */ interface PalletStorageProvidersHoldReason extends Enum { readonly isStorageProviderDeposit: boolean; readonly isBucketDeposit: boolean; readonly type: "StorageProviderDeposit" | "BucketDeposit"; } - /** @name PalletFileSystemHoldReason (283) */ + /** @name PalletFileSystemHoldReason (270) */ interface PalletFileSystemHoldReason extends Enum { readonly isStorageRequestCreationHold: boolean; readonly type: "StorageRequestCreationHold"; } - /** @name PalletPaymentStreamsHoldReason (284) */ + /** @name PalletPaymentStreamsHoldReason (271) */ interface PalletPaymentStreamsHoldReason extends Enum { readonly isPaymentStreamDeposit: boolean; readonly type: "PaymentStreamDeposit"; } - /** @name FrameSupportTokensMiscIdAmount (287) */ + /** @name FrameSupportTokensMiscIdAmount (274) */ interface FrameSupportTokensMiscIdAmount extends Struct { readonly id: Null; readonly amount: u128; } - /** @name PalletBalancesCall (289) */ + /** @name PalletBalancesCall (276) */ interface PalletBalancesCall extends Enum { readonly isTransferAllowDeath: boolean; readonly asTransferAllowDeath: { @@ -3135,13 +3110,13 @@ declare module "@polkadot/types/lookup" { | "ForceAdjustTotalIssuance" | "Burn"; } - /** @name PalletBalancesAdjustmentDirection (292) */ + /** @name PalletBalancesAdjustmentDirection (279) */ interface PalletBalancesAdjustmentDirection extends Enum { readonly isIncrease: boolean; readonly isDecrease: boolean; readonly type: "Increase" | "Decrease"; } - /** @name PalletBalancesError (293) */ + /** @name PalletBalancesError (280) */ interface PalletBalancesError extends Enum { readonly isVestingBalance: boolean; readonly isLiquidityRestrictions: boolean; @@ -3169,13 +3144,13 @@ declare module "@polkadot/types/lookup" { | "IssuanceDeactivated" | "DeltaZero"; } - /** @name PalletTransactionPaymentReleases (294) */ + /** @name PalletTransactionPaymentReleases (281) */ interface PalletTransactionPaymentReleases extends Enum { readonly isV1Ancient: boolean; readonly isV2: boolean; readonly type: "V1Ancient" | "V2"; } - /** @name PalletSudoCall (295) */ + /** @name PalletSudoCall (282) */ interface PalletSudoCall extends Enum { readonly isSudo: boolean; readonly asSudo: { @@ -3198,7 +3173,7 @@ declare module "@polkadot/types/lookup" { readonly isRemoveKey: boolean; readonly type: "Sudo" | "SudoUncheckedWeight" | "SetKey" | "SudoAs" | "RemoveKey"; } - /** @name PalletCollatorSelectionCall (297) */ + /** @name PalletCollatorSelectionCall (284) */ interface PalletCollatorSelectionCall extends Enum { readonly isSetInvulnerables: boolean; readonly asSetInvulnerables: { @@ -3242,7 +3217,7 @@ declare module "@polkadot/types/lookup" { | "UpdateBond" | "TakeCandidateSlot"; } - /** @name PalletSessionCall (298) */ + /** @name PalletSessionCall (285) */ interface PalletSessionCall extends Enum { readonly isSetKeys: boolean; readonly asSetKeys: { @@ -3252,13 +3227,13 @@ declare module "@polkadot/types/lookup" { readonly isPurgeKeys: boolean; readonly type: "SetKeys" | "PurgeKeys"; } - /** @name StorageHubRuntimeSessionKeys (299) */ + /** @name StorageHubRuntimeSessionKeys (286) */ interface StorageHubRuntimeSessionKeys extends Struct { readonly aura: SpConsensusAuraSr25519AppSr25519Public; } - /** @name SpConsensusAuraSr25519AppSr25519Public (300) */ + /** @name SpConsensusAuraSr25519AppSr25519Public (287) */ interface SpConsensusAuraSr25519AppSr25519Public extends U8aFixed {} - /** @name CumulusPalletXcmpQueueCall (301) */ + /** @name CumulusPalletXcmpQueueCall (288) */ interface CumulusPalletXcmpQueueCall extends Enum { readonly isSuspendXcmExecution: boolean; readonly isResumeXcmExecution: boolean; @@ -3281,7 +3256,7 @@ declare module "@polkadot/types/lookup" { | "UpdateDropThreshold" | "UpdateResumeThreshold"; } - /** @name PalletXcmCall (302) */ + /** @name PalletXcmCall (289) */ interface PalletXcmCall extends Enum { readonly isSend: boolean; readonly asSend: { @@ -3383,7 +3358,7 @@ declare module "@polkadot/types/lookup" { | "ClaimAssets" | "TransferAssetsUsingTypeAndThen"; } - /** @name XcmVersionedXcm (303) */ + /** @name XcmVersionedXcm (290) */ interface XcmVersionedXcm extends Enum { readonly isV2: boolean; readonly asV2: XcmV2Xcm; @@ -3393,9 +3368,9 @@ declare module "@polkadot/types/lookup" { readonly asV4: StagingXcmV4Xcm; readonly type: "V2" | "V3" | "V4"; } - /** @name XcmV2Xcm (304) */ + /** @name XcmV2Xcm (291) */ interface XcmV2Xcm extends Vec {} - /** @name XcmV2Instruction (306) */ + /** @name XcmV2Instruction (293) */ interface XcmV2Instruction extends Enum { readonly isWithdrawAsset: boolean; readonly asWithdrawAsset: XcmV2MultiassetMultiAssets; @@ -3542,7 +3517,7 @@ declare module "@polkadot/types/lookup" { | "SubscribeVersion" | "UnsubscribeVersion"; } - /** @name XcmV2Response (307) */ + /** @name XcmV2Response (294) */ interface XcmV2Response extends Enum { readonly isNull: boolean; readonly isAssets: boolean; @@ -3553,7 +3528,7 @@ declare module "@polkadot/types/lookup" { readonly asVersion: u32; readonly type: "Null" | "Assets" | "ExecutionResult" | "Version"; } - /** @name XcmV2TraitsError (310) */ + /** @name XcmV2TraitsError (297) */ interface XcmV2TraitsError extends Enum { readonly isOverflow: boolean; readonly isUnimplemented: boolean; @@ -3611,7 +3586,7 @@ declare module "@polkadot/types/lookup" { | "Barrier" | "WeightNotComputable"; } - /** @name XcmV2OriginKind (311) */ + /** @name XcmV2OriginKind (298) */ interface XcmV2OriginKind extends Enum { readonly isNative: boolean; readonly isSovereignAccount: boolean; @@ -3619,7 +3594,7 @@ declare module "@polkadot/types/lookup" { readonly isXcm: boolean; readonly type: "Native" | "SovereignAccount" | "Superuser" | "Xcm"; } - /** @name XcmV2MultiassetMultiAssetFilter (312) */ + /** @name XcmV2MultiassetMultiAssetFilter (299) */ interface XcmV2MultiassetMultiAssetFilter extends Enum { readonly isDefinite: boolean; readonly asDefinite: XcmV2MultiassetMultiAssets; @@ -3627,7 +3602,7 @@ declare module "@polkadot/types/lookup" { readonly asWild: XcmV2MultiassetWildMultiAsset; readonly type: "Definite" | "Wild"; } - /** @name XcmV2MultiassetWildMultiAsset (313) */ + /** @name XcmV2MultiassetWildMultiAsset (300) */ interface XcmV2MultiassetWildMultiAsset extends Enum { readonly isAll: boolean; readonly isAllOf: boolean; @@ -3637,22 +3612,22 @@ declare module "@polkadot/types/lookup" { } & Struct; readonly type: "All" | "AllOf"; } - /** @name XcmV2MultiassetWildFungibility (314) */ + /** @name XcmV2MultiassetWildFungibility (301) */ interface XcmV2MultiassetWildFungibility extends Enum { readonly isFungible: boolean; readonly isNonFungible: boolean; readonly type: "Fungible" | "NonFungible"; } - /** @name XcmV2WeightLimit (315) */ + /** @name XcmV2WeightLimit (302) */ interface XcmV2WeightLimit extends Enum { readonly isUnlimited: boolean; readonly isLimited: boolean; readonly asLimited: Compact; readonly type: "Unlimited" | "Limited"; } - /** @name XcmV3Xcm (316) */ + /** @name XcmV3Xcm (303) */ interface XcmV3Xcm extends Vec {} - /** @name XcmV3Instruction (318) */ + /** @name XcmV3Instruction (305) */ interface XcmV3Instruction extends Enum { readonly isWithdrawAsset: boolean; readonly asWithdrawAsset: XcmV3MultiassetMultiAssets; @@ -3881,7 +3856,7 @@ declare module "@polkadot/types/lookup" { | "AliasOrigin" | "UnpaidExecution"; } - /** @name XcmV3Response (319) */ + /** @name XcmV3Response (306) */ interface XcmV3Response extends Enum { readonly isNull: boolean; readonly isAssets: boolean; @@ -3902,7 +3877,7 @@ declare module "@polkadot/types/lookup" { | "PalletsInfo" | "DispatchResult"; } - /** @name XcmV3PalletInfo (321) */ + /** @name XcmV3PalletInfo (308) */ interface XcmV3PalletInfo extends Struct { readonly index: Compact; readonly name: Bytes; @@ -3911,13 +3886,13 @@ declare module "@polkadot/types/lookup" { readonly minor: Compact; readonly patch: Compact; } - /** @name XcmV3QueryResponseInfo (325) */ + /** @name XcmV3QueryResponseInfo (312) */ interface XcmV3QueryResponseInfo extends Struct { readonly destination: StagingXcmV3MultiLocation; readonly queryId: Compact; readonly maxWeight: SpWeightsWeightV2Weight; } - /** @name XcmV3MultiassetMultiAssetFilter (326) */ + /** @name XcmV3MultiassetMultiAssetFilter (313) */ interface XcmV3MultiassetMultiAssetFilter extends Enum { readonly isDefinite: boolean; readonly asDefinite: XcmV3MultiassetMultiAssets; @@ -3925,7 +3900,7 @@ declare module "@polkadot/types/lookup" { readonly asWild: XcmV3MultiassetWildMultiAsset; readonly type: "Definite" | "Wild"; } - /** @name XcmV3MultiassetWildMultiAsset (327) */ + /** @name XcmV3MultiassetWildMultiAsset (314) */ interface XcmV3MultiassetWildMultiAsset extends Enum { readonly isAll: boolean; readonly isAllOf: boolean; @@ -3943,13 +3918,13 @@ declare module "@polkadot/types/lookup" { } & Struct; readonly type: "All" | "AllOf" | "AllCounted" | "AllOfCounted"; } - /** @name XcmV3MultiassetWildFungibility (328) */ + /** @name XcmV3MultiassetWildFungibility (315) */ interface XcmV3MultiassetWildFungibility extends Enum { readonly isFungible: boolean; readonly isNonFungible: boolean; readonly type: "Fungible" | "NonFungible"; } - /** @name StagingXcmExecutorAssetTransferTransferType (340) */ + /** @name StagingXcmExecutorAssetTransferTransferType (327) */ interface StagingXcmExecutorAssetTransferTransferType extends Enum { readonly isTeleport: boolean; readonly isLocalReserve: boolean; @@ -3958,7 +3933,7 @@ declare module "@polkadot/types/lookup" { readonly asRemoteReserve: XcmVersionedLocation; readonly type: "Teleport" | "LocalReserve" | "DestinationReserve" | "RemoteReserve"; } - /** @name XcmVersionedAssetId (341) */ + /** @name XcmVersionedAssetId (328) */ interface XcmVersionedAssetId extends Enum { readonly isV3: boolean; readonly asV3: XcmV3MultiassetAssetId; @@ -3966,9 +3941,9 @@ declare module "@polkadot/types/lookup" { readonly asV4: StagingXcmV4AssetAssetId; readonly type: "V3" | "V4"; } - /** @name CumulusPalletXcmCall (342) */ + /** @name CumulusPalletXcmCall (329) */ type CumulusPalletXcmCall = Null; - /** @name PalletMessageQueueCall (343) */ + /** @name PalletMessageQueueCall (330) */ interface PalletMessageQueueCall extends Enum { readonly isReapPage: boolean; readonly asReapPage: { @@ -3984,7 +3959,7 @@ declare module "@polkadot/types/lookup" { } & Struct; readonly type: "ReapPage" | "ExecuteOverweight"; } - /** @name PalletStorageProvidersCall (344) */ + /** @name PalletStorageProvidersCall (331) */ interface PalletStorageProvidersCall extends Enum { readonly isRequestMspSignUp: boolean; readonly asRequestMspSignUp: { @@ -4070,14 +4045,14 @@ declare module "@polkadot/types/lookup" { | "ForceBspSignUp" | "Slash"; } - /** @name PalletFileSystemCall (345) */ + /** @name PalletFileSystemCall (332) */ interface PalletFileSystemCall extends Enum { readonly isCreateBucket: boolean; readonly asCreateBucket: { - readonly mspId: H256; + readonly mspId: Option; readonly name: Bytes; readonly private: bool; - readonly valuePropId: H256; + readonly valuePropId: Option; } & Struct; readonly isRequestMoveBucket: boolean; readonly asRequestMoveBucket: { @@ -4108,7 +4083,7 @@ declare module "@polkadot/types/lookup" { readonly location: Bytes; readonly fingerprint: H256; readonly size_: u64; - readonly mspId: H256; + readonly mspId: Option; readonly peerIds: Vec; } & Struct; readonly isRevokeStorageRequest: boolean; @@ -4117,9 +4092,7 @@ declare module "@polkadot/types/lookup" { } & Struct; readonly isMspRespondStorageRequestsMultipleBuckets: boolean; readonly asMspRespondStorageRequestsMultipleBuckets: { - readonly fileKeyResponsesInput: Vec< - ITuple<[H256, PalletFileSystemMspStorageRequestResponse]> - >; + readonly storageRequestMspResponse: Vec; } & Struct; readonly isMspStopStoringBucket: boolean; readonly asMspStopStoringBucket: { @@ -4201,23 +4174,34 @@ declare module "@polkadot/types/lookup" { | "PendingFileDeletionRequestSubmitProof" | "SetGlobalParameters"; } - /** @name PalletFileSystemBucketMoveRequestResponse (346) */ + /** @name PalletFileSystemBucketMoveRequestResponse (333) */ interface PalletFileSystemBucketMoveRequestResponse extends Enum { readonly isAccepted: boolean; readonly isRejected: boolean; readonly type: "Accepted" | "Rejected"; } - /** @name PalletFileSystemMspStorageRequestResponse (349) */ - interface PalletFileSystemMspStorageRequestResponse extends Struct { - readonly accept: Option; - readonly reject: Option>>; + /** @name PalletFileSystemStorageRequestMspBucketResponse (335) */ + interface PalletFileSystemStorageRequestMspBucketResponse extends Struct { + readonly bucketId: H256; + readonly accept: Option; + readonly reject: Vec; } - /** @name PalletFileSystemAcceptedStorageRequestParameters (351) */ - interface PalletFileSystemAcceptedStorageRequestParameters extends Struct { - readonly fileKeysAndProofs: Vec>; + /** @name PalletFileSystemStorageRequestMspAcceptedFileKeys (337) */ + interface PalletFileSystemStorageRequestMspAcceptedFileKeys extends Struct { + readonly fileKeysAndProofs: Vec; readonly nonInclusionForestProof: SpTrieStorageProofCompactProof; } - /** @name PalletProofsDealerCall (358) */ + /** @name PalletFileSystemFileKeyWithProof (339) */ + interface PalletFileSystemFileKeyWithProof extends Struct { + readonly fileKey: H256; + readonly proof: ShpFileKeyVerifierFileKeyProof; + } + /** @name PalletFileSystemRejectedStorageRequest (342) */ + interface PalletFileSystemRejectedStorageRequest extends Struct { + readonly fileKey: H256; + readonly reason: PalletFileSystemRejectedStorageRequestReason; + } + /** @name PalletProofsDealerCall (349) */ interface PalletProofsDealerCall extends Enum { readonly isChallenge: boolean; readonly asChallenge: { @@ -4238,12 +4222,12 @@ declare module "@polkadot/types/lookup" { } & Struct; readonly type: "Challenge" | "SubmitProof" | "ForceInitialiseChallengeCycle" | "SetPaused"; } - /** @name PalletRandomnessCall (359) */ + /** @name PalletRandomnessCall (350) */ interface PalletRandomnessCall extends Enum { readonly isSetBabeRandomness: boolean; readonly type: "SetBabeRandomness"; } - /** @name PalletPaymentStreamsCall (360) */ + /** @name PalletPaymentStreamsCall (351) */ interface PalletPaymentStreamsCall extends Enum { readonly isCreateFixedRatePaymentStream: boolean; readonly asCreateFixedRatePaymentStream: { @@ -4301,7 +4285,7 @@ declare module "@polkadot/types/lookup" { | "PayOutstandingDebt" | "ClearInsolventFlag"; } - /** @name PalletBucketNftsCall (361) */ + /** @name PalletBucketNftsCall (352) */ interface PalletBucketNftsCall extends Enum { readonly isShareAccess: boolean; readonly asShareAccess: { @@ -4318,7 +4302,7 @@ declare module "@polkadot/types/lookup" { } & Struct; readonly type: "ShareAccess" | "UpdateReadAccess"; } - /** @name PalletNftsCall (363) */ + /** @name PalletNftsCall (354) */ interface PalletNftsCall extends Enum { readonly isCreate: boolean; readonly asCreate: { @@ -4590,13 +4574,13 @@ declare module "@polkadot/types/lookup" { | "MintPreSigned" | "SetAttributesPreSigned"; } - /** @name PalletNftsCollectionConfig (364) */ + /** @name PalletNftsCollectionConfig (355) */ interface PalletNftsCollectionConfig extends Struct { readonly settings: u64; readonly maxSupply: Option; readonly mintSettings: PalletNftsMintSettings; } - /** @name PalletNftsCollectionSetting (366) */ + /** @name PalletNftsCollectionSetting (357) */ interface PalletNftsCollectionSetting extends Enum { readonly isTransferableItems: boolean; readonly isUnlockedMetadata: boolean; @@ -4610,7 +4594,7 @@ declare module "@polkadot/types/lookup" { | "UnlockedMaxSupply" | "DepositRequired"; } - /** @name PalletNftsMintSettings (367) */ + /** @name PalletNftsMintSettings (358) */ interface PalletNftsMintSettings extends Struct { readonly mintType: PalletNftsMintType; readonly price: Option; @@ -4618,7 +4602,7 @@ declare module "@polkadot/types/lookup" { readonly endBlock: Option; readonly defaultItemSettings: u64; } - /** @name PalletNftsMintType (368) */ + /** @name PalletNftsMintType (359) */ interface PalletNftsMintType extends Enum { readonly isIssuer: boolean; readonly isPublic: boolean; @@ -4626,40 +4610,40 @@ declare module "@polkadot/types/lookup" { readonly asHolderOf: u32; readonly type: "Issuer" | "Public" | "HolderOf"; } - /** @name PalletNftsItemSetting (371) */ + /** @name PalletNftsItemSetting (362) */ interface PalletNftsItemSetting extends Enum { readonly isTransferable: boolean; readonly isUnlockedMetadata: boolean; readonly isUnlockedAttributes: boolean; readonly type: "Transferable" | "UnlockedMetadata" | "UnlockedAttributes"; } - /** @name PalletNftsDestroyWitness (372) */ + /** @name PalletNftsDestroyWitness (363) */ interface PalletNftsDestroyWitness extends Struct { readonly itemMetadatas: Compact; readonly itemConfigs: Compact; readonly attributes: Compact; } - /** @name PalletNftsMintWitness (374) */ + /** @name PalletNftsMintWitness (365) */ interface PalletNftsMintWitness extends Struct { readonly ownedItem: Option; readonly mintPrice: Option; } - /** @name PalletNftsItemConfig (375) */ + /** @name PalletNftsItemConfig (366) */ interface PalletNftsItemConfig extends Struct { readonly settings: u64; } - /** @name PalletNftsCancelAttributesApprovalWitness (377) */ + /** @name PalletNftsCancelAttributesApprovalWitness (368) */ interface PalletNftsCancelAttributesApprovalWitness extends Struct { readonly accountAttributes: u32; } - /** @name PalletNftsItemTip (379) */ + /** @name PalletNftsItemTip (370) */ interface PalletNftsItemTip extends Struct { readonly collection: u32; readonly item: u32; readonly receiver: AccountId32; readonly amount: u128; } - /** @name PalletNftsPreSignedMint (381) */ + /** @name PalletNftsPreSignedMint (372) */ interface PalletNftsPreSignedMint extends Struct { readonly collection: u32; readonly item: u32; @@ -4669,7 +4653,7 @@ declare module "@polkadot/types/lookup" { readonly deadline: u32; readonly mintPrice: Option; } - /** @name SpRuntimeMultiSignature (382) */ + /** @name SpRuntimeMultiSignature (373) */ interface SpRuntimeMultiSignature extends Enum { readonly isEd25519: boolean; readonly asEd25519: U8aFixed; @@ -4679,7 +4663,7 @@ declare module "@polkadot/types/lookup" { readonly asEcdsa: U8aFixed; readonly type: "Ed25519" | "Sr25519" | "Ecdsa"; } - /** @name PalletNftsPreSignedAttributes (385) */ + /** @name PalletNftsPreSignedAttributes (376) */ interface PalletNftsPreSignedAttributes extends Struct { readonly collection: u32; readonly item: u32; @@ -4687,7 +4671,7 @@ declare module "@polkadot/types/lookup" { readonly namespace: PalletNftsAttributeNamespace; readonly deadline: u32; } - /** @name PalletParametersCall (386) */ + /** @name PalletParametersCall (377) */ interface PalletParametersCall extends Enum { readonly isSetParameter: boolean; readonly asSetParameter: { @@ -4695,13 +4679,13 @@ declare module "@polkadot/types/lookup" { } & Struct; readonly type: "SetParameter"; } - /** @name StorageHubRuntimeConfigsRuntimeParamsRuntimeParameters (387) */ + /** @name StorageHubRuntimeConfigsRuntimeParamsRuntimeParameters (378) */ interface StorageHubRuntimeConfigsRuntimeParamsRuntimeParameters extends Enum { readonly isRuntimeConfig: boolean; readonly asRuntimeConfig: StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParameters; readonly type: "RuntimeConfig"; } - /** @name StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParameters (388) */ + /** @name StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParameters (379) */ interface StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParameters extends Enum { readonly isSlashAmountPerMaxFileSize: boolean; readonly asSlashAmountPerMaxFileSize: ITuple< @@ -4832,17 +4816,17 @@ declare module "@polkadot/types/lookup" { | "MaximumTreasuryCut" | "BspStopStoringFilePenalty"; } - /** @name PalletSudoError (390) */ + /** @name PalletSudoError (381) */ interface PalletSudoError extends Enum { readonly isRequireSudo: boolean; readonly type: "RequireSudo"; } - /** @name PalletCollatorSelectionCandidateInfo (393) */ + /** @name PalletCollatorSelectionCandidateInfo (384) */ interface PalletCollatorSelectionCandidateInfo extends Struct { readonly who: AccountId32; readonly deposit: u128; } - /** @name PalletCollatorSelectionError (395) */ + /** @name PalletCollatorSelectionError (386) */ interface PalletCollatorSelectionError extends Enum { readonly isTooManyCandidates: boolean; readonly isTooFewEligibleCollators: boolean; @@ -4880,9 +4864,9 @@ declare module "@polkadot/types/lookup" { | "IdenticalDeposit" | "InvalidUnreserve"; } - /** @name SpCoreCryptoKeyTypeId (399) */ + /** @name SpCoreCryptoKeyTypeId (390) */ interface SpCoreCryptoKeyTypeId extends U8aFixed {} - /** @name PalletSessionError (400) */ + /** @name PalletSessionError (391) */ interface PalletSessionError extends Enum { readonly isInvalidProof: boolean; readonly isNoAssociatedValidatorId: boolean; @@ -4896,7 +4880,7 @@ declare module "@polkadot/types/lookup" { | "NoKeys" | "NoAccount"; } - /** @name CumulusPalletXcmpQueueOutboundChannelDetails (409) */ + /** @name CumulusPalletXcmpQueueOutboundChannelDetails (400) */ interface CumulusPalletXcmpQueueOutboundChannelDetails extends Struct { readonly recipient: u32; readonly state: CumulusPalletXcmpQueueOutboundState; @@ -4904,19 +4888,19 @@ declare module "@polkadot/types/lookup" { readonly firstIndex: u16; readonly lastIndex: u16; } - /** @name CumulusPalletXcmpQueueOutboundState (410) */ + /** @name CumulusPalletXcmpQueueOutboundState (401) */ interface CumulusPalletXcmpQueueOutboundState extends Enum { readonly isOk: boolean; readonly isSuspended: boolean; readonly type: "Ok" | "Suspended"; } - /** @name CumulusPalletXcmpQueueQueueConfigData (414) */ + /** @name CumulusPalletXcmpQueueQueueConfigData (405) */ interface CumulusPalletXcmpQueueQueueConfigData extends Struct { readonly suspendThreshold: u32; readonly dropThreshold: u32; readonly resumeThreshold: u32; } - /** @name CumulusPalletXcmpQueueError (415) */ + /** @name CumulusPalletXcmpQueueError (406) */ interface CumulusPalletXcmpQueueError extends Enum { readonly isBadQueueConfig: boolean; readonly isAlreadySuspended: boolean; @@ -4930,7 +4914,7 @@ declare module "@polkadot/types/lookup" { | "TooManyActiveOutboundChannels" | "TooBig"; } - /** @name PalletXcmQueryStatus (416) */ + /** @name PalletXcmQueryStatus (407) */ interface PalletXcmQueryStatus extends Enum { readonly isPending: boolean; readonly asPending: { @@ -4951,7 +4935,7 @@ declare module "@polkadot/types/lookup" { } & Struct; readonly type: "Pending" | "VersionNotifier" | "Ready"; } - /** @name XcmVersionedResponse (420) */ + /** @name XcmVersionedResponse (411) */ interface XcmVersionedResponse extends Enum { readonly isV2: boolean; readonly asV2: XcmV2Response; @@ -4961,7 +4945,7 @@ declare module "@polkadot/types/lookup" { readonly asV4: StagingXcmV4Response; readonly type: "V2" | "V3" | "V4"; } - /** @name PalletXcmVersionMigrationStage (426) */ + /** @name PalletXcmVersionMigrationStage (417) */ interface PalletXcmVersionMigrationStage extends Enum { readonly isMigrateSupportedVersion: boolean; readonly isMigrateVersionNotifiers: boolean; @@ -4974,14 +4958,14 @@ declare module "@polkadot/types/lookup" { | "NotifyCurrentTargets" | "MigrateAndNotifyOldTargets"; } - /** @name PalletXcmRemoteLockedFungibleRecord (429) */ + /** @name PalletXcmRemoteLockedFungibleRecord (420) */ interface PalletXcmRemoteLockedFungibleRecord extends Struct { readonly amount: u128; readonly owner: XcmVersionedLocation; readonly locker: XcmVersionedLocation; readonly consumers: Vec>; } - /** @name PalletXcmError (436) */ + /** @name PalletXcmError (427) */ interface PalletXcmError extends Enum { readonly isUnreachable: boolean; readonly isSendFailure: boolean; @@ -5033,7 +5017,7 @@ declare module "@polkadot/types/lookup" { | "TooManyReserves" | "LocalExecutionIncomplete"; } - /** @name PalletMessageQueueBookState (437) */ + /** @name PalletMessageQueueBookState (428) */ interface PalletMessageQueueBookState extends Struct { readonly begin: u32; readonly end: u32; @@ -5042,12 +5026,12 @@ declare module "@polkadot/types/lookup" { readonly messageCount: u64; readonly size_: u64; } - /** @name PalletMessageQueueNeighbours (439) */ + /** @name PalletMessageQueueNeighbours (430) */ interface PalletMessageQueueNeighbours extends Struct { readonly prev: CumulusPrimitivesCoreAggregateMessageOrigin; readonly next: CumulusPrimitivesCoreAggregateMessageOrigin; } - /** @name PalletMessageQueuePage (441) */ + /** @name PalletMessageQueuePage (432) */ interface PalletMessageQueuePage extends Struct { readonly remaining: u32; readonly remainingSize: u32; @@ -5056,7 +5040,7 @@ declare module "@polkadot/types/lookup" { readonly last: u32; readonly heap: Bytes; } - /** @name PalletMessageQueueError (443) */ + /** @name PalletMessageQueueError (434) */ interface PalletMessageQueueError extends Enum { readonly isNotReapable: boolean; readonly isNoPage: boolean; @@ -5078,12 +5062,12 @@ declare module "@polkadot/types/lookup" { | "QueuePaused" | "RecursiveDisallowed"; } - /** @name PalletStorageProvidersSignUpRequest (444) */ + /** @name PalletStorageProvidersSignUpRequest (435) */ interface PalletStorageProvidersSignUpRequest extends Struct { readonly spSignUpRequest: PalletStorageProvidersSignUpRequestSpParams; readonly at: u32; } - /** @name PalletStorageProvidersSignUpRequestSpParams (445) */ + /** @name PalletStorageProvidersSignUpRequestSpParams (436) */ interface PalletStorageProvidersSignUpRequestSpParams extends Enum { readonly isBackupStorageProvider: boolean; readonly asBackupStorageProvider: PalletStorageProvidersBackupStorageProvider; @@ -5091,7 +5075,7 @@ declare module "@polkadot/types/lookup" { readonly asMainStorageProvider: PalletStorageProvidersMainStorageProviderSignUpRequest; readonly type: "BackupStorageProvider" | "MainStorageProvider"; } - /** @name PalletStorageProvidersBackupStorageProvider (446) */ + /** @name PalletStorageProvidersBackupStorageProvider (437) */ interface PalletStorageProvidersBackupStorageProvider extends Struct { readonly capacity: u64; readonly capacityUsed: u64; @@ -5103,12 +5087,12 @@ declare module "@polkadot/types/lookup" { readonly reputationWeight: u32; readonly signUpBlock: u32; } - /** @name PalletStorageProvidersMainStorageProviderSignUpRequest (447) */ + /** @name PalletStorageProvidersMainStorageProviderSignUpRequest (438) */ interface PalletStorageProvidersMainStorageProviderSignUpRequest extends Struct { readonly mspInfo: PalletStorageProvidersMainStorageProvider; readonly valueProp: PalletStorageProvidersValueProposition; } - /** @name PalletStorageProvidersMainStorageProvider (448) */ + /** @name PalletStorageProvidersMainStorageProvider (439) */ interface PalletStorageProvidersMainStorageProvider extends Struct { readonly capacity: u64; readonly capacityUsed: u64; @@ -5118,7 +5102,7 @@ declare module "@polkadot/types/lookup" { readonly paymentAccount: AccountId32; readonly signUpBlock: u32; } - /** @name PalletStorageProvidersBucket (449) */ + /** @name PalletStorageProvidersBucket (440) */ interface PalletStorageProvidersBucket extends Struct { readonly root: H256; readonly userId: AccountId32; @@ -5126,9 +5110,9 @@ declare module "@polkadot/types/lookup" { readonly private: bool; readonly readAccessGroupId: Option; readonly size_: u64; - readonly valuePropId: H256; + readonly valuePropId: Option; } - /** @name PalletStorageProvidersError (451) */ + /** @name PalletStorageProvidersError (442) */ interface PalletStorageProvidersError extends Enum { readonly isAlreadyRegistered: boolean; readonly isSignUpNotRequested: boolean; @@ -5167,6 +5151,7 @@ declare module "@polkadot/types/lookup" { readonly isFixedRatePaymentStreamNotFound: boolean; readonly isMspAlreadyAssignedToBucket: boolean; readonly isBucketSizeExceedsLimit: boolean; + readonly isBucketHasNoValueProposition: boolean; readonly isInvalidEncodedFileMetadata: boolean; readonly isInvalidEncodedAccountId: boolean; readonly isPaymentStreamNotFound: boolean; @@ -5208,11 +5193,12 @@ declare module "@polkadot/types/lookup" { | "FixedRatePaymentStreamNotFound" | "MspAlreadyAssignedToBucket" | "BucketSizeExceedsLimit" + | "BucketHasNoValueProposition" | "InvalidEncodedFileMetadata" | "InvalidEncodedAccountId" | "PaymentStreamNotFound"; } - /** @name PalletFileSystemStorageRequestMetadata (452) */ + /** @name PalletFileSystemStorageRequestMetadata (443) */ interface PalletFileSystemStorageRequestMetadata extends Struct { readonly requestedAt: u32; readonly owner: AccountId32; @@ -5226,15 +5212,15 @@ declare module "@polkadot/types/lookup" { readonly bspsConfirmed: u32; readonly bspsVolunteered: u32; } - /** @name PalletFileSystemStorageRequestBspsMetadata (455) */ + /** @name PalletFileSystemStorageRequestBspsMetadata (446) */ interface PalletFileSystemStorageRequestBspsMetadata extends Struct { readonly confirmed: bool; } - /** @name PalletFileSystemMoveBucketRequestMetadata (464) */ + /** @name PalletFileSystemMoveBucketRequestMetadata (455) */ interface PalletFileSystemMoveBucketRequestMetadata extends Struct { readonly requester: AccountId32; } - /** @name PalletFileSystemError (465) */ + /** @name PalletFileSystemError (456) */ interface PalletFileSystemError extends Enum { readonly isStorageRequestAlreadyRegistered: boolean; readonly isStorageRequestNotFound: boolean; @@ -5368,7 +5354,7 @@ declare module "@polkadot/types/lookup" { | "CannotHoldDeposit" | "FailedToGetOwnerAccount"; } - /** @name PalletProofsDealerError (471) */ + /** @name PalletProofsDealerError (462) */ interface PalletProofsDealerError extends Enum { readonly isNotProvider: boolean; readonly isChallengesQueueOverflow: boolean; @@ -5416,26 +5402,26 @@ declare module "@polkadot/types/lookup" { | "FailedToUpdateProviderAfterKeyRemoval" | "TooManyValidProofSubmitters"; } - /** @name PalletPaymentStreamsFixedRatePaymentStream (474) */ + /** @name PalletPaymentStreamsFixedRatePaymentStream (465) */ interface PalletPaymentStreamsFixedRatePaymentStream extends Struct { readonly rate: u128; readonly lastChargedTick: u32; readonly userDeposit: u128; readonly outOfFundsTick: Option; } - /** @name PalletPaymentStreamsDynamicRatePaymentStream (475) */ + /** @name PalletPaymentStreamsDynamicRatePaymentStream (466) */ interface PalletPaymentStreamsDynamicRatePaymentStream extends Struct { readonly amountProvided: u64; readonly priceIndexWhenLastCharged: u128; readonly userDeposit: u128; readonly outOfFundsTick: Option; } - /** @name PalletPaymentStreamsProviderLastChargeableInfo (476) */ + /** @name PalletPaymentStreamsProviderLastChargeableInfo (467) */ interface PalletPaymentStreamsProviderLastChargeableInfo extends Struct { readonly lastChargeableTick: u32; readonly priceIndex: u128; } - /** @name PalletPaymentStreamsError (477) */ + /** @name PalletPaymentStreamsError (468) */ interface PalletPaymentStreamsError extends Enum { readonly isPaymentStreamAlreadyExists: boolean; readonly isPaymentStreamNotFound: boolean; @@ -5471,7 +5457,7 @@ declare module "@polkadot/types/lookup" { | "UserNotFlaggedAsWithoutFunds" | "CooldownPeriodNotPassed"; } - /** @name PalletBucketNftsError (478) */ + /** @name PalletBucketNftsError (469) */ interface PalletBucketNftsError extends Enum { readonly isBucketIsNotPrivate: boolean; readonly isNotBucketOwner: boolean; @@ -5483,7 +5469,7 @@ declare module "@polkadot/types/lookup" { | "NoCorrespondingCollection" | "ConvertBytesToBoundedVec"; } - /** @name PalletNftsCollectionDetails (479) */ + /** @name PalletNftsCollectionDetails (470) */ interface PalletNftsCollectionDetails extends Struct { readonly owner: AccountId32; readonly ownerDeposit: u128; @@ -5492,52 +5478,52 @@ declare module "@polkadot/types/lookup" { readonly itemConfigs: u32; readonly attributes: u32; } - /** @name PalletNftsCollectionRole (484) */ + /** @name PalletNftsCollectionRole (475) */ interface PalletNftsCollectionRole extends Enum { readonly isIssuer: boolean; readonly isFreezer: boolean; readonly isAdmin: boolean; readonly type: "Issuer" | "Freezer" | "Admin"; } - /** @name PalletNftsItemDetails (485) */ + /** @name PalletNftsItemDetails (476) */ interface PalletNftsItemDetails extends Struct { readonly owner: AccountId32; readonly approvals: BTreeMap>; readonly deposit: PalletNftsItemDeposit; } - /** @name PalletNftsItemDeposit (486) */ + /** @name PalletNftsItemDeposit (477) */ interface PalletNftsItemDeposit extends Struct { readonly account: AccountId32; readonly amount: u128; } - /** @name PalletNftsCollectionMetadata (491) */ + /** @name PalletNftsCollectionMetadata (482) */ interface PalletNftsCollectionMetadata extends Struct { readonly deposit: u128; readonly data: Bytes; } - /** @name PalletNftsItemMetadata (492) */ + /** @name PalletNftsItemMetadata (483) */ interface PalletNftsItemMetadata extends Struct { readonly deposit: PalletNftsItemMetadataDeposit; readonly data: Bytes; } - /** @name PalletNftsItemMetadataDeposit (493) */ + /** @name PalletNftsItemMetadataDeposit (484) */ interface PalletNftsItemMetadataDeposit extends Struct { readonly account: Option; readonly amount: u128; } - /** @name PalletNftsAttributeDeposit (496) */ + /** @name PalletNftsAttributeDeposit (487) */ interface PalletNftsAttributeDeposit extends Struct { readonly account: Option; readonly amount: u128; } - /** @name PalletNftsPendingSwap (500) */ + /** @name PalletNftsPendingSwap (491) */ interface PalletNftsPendingSwap extends Struct { readonly desiredCollection: u32; readonly desiredItem: Option; readonly price: Option; readonly deadline: u32; } - /** @name PalletNftsPalletFeature (502) */ + /** @name PalletNftsPalletFeature (493) */ interface PalletNftsPalletFeature extends Enum { readonly isTrading: boolean; readonly isAttributes: boolean; @@ -5545,7 +5531,7 @@ declare module "@polkadot/types/lookup" { readonly isSwaps: boolean; readonly type: "Trading" | "Attributes" | "Approvals" | "Swaps"; } - /** @name PalletNftsError (503) */ + /** @name PalletNftsError (494) */ interface PalletNftsError extends Enum { readonly isNoPermission: boolean; readonly isUnknownCollection: boolean; @@ -5639,32 +5625,32 @@ declare module "@polkadot/types/lookup" { | "CollectionNotEmpty" | "WitnessRequired"; } - /** @name FrameSystemExtensionsCheckNonZeroSender (506) */ + /** @name FrameSystemExtensionsCheckNonZeroSender (497) */ type FrameSystemExtensionsCheckNonZeroSender = Null; - /** @name FrameSystemExtensionsCheckSpecVersion (507) */ + /** @name FrameSystemExtensionsCheckSpecVersion (498) */ type FrameSystemExtensionsCheckSpecVersion = Null; - /** @name FrameSystemExtensionsCheckTxVersion (508) */ + /** @name FrameSystemExtensionsCheckTxVersion (499) */ type FrameSystemExtensionsCheckTxVersion = Null; - /** @name FrameSystemExtensionsCheckGenesis (509) */ + /** @name FrameSystemExtensionsCheckGenesis (500) */ type FrameSystemExtensionsCheckGenesis = Null; - /** @name FrameSystemExtensionsCheckNonce (512) */ + /** @name FrameSystemExtensionsCheckNonce (503) */ interface FrameSystemExtensionsCheckNonce extends Compact {} - /** @name FrameSystemExtensionsCheckWeight (513) */ + /** @name FrameSystemExtensionsCheckWeight (504) */ type FrameSystemExtensionsCheckWeight = Null; - /** @name PalletTransactionPaymentChargeTransactionPayment (514) */ + /** @name PalletTransactionPaymentChargeTransactionPayment (505) */ interface PalletTransactionPaymentChargeTransactionPayment extends Compact {} - /** @name CumulusPrimitivesStorageWeightReclaimStorageWeightReclaim (515) */ + /** @name CumulusPrimitivesStorageWeightReclaimStorageWeightReclaim (506) */ type CumulusPrimitivesStorageWeightReclaimStorageWeightReclaim = Null; - /** @name FrameMetadataHashExtensionCheckMetadataHash (516) */ + /** @name FrameMetadataHashExtensionCheckMetadataHash (507) */ interface FrameMetadataHashExtensionCheckMetadataHash extends Struct { readonly mode: FrameMetadataHashExtensionMode; } - /** @name FrameMetadataHashExtensionMode (517) */ + /** @name FrameMetadataHashExtensionMode (508) */ interface FrameMetadataHashExtensionMode extends Enum { readonly isDisabled: boolean; readonly isEnabled: boolean; readonly type: "Disabled" | "Enabled"; } - /** @name StorageHubRuntimeRuntime (518) */ + /** @name StorageHubRuntimeRuntime (509) */ type StorageHubRuntimeRuntime = Null; } diff --git a/api-augment/src/interfaces/augment-api-errors.ts b/api-augment/src/interfaces/augment-api-errors.ts index 4ce954941..98b9960da 100644 --- a/api-augment/src/interfaces/augment-api-errors.ts +++ b/api-augment/src/interfaces/augment-api-errors.ts @@ -1006,6 +1006,10 @@ declare module "@polkadot/api-base/types/errors" { * Error thrown when a bucket ID already exists in storage. **/ BucketAlreadyExists: AugmentedError; + /** + * Error thrown when a bucket has no value proposition. + **/ + BucketHasNoValueProposition: AugmentedError; /** * Error thrown when an operation requires an MSP to be storing the bucket. **/ diff --git a/api-augment/src/interfaces/augment-api-events.ts b/api-augment/src/interfaces/augment-api-events.ts index f276bafd2..d33078304 100644 --- a/api-augment/src/interfaces/augment-api-events.ts +++ b/api-augment/src/interfaces/augment-api-events.ts @@ -27,7 +27,7 @@ import type { FrameSupportMessagesProcessMessageError, FrameSupportTokensMiscBalanceStatus, PalletFileSystemEitherAccountIdOrMspId, - PalletFileSystemMspRespondStorageRequestsResult, + PalletFileSystemRejectedStorageRequestReason, PalletNftsAttributeNamespace, PalletNftsPalletAttributes, PalletNftsPriceWithDirection, @@ -420,9 +420,6 @@ declare module "@polkadot/api-base/types/events" { [bspId: H256, fileKey: H256, newRoot: H256], { bspId: H256; fileKey: H256; newRoot: H256 } >; - /** - * Notifies that a BSP has opened a request to stop storing a file. - **/ BspRequestedToStopStoring: AugmentedEvent< ApiType, [bspId: H256, fileKey: H256, owner: AccountId32, location: Bytes], @@ -444,14 +441,6 @@ declare module "@polkadot/api-base/types/events" { [who: AccountId32, bucketId: H256, collectionId: Option, private: bool], { who: AccountId32; bucketId: H256; collectionId: Option; private: bool } >; - /** - * Notifies that a data server has been registered for a move bucket request. - **/ - DataServerRegisteredForMoveBucket: AugmentedEvent< - ApiType, - [bspId: H256, bucketId: H256], - { bspId: H256; bucketId: H256 } - >; /** * Notifies that a priority challenge failed to be queued for pending file deletion. **/ @@ -465,8 +454,20 @@ declare module "@polkadot/api-base/types/events" { **/ FileDeletionRequest: AugmentedEvent< ApiType, - [user: AccountId32, fileKey: H256, bucketId: H256, mspId: H256, proofOfInclusion: bool], - { user: AccountId32; fileKey: H256; bucketId: H256; mspId: H256; proofOfInclusion: bool } + [ + user: AccountId32, + fileKey: H256, + bucketId: H256, + mspId: Option, + proofOfInclusion: bool + ], + { + user: AccountId32; + fileKey: H256; + bucketId: H256; + mspId: Option; + proofOfInclusion: bool; + } >; /** * Notifies that a bucket has been moved to a new MSP. @@ -501,13 +502,17 @@ declare module "@polkadot/api-base/types/events" { { mspId: H256; bucketId: H256 } >; /** - * Notifies that a MSP has responded to storage request(s). + * Notifies that a Main Storage Provider (MSP) has accepted a storage request for a specific file key. + * + * This event is emitted when an MSP agrees to store a file, but the storage request + * is not yet fully fulfilled (i.e., the required number of Backup Storage Providers + * have not yet confirmed storage). + * + * # Note + * This event is not emitted when the storage request is immediately fulfilled upon + * MSP acceptance. In such cases, a [`StorageRequestFulfilled`] event is emitted instead. **/ - MspRespondedToStorageRequests: AugmentedEvent< - ApiType, - [results: PalletFileSystemMspRespondStorageRequestsResult], - { results: PalletFileSystemMspRespondStorageRequestsResult } - >; + MspAcceptedStorageRequest: AugmentedEvent; /** * Notifies that a MSP has stopped storing a bucket. **/ @@ -523,21 +528,21 @@ declare module "@polkadot/api-base/types/events" { ApiType, [ who: AccountId32, - mspId: H256, + mspId: Option, bucketId: H256, name: Bytes, collectionId: Option, private: bool, - valuePropId: H256 + valuePropId: Option ], { who: AccountId32; - mspId: H256; + mspId: Option; bucketId: H256; name: Bytes; collectionId: Option; private: bool; - valuePropId: H256; + valuePropId: Option; } >; /** @@ -597,15 +602,33 @@ declare module "@polkadot/api-base/types/events" { { spId: H256; fileKey: H256; owner: AccountId32; location: Bytes; newRoot: H256 } >; /** - * Notifies the expiration of a storage request. + * Notifies the expiration of a storage request. This means that the storage request has + * been accepted by the MSP but the BSP target has not been reached (possibly 0 BSPs). + * Note: This is a valid storage outcome, the user being responsible to track the number + * of BSPs and choose to either delete the file and re-issue a storage request or continue. **/ StorageRequestExpired: AugmentedEvent; /** * Notifies that a storage request for a file key has been fulfilled. + * This means that the storage request has been accepted by the MSP and the BSP target + * has been reached. **/ StorageRequestFulfilled: AugmentedEvent; + /** + * Notifies that a storage request has either been directly rejected by the MSP or + * the MSP did not respond to the storage request in time. + * Note: There might be BSPs that have volunteered and confirmed the file already, for + * which a priority challenge to delete the file will be issued. + **/ + StorageRequestRejected: AugmentedEvent< + ApiType, + [fileKey: H256, reason: PalletFileSystemRejectedStorageRequestReason], + { fileKey: H256; reason: PalletFileSystemRejectedStorageRequestReason } + >; /** * Notifies that a storage request has been revoked by the user who initiated it. + * Note: the BSPs who confirmed the file are also issued a priority challenge to delete the + * file. **/ StorageRequestRevoked: AugmentedEvent; /** @@ -1638,6 +1661,14 @@ declare module "@polkadot/api-base/types/events" { [who: AccountId32, bspId: H256, multiaddresses: Vec, capacity: u64], { who: AccountId32; bspId: H256; multiaddresses: Vec; capacity: u64 } >; + /** + * Event emitted when a bucket's root has been changed. + **/ + BucketRootChanged: AugmentedEvent< + ApiType, + [bucketId: H256, oldRoot: H256, newRoot: H256], + { bucketId: H256; oldRoot: H256; newRoot: H256 } + >; /** * Event emitted when a SP has changed its capacity successfully. Provides information about * that SP's account id, its old total data that could store, and the new total data. diff --git a/api-augment/src/interfaces/augment-api-tx.ts b/api-augment/src/interfaces/augment-api-tx.ts index 3e10c4bcb..15e1e6ca5 100644 --- a/api-augment/src/interfaces/augment-api-tx.ts +++ b/api-augment/src/interfaces/augment-api-tx.ts @@ -19,7 +19,7 @@ import type { CumulusPrimitivesParachainInherentParachainInherentData, PalletBalancesAdjustmentDirection, PalletFileSystemBucketMoveRequestResponse, - PalletFileSystemMspStorageRequestResponse, + PalletFileSystemStorageRequestMspBucketResponse, PalletNftsAttributeNamespace, PalletNftsCancelAttributesApprovalWitness, PalletNftsCollectionConfig, @@ -509,12 +509,12 @@ declare module "@polkadot/api-base/types/submittable" { >; createBucket: AugmentedSubmittable< ( - mspId: H256 | string | Uint8Array, + mspId: Option | null | Uint8Array | H256 | string, name: Bytes | string | Uint8Array, private: bool | boolean | Uint8Array, - valuePropId: H256 | string | Uint8Array + valuePropId: Option | null | Uint8Array | H256 | string ) => SubmittableExtrinsic, - [H256, Bytes, bool, H256] + [Option, Bytes, bool, Option] >; /** * Dispatchable extrinsic that allows a User to delete any of their buckets if it is currently empty. @@ -555,10 +555,10 @@ declare module "@polkadot/api-base/types/submittable" { location: Bytes | string | Uint8Array, fingerprint: H256 | string | Uint8Array, size: u64 | AnyNumber | Uint8Array, - mspId: H256 | string | Uint8Array, + mspId: Option | null | Uint8Array | H256 | string, peerIds: Vec | (Bytes | string | Uint8Array)[] ) => SubmittableExtrinsic, - [H256, Bytes, H256, u64, H256, Vec] + [H256, Bytes, H256, u64, Option, Vec] >; mspRespondMoveBucketRequest: AugmentedSubmittable< ( @@ -585,19 +585,16 @@ declare module "@polkadot/api-base/types/submittable" { **/ mspRespondStorageRequestsMultipleBuckets: AugmentedSubmittable< ( - fileKeyResponsesInput: - | Vec> - | [ - H256 | string | Uint8Array, - ( - | PalletFileSystemMspStorageRequestResponse - | { accept?: any; reject?: any } - | string - | Uint8Array - ) - ][] + storageRequestMspResponse: + | Vec + | ( + | PalletFileSystemStorageRequestMspBucketResponse + | { bucketId?: any; accept?: any; reject?: any } + | string + | Uint8Array + )[] ) => SubmittableExtrinsic, - [Vec>] + [Vec] >; mspStopStoringBucket: AugmentedSubmittable< (bucketId: H256 | string | Uint8Array) => SubmittableExtrinsic, diff --git a/api-augment/src/interfaces/lookup.ts b/api-augment/src/interfaces/lookup.ts index cf25c76b3..74df775bd 100644 --- a/api-augment/src/interfaces/lookup.ts +++ b/api-augment/src/interfaces/lookup.ts @@ -1386,6 +1386,11 @@ export default { providerId: "H256", amountSlashed: "u128" }, + BucketRootChanged: { + bucketId: "H256", + oldRoot: "H256", + newRoot: "H256" + }, MultiAddressAdded: { providerId: "H256", newMultiaddress: "Bytes" @@ -1437,12 +1442,12 @@ export default { _enum: { NewBucket: { who: "AccountId32", - mspId: "H256", + mspId: "Option", bucketId: "H256", name: "Bytes", collectionId: "Option", private: "bool", - valuePropId: "H256" + valuePropId: "Option" }, BucketDeleted: { who: "AccountId32", @@ -1477,8 +1482,8 @@ export default { size_: "u64", peerIds: "Vec" }, - MspRespondedToStorageRequests: { - results: "PalletFileSystemMspRespondStorageRequestsResult" + MspAcceptedStorageRequest: { + fileKey: "H256" }, AcceptedBspVolunteer: { _alias: { @@ -1507,6 +1512,10 @@ export default { StorageRequestRevoked: { fileKey: "H256" }, + StorageRequestRejected: { + fileKey: "H256", + reason: "PalletFileSystemRejectedStorageRequestReason" + }, BspRequestedToStopStoring: { bspId: "H256", fileKey: "H256", @@ -1537,7 +1546,7 @@ export default { user: "AccountId32", fileKey: "H256", bucketId: "H256", - mspId: "H256", + mspId: "Option", proofOfInclusion: "bool" }, ProofSubmittedForPendingFileDeletionRequest: { @@ -1563,10 +1572,6 @@ export default { bucketId: "H256", mspId: "H256" }, - DataServerRegisteredForMoveBucket: { - bspId: "H256", - bucketId: "H256" - }, MspStoppedStoringBucket: { mspId: "H256", owner: "AccountId32", @@ -1575,60 +1580,19 @@ export default { } }, /** - * Lookup135: pallet_file_system::types::MspRespondStorageRequestsResult - **/ - PalletFileSystemMspRespondStorageRequestsResult: { - mspId: "H256", - responses: "Vec" - }, - /** - * Lookup137: pallet_file_system::types::BatchResponses - **/ - PalletFileSystemBatchResponses: { - _enum: { - Accepted: "PalletFileSystemMspAcceptedBatchStorageRequests", - Rejected: "PalletFileSystemMspRejectedBatchStorageRequests", - Failed: "PalletFileSystemMspFailedBatchStorageRequests" - } - }, - /** - * Lookup138: pallet_file_system::types::MspAcceptedBatchStorageRequests - **/ - PalletFileSystemMspAcceptedBatchStorageRequests: { - fileKeys: "Vec", - bucketId: "H256", - newBucketRoot: "H256", - owner: "AccountId32" - }, - /** - * Lookup141: pallet_file_system::types::MspRejectedBatchStorageRequests - **/ - PalletFileSystemMspRejectedBatchStorageRequests: { - fileKeys: "Vec<(H256,PalletFileSystemRejectedStorageRequestReason)>", - bucketId: "H256", - owner: "AccountId32" - }, - /** - * Lookup144: pallet_file_system::types::RejectedStorageRequestReason + * Lookup138: pallet_file_system::types::RejectedStorageRequestReason **/ PalletFileSystemRejectedStorageRequestReason: { _enum: [ "ReachedMaximumCapacity", "ReceivedInvalidProof", "FileKeyAlreadyStored", + "RequestExpired", "InternalError" ] }, /** - * Lookup146: pallet_file_system::types::MspFailedBatchStorageRequests - **/ - PalletFileSystemMspFailedBatchStorageRequests: { - fileKeys: "Vec<(H256,SpRuntimeDispatchError)>", - bucketId: "H256", - owner: "AccountId32" - }, - /** - * Lookup151: pallet_file_system::types::EitherAccountIdOrMspId + * Lookup139: pallet_file_system::types::EitherAccountIdOrMspId **/ PalletFileSystemEitherAccountIdOrMspId: { _enum: { @@ -1637,7 +1601,7 @@ export default { } }, /** - * Lookup152: pallet_proofs_dealer::pallet::Event + * Lookup140: pallet_proofs_dealer::pallet::Event **/ PalletProofsDealerEvent: { _enum: { @@ -1682,34 +1646,34 @@ export default { } }, /** - * Lookup153: pallet_proofs_dealer::types::Proof + * Lookup141: pallet_proofs_dealer::types::Proof **/ PalletProofsDealerProof: { forestProof: "SpTrieStorageProofCompactProof", keyProofs: "BTreeMap" }, /** - * Lookup154: sp_trie::storage_proof::CompactProof + * Lookup142: sp_trie::storage_proof::CompactProof **/ SpTrieStorageProofCompactProof: { encodedNodes: "Vec" }, /** - * Lookup157: pallet_proofs_dealer::types::KeyProof + * Lookup145: pallet_proofs_dealer::types::KeyProof **/ PalletProofsDealerKeyProof: { proof: "ShpFileKeyVerifierFileKeyProof", challengeCount: "u32" }, /** - * Lookup158: shp_file_key_verifier::types::FileKeyProof + * Lookup146: shp_file_key_verifier::types::FileKeyProof **/ ShpFileKeyVerifierFileKeyProof: { fileMetadata: "ShpFileMetadataFileMetadata", proof: "SpTrieStorageProofCompactProof" }, /** - * Lookup159: shp_file_metadata::FileMetadata + * Lookup147: shp_file_metadata::FileMetadata **/ ShpFileMetadataFileMetadata: { owner: "Bytes", @@ -1719,15 +1683,15 @@ export default { fingerprint: "ShpFileMetadataFingerprint" }, /** - * Lookup160: shp_file_metadata::Fingerprint + * Lookup148: shp_file_metadata::Fingerprint **/ ShpFileMetadataFingerprint: "[u8;32]", /** - * Lookup166: shp_traits::TrieRemoveMutation + * Lookup154: shp_traits::TrieRemoveMutation **/ ShpTraitsTrieRemoveMutation: "Null", /** - * Lookup170: pallet_randomness::pallet::Event + * Lookup158: pallet_randomness::pallet::Event **/ PalletRandomnessEvent: { _enum: { @@ -1739,7 +1703,7 @@ export default { } }, /** - * Lookup171: pallet_payment_streams::pallet::Event + * Lookup159: pallet_payment_streams::pallet::Event **/ PalletPaymentStreamsEvent: { _enum: { @@ -1800,7 +1764,7 @@ export default { } }, /** - * Lookup173: pallet_bucket_nfts::pallet::Event + * Lookup161: pallet_bucket_nfts::pallet::Event **/ PalletBucketNftsEvent: { _enum: { @@ -1821,7 +1785,7 @@ export default { } }, /** - * Lookup174: pallet_nfts::pallet::Event + * Lookup162: pallet_nfts::pallet::Event **/ PalletNftsEvent: { _enum: { @@ -2022,7 +1986,7 @@ export default { } }, /** - * Lookup178: pallet_nfts::types::AttributeNamespace + * Lookup166: pallet_nfts::types::AttributeNamespace **/ PalletNftsAttributeNamespace: { _enum: { @@ -2033,20 +1997,20 @@ export default { } }, /** - * Lookup180: pallet_nfts::types::PriceWithDirection + * Lookup168: pallet_nfts::types::PriceWithDirection **/ PalletNftsPriceWithDirection: { amount: "u128", direction: "PalletNftsPriceDirection" }, /** - * Lookup181: pallet_nfts::types::PriceDirection + * Lookup169: pallet_nfts::types::PriceDirection **/ PalletNftsPriceDirection: { _enum: ["Send", "Receive"] }, /** - * Lookup182: pallet_nfts::types::PalletAttributes + * Lookup170: pallet_nfts::types::PalletAttributes **/ PalletNftsPalletAttributes: { _enum: { @@ -2055,7 +2019,7 @@ export default { } }, /** - * Lookup183: pallet_parameters::pallet::Event + * Lookup171: pallet_parameters::pallet::Event **/ PalletParametersEvent: { _enum: { @@ -2067,7 +2031,7 @@ export default { } }, /** - * Lookup184: storage_hub_runtime::configs::runtime_params::RuntimeParametersKey + * Lookup172: storage_hub_runtime::configs::runtime_params::RuntimeParametersKey **/ StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersKey: { _enum: { @@ -2075,7 +2039,7 @@ export default { } }, /** - * Lookup185: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::ParametersKey + * Lookup173: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::ParametersKey **/ StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParametersKey: { _enum: [ @@ -2099,77 +2063,77 @@ export default { ] }, /** - * Lookup186: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::SlashAmountPerMaxFileSize + * Lookup174: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::SlashAmountPerMaxFileSize **/ StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigSlashAmountPerMaxFileSize: "Null", /** - * Lookup187: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::StakeToChallengePeriod + * Lookup175: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::StakeToChallengePeriod **/ StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigStakeToChallengePeriod: "Null", /** - * Lookup188: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::CheckpointChallengePeriod + * Lookup176: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::CheckpointChallengePeriod **/ StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigCheckpointChallengePeriod: "Null", /** - * Lookup189: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::MinChallengePeriod + * Lookup177: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::MinChallengePeriod **/ StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigMinChallengePeriod: "Null", /** - * Lookup190: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::SystemUtilisationLowerThresholdPercentage + * Lookup178: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::SystemUtilisationLowerThresholdPercentage **/ StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigSystemUtilisationLowerThresholdPercentage: "Null", /** - * Lookup191: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::SystemUtilisationUpperThresholdPercentage + * Lookup179: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::SystemUtilisationUpperThresholdPercentage **/ StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigSystemUtilisationUpperThresholdPercentage: "Null", /** - * Lookup192: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::MostlyStablePrice + * Lookup180: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::MostlyStablePrice **/ StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigMostlyStablePrice: "Null", /** - * Lookup193: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::MaxPrice + * Lookup181: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::MaxPrice **/ StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigMaxPrice: "Null", /** - * Lookup194: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::MinPrice + * Lookup182: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::MinPrice **/ StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigMinPrice: "Null", /** - * Lookup195: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::UpperExponentFactor + * Lookup183: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::UpperExponentFactor **/ StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigUpperExponentFactor: "Null", /** - * Lookup196: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::LowerExponentFactor + * Lookup184: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::LowerExponentFactor **/ StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigLowerExponentFactor: "Null", /** - * Lookup197: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::ZeroSizeBucketFixedRate + * Lookup185: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::ZeroSizeBucketFixedRate **/ StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigZeroSizeBucketFixedRate: "Null", /** - * Lookup198: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::IdealUtilisationRate + * Lookup186: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::IdealUtilisationRate **/ StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigIdealUtilisationRate: "Null", /** - * Lookup199: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::DecayRate + * Lookup187: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::DecayRate **/ StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigDecayRate: "Null", /** - * Lookup200: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::MinimumTreasuryCut + * Lookup188: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::MinimumTreasuryCut **/ StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigMinimumTreasuryCut: "Null", /** - * Lookup201: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::MaximumTreasuryCut + * Lookup189: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::MaximumTreasuryCut **/ StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigMaximumTreasuryCut: "Null", /** - * Lookup202: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::BspStopStoringFilePenalty + * Lookup190: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::BspStopStoringFilePenalty **/ StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigBspStopStoringFilePenalty: "Null", /** - * Lookup204: storage_hub_runtime::configs::runtime_params::RuntimeParametersValue + * Lookup192: storage_hub_runtime::configs::runtime_params::RuntimeParametersValue **/ StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersValue: { _enum: { @@ -2178,7 +2142,7 @@ export default { } }, /** - * Lookup205: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::ParametersValue + * Lookup193: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::ParametersValue **/ StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParametersValue: { _enum: { @@ -2202,7 +2166,7 @@ export default { } }, /** - * Lookup207: frame_system::Phase + * Lookup195: frame_system::Phase **/ FrameSystemPhase: { _enum: { @@ -2212,21 +2176,21 @@ export default { } }, /** - * Lookup210: frame_system::LastRuntimeUpgradeInfo + * Lookup198: frame_system::LastRuntimeUpgradeInfo **/ FrameSystemLastRuntimeUpgradeInfo: { specVersion: "Compact", specName: "Text" }, /** - * Lookup212: frame_system::CodeUpgradeAuthorization + * Lookup200: frame_system::CodeUpgradeAuthorization **/ FrameSystemCodeUpgradeAuthorization: { codeHash: "H256", checkVersion: "bool" }, /** - * Lookup213: frame_system::pallet::Call + * Lookup201: frame_system::pallet::Call **/ FrameSystemCall: { _enum: { @@ -2271,7 +2235,7 @@ export default { } }, /** - * Lookup216: frame_system::limits::BlockWeights + * Lookup204: frame_system::limits::BlockWeights **/ FrameSystemLimitsBlockWeights: { baseBlock: "SpWeightsWeightV2Weight", @@ -2279,7 +2243,7 @@ export default { perClass: "FrameSupportDispatchPerDispatchClassWeightsPerClass" }, /** - * Lookup217: frame_support::dispatch::PerDispatchClass + * Lookup205: frame_support::dispatch::PerDispatchClass **/ FrameSupportDispatchPerDispatchClassWeightsPerClass: { normal: "FrameSystemLimitsWeightsPerClass", @@ -2287,7 +2251,7 @@ export default { mandatory: "FrameSystemLimitsWeightsPerClass" }, /** - * Lookup218: frame_system::limits::WeightsPerClass + * Lookup206: frame_system::limits::WeightsPerClass **/ FrameSystemLimitsWeightsPerClass: { baseExtrinsic: "SpWeightsWeightV2Weight", @@ -2296,13 +2260,13 @@ export default { reserved: "Option" }, /** - * Lookup220: frame_system::limits::BlockLength + * Lookup208: frame_system::limits::BlockLength **/ FrameSystemLimitsBlockLength: { max: "FrameSupportDispatchPerDispatchClassU32" }, /** - * Lookup221: frame_support::dispatch::PerDispatchClass + * Lookup209: frame_support::dispatch::PerDispatchClass **/ FrameSupportDispatchPerDispatchClassU32: { normal: "u32", @@ -2310,14 +2274,14 @@ export default { mandatory: "u32" }, /** - * Lookup222: sp_weights::RuntimeDbWeight + * Lookup210: sp_weights::RuntimeDbWeight **/ SpWeightsRuntimeDbWeight: { read: "u64", write: "u64" }, /** - * Lookup223: sp_version::RuntimeVersion + * Lookup211: sp_version::RuntimeVersion **/ SpVersionRuntimeVersion: { specName: "Text", @@ -2330,7 +2294,7 @@ export default { stateVersion: "u8" }, /** - * Lookup228: frame_system::pallet::Error + * Lookup216: frame_system::pallet::Error **/ FrameSystemError: { _enum: [ @@ -2346,7 +2310,7 @@ export default { ] }, /** - * Lookup230: cumulus_pallet_parachain_system::unincluded_segment::Ancestor + * Lookup218: cumulus_pallet_parachain_system::unincluded_segment::Ancestor **/ CumulusPalletParachainSystemUnincludedSegmentAncestor: { usedBandwidth: "CumulusPalletParachainSystemUnincludedSegmentUsedBandwidth", @@ -2354,7 +2318,7 @@ export default { consumedGoAheadSignal: "Option" }, /** - * Lookup231: cumulus_pallet_parachain_system::unincluded_segment::UsedBandwidth + * Lookup219: cumulus_pallet_parachain_system::unincluded_segment::UsedBandwidth **/ CumulusPalletParachainSystemUnincludedSegmentUsedBandwidth: { umpMsgCount: "u32", @@ -2362,20 +2326,20 @@ export default { hrmpOutgoing: "BTreeMap" }, /** - * Lookup233: cumulus_pallet_parachain_system::unincluded_segment::HrmpChannelUpdate + * Lookup221: cumulus_pallet_parachain_system::unincluded_segment::HrmpChannelUpdate **/ CumulusPalletParachainSystemUnincludedSegmentHrmpChannelUpdate: { msgCount: "u32", totalBytes: "u32" }, /** - * Lookup238: polkadot_primitives::v8::UpgradeGoAhead + * Lookup225: polkadot_primitives::v8::UpgradeGoAhead **/ PolkadotPrimitivesV8UpgradeGoAhead: { _enum: ["Abort", "GoAhead"] }, /** - * Lookup239: cumulus_pallet_parachain_system::unincluded_segment::SegmentTracker + * Lookup226: cumulus_pallet_parachain_system::unincluded_segment::SegmentTracker **/ CumulusPalletParachainSystemUnincludedSegmentSegmentTracker: { usedBandwidth: "CumulusPalletParachainSystemUnincludedSegmentUsedBandwidth", @@ -2383,7 +2347,7 @@ export default { consumedGoAheadSignal: "Option" }, /** - * Lookup240: polkadot_primitives::v8::PersistedValidationData + * Lookup227: polkadot_primitives::v8::PersistedValidationData **/ PolkadotPrimitivesV8PersistedValidationData: { parentHead: "Bytes", @@ -2392,19 +2356,19 @@ export default { maxPovSize: "u32" }, /** - * Lookup243: polkadot_primitives::v8::UpgradeRestriction + * Lookup230: polkadot_primitives::v8::UpgradeRestriction **/ PolkadotPrimitivesV8UpgradeRestriction: { _enum: ["Present"] }, /** - * Lookup244: sp_trie::storage_proof::StorageProof + * Lookup231: sp_trie::storage_proof::StorageProof **/ SpTrieStorageProof: { trieNodes: "BTreeSet" }, /** - * Lookup246: cumulus_pallet_parachain_system::relay_state_snapshot::MessagingStateSnapshot + * Lookup233: cumulus_pallet_parachain_system::relay_state_snapshot::MessagingStateSnapshot **/ CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot: { dmqMqcHead: "H256", @@ -2414,14 +2378,14 @@ export default { egressChannels: "Vec<(u32,PolkadotPrimitivesV8AbridgedHrmpChannel)>" }, /** - * Lookup247: cumulus_pallet_parachain_system::relay_state_snapshot::RelayDispatchQueueRemainingCapacity + * Lookup234: cumulus_pallet_parachain_system::relay_state_snapshot::RelayDispatchQueueRemainingCapacity **/ CumulusPalletParachainSystemRelayStateSnapshotRelayDispatchQueueRemainingCapacity: { remainingCount: "u32", remainingSize: "u32" }, /** - * Lookup250: polkadot_primitives::v8::AbridgedHrmpChannel + * Lookup237: polkadot_primitives::v8::AbridgedHrmpChannel **/ PolkadotPrimitivesV8AbridgedHrmpChannel: { maxCapacity: "u32", @@ -2432,7 +2396,7 @@ export default { mqcHead: "Option" }, /** - * Lookup251: polkadot_primitives::v8::AbridgedHostConfiguration + * Lookup238: polkadot_primitives::v8::AbridgedHostConfiguration **/ PolkadotPrimitivesV8AbridgedHostConfiguration: { maxCodeSize: "u32", @@ -2447,21 +2411,21 @@ export default { asyncBackingParams: "PolkadotPrimitivesV8AsyncBackingAsyncBackingParams" }, /** - * Lookup252: polkadot_primitives::v8::async_backing::AsyncBackingParams + * Lookup239: polkadot_primitives::v8::async_backing::AsyncBackingParams **/ PolkadotPrimitivesV8AsyncBackingAsyncBackingParams: { maxCandidateDepth: "u32", allowedAncestryLen: "u32" }, /** - * Lookup258: polkadot_core_primitives::OutboundHrmpMessage + * Lookup245: polkadot_core_primitives::OutboundHrmpMessage **/ PolkadotCorePrimitivesOutboundHrmpMessage: { recipient: "u32", data: "Bytes" }, /** - * Lookup260: cumulus_pallet_parachain_system::pallet::Call + * Lookup247: cumulus_pallet_parachain_system::pallet::Call **/ CumulusPalletParachainSystemCall: { _enum: { @@ -2474,7 +2438,7 @@ export default { } }, /** - * Lookup261: cumulus_primitives_parachain_inherent::ParachainInherentData + * Lookup248: cumulus_primitives_parachain_inherent::ParachainInherentData **/ CumulusPrimitivesParachainInherentParachainInherentData: { validationData: "PolkadotPrimitivesV8PersistedValidationData", @@ -2483,21 +2447,21 @@ export default { horizontalMessages: "BTreeMap>" }, /** - * Lookup263: polkadot_core_primitives::InboundDownwardMessage + * Lookup250: polkadot_core_primitives::InboundDownwardMessage **/ PolkadotCorePrimitivesInboundDownwardMessage: { sentAt: "u32", msg: "Bytes" }, /** - * Lookup266: polkadot_core_primitives::InboundHrmpMessage + * Lookup253: polkadot_core_primitives::InboundHrmpMessage **/ PolkadotCorePrimitivesInboundHrmpMessage: { sentAt: "u32", data: "Bytes" }, /** - * Lookup269: cumulus_pallet_parachain_system::pallet::Error + * Lookup256: cumulus_pallet_parachain_system::pallet::Error **/ CumulusPalletParachainSystemError: { _enum: [ @@ -2512,7 +2476,7 @@ export default { ] }, /** - * Lookup270: pallet_timestamp::pallet::Call + * Lookup257: pallet_timestamp::pallet::Call **/ PalletTimestampCall: { _enum: { @@ -2522,11 +2486,11 @@ export default { } }, /** - * Lookup271: staging_parachain_info::pallet::Call + * Lookup258: staging_parachain_info::pallet::Call **/ StagingParachainInfoCall: "Null", /** - * Lookup273: pallet_balances::types::BalanceLock + * Lookup260: pallet_balances::types::BalanceLock **/ PalletBalancesBalanceLock: { id: "[u8;8]", @@ -2534,20 +2498,20 @@ export default { reasons: "PalletBalancesReasons" }, /** - * Lookup274: pallet_balances::types::Reasons + * Lookup261: pallet_balances::types::Reasons **/ PalletBalancesReasons: { _enum: ["Fee", "Misc", "All"] }, /** - * Lookup277: pallet_balances::types::ReserveData + * Lookup264: pallet_balances::types::ReserveData **/ PalletBalancesReserveData: { id: "[u8;8]", amount: "u128" }, /** - * Lookup281: storage_hub_runtime::RuntimeHoldReason + * Lookup268: storage_hub_runtime::RuntimeHoldReason **/ StorageHubRuntimeRuntimeHoldReason: { _enum: { @@ -2599,32 +2563,32 @@ export default { } }, /** - * Lookup282: pallet_storage_providers::pallet::HoldReason + * Lookup269: pallet_storage_providers::pallet::HoldReason **/ PalletStorageProvidersHoldReason: { _enum: ["StorageProviderDeposit", "BucketDeposit"] }, /** - * Lookup283: pallet_file_system::pallet::HoldReason + * Lookup270: pallet_file_system::pallet::HoldReason **/ PalletFileSystemHoldReason: { _enum: ["StorageRequestCreationHold"] }, /** - * Lookup284: pallet_payment_streams::pallet::HoldReason + * Lookup271: pallet_payment_streams::pallet::HoldReason **/ PalletPaymentStreamsHoldReason: { _enum: ["PaymentStreamDeposit"] }, /** - * Lookup287: frame_support::traits::tokens::misc::IdAmount + * Lookup274: frame_support::traits::tokens::misc::IdAmount **/ FrameSupportTokensMiscIdAmount: { id: "Null", amount: "u128" }, /** - * Lookup289: pallet_balances::pallet::Call + * Lookup276: pallet_balances::pallet::Call **/ PalletBalancesCall: { _enum: { @@ -2669,13 +2633,13 @@ export default { } }, /** - * Lookup292: pallet_balances::types::AdjustmentDirection + * Lookup279: pallet_balances::types::AdjustmentDirection **/ PalletBalancesAdjustmentDirection: { _enum: ["Increase", "Decrease"] }, /** - * Lookup293: pallet_balances::pallet::Error + * Lookup280: pallet_balances::pallet::Error **/ PalletBalancesError: { _enum: [ @@ -2694,13 +2658,13 @@ export default { ] }, /** - * Lookup294: pallet_transaction_payment::Releases + * Lookup281: pallet_transaction_payment::Releases **/ PalletTransactionPaymentReleases: { _enum: ["V1Ancient", "V2"] }, /** - * Lookup295: pallet_sudo::pallet::Call + * Lookup282: pallet_sudo::pallet::Call **/ PalletSudoCall: { _enum: { @@ -2725,7 +2689,7 @@ export default { } }, /** - * Lookup297: pallet_collator_selection::pallet::Call + * Lookup284: pallet_collator_selection::pallet::Call **/ PalletCollatorSelectionCall: { _enum: { @@ -2759,7 +2723,7 @@ export default { } }, /** - * Lookup298: pallet_session::pallet::Call + * Lookup285: pallet_session::pallet::Call **/ PalletSessionCall: { _enum: { @@ -2774,17 +2738,17 @@ export default { } }, /** - * Lookup299: storage_hub_runtime::SessionKeys + * Lookup286: storage_hub_runtime::SessionKeys **/ StorageHubRuntimeSessionKeys: { aura: "SpConsensusAuraSr25519AppSr25519Public" }, /** - * Lookup300: sp_consensus_aura::sr25519::app_sr25519::Public + * Lookup287: sp_consensus_aura::sr25519::app_sr25519::Public **/ SpConsensusAuraSr25519AppSr25519Public: "[u8;32]", /** - * Lookup301: cumulus_pallet_xcmp_queue::pallet::Call + * Lookup288: cumulus_pallet_xcmp_queue::pallet::Call **/ CumulusPalletXcmpQueueCall: { _enum: { @@ -2812,7 +2776,7 @@ export default { } }, /** - * Lookup302: pallet_xcm::pallet::Call + * Lookup289: pallet_xcm::pallet::Call **/ PalletXcmCall: { _enum: { @@ -2889,7 +2853,7 @@ export default { } }, /** - * Lookup303: xcm::VersionedXcm + * Lookup290: xcm::VersionedXcm **/ XcmVersionedXcm: { _enum: { @@ -2901,11 +2865,11 @@ export default { } }, /** - * Lookup304: xcm::v2::Xcm + * Lookup291: xcm::v2::Xcm **/ XcmV2Xcm: "Vec", /** - * Lookup306: xcm::v2::Instruction + * Lookup293: xcm::v2::Instruction **/ XcmV2Instruction: { _enum: { @@ -3003,7 +2967,7 @@ export default { } }, /** - * Lookup307: xcm::v2::Response + * Lookup294: xcm::v2::Response **/ XcmV2Response: { _enum: { @@ -3014,7 +2978,7 @@ export default { } }, /** - * Lookup310: xcm::v2::traits::Error + * Lookup297: xcm::v2::traits::Error **/ XcmV2TraitsError: { _enum: { @@ -3047,13 +3011,13 @@ export default { } }, /** - * Lookup311: xcm::v2::OriginKind + * Lookup298: xcm::v2::OriginKind **/ XcmV2OriginKind: { _enum: ["Native", "SovereignAccount", "Superuser", "Xcm"] }, /** - * Lookup312: xcm::v2::multiasset::MultiAssetFilter + * Lookup299: xcm::v2::multiasset::MultiAssetFilter **/ XcmV2MultiassetMultiAssetFilter: { _enum: { @@ -3062,7 +3026,7 @@ export default { } }, /** - * Lookup313: xcm::v2::multiasset::WildMultiAsset + * Lookup300: xcm::v2::multiasset::WildMultiAsset **/ XcmV2MultiassetWildMultiAsset: { _enum: { @@ -3074,13 +3038,13 @@ export default { } }, /** - * Lookup314: xcm::v2::multiasset::WildFungibility + * Lookup301: xcm::v2::multiasset::WildFungibility **/ XcmV2MultiassetWildFungibility: { _enum: ["Fungible", "NonFungible"] }, /** - * Lookup315: xcm::v2::WeightLimit + * Lookup302: xcm::v2::WeightLimit **/ XcmV2WeightLimit: { _enum: { @@ -3089,11 +3053,11 @@ export default { } }, /** - * Lookup316: xcm::v3::Xcm + * Lookup303: xcm::v3::Xcm **/ XcmV3Xcm: "Vec", /** - * Lookup318: xcm::v3::Instruction + * Lookup305: xcm::v3::Instruction **/ XcmV3Instruction: { _enum: { @@ -3235,7 +3199,7 @@ export default { } }, /** - * Lookup319: xcm::v3::Response + * Lookup306: xcm::v3::Response **/ XcmV3Response: { _enum: { @@ -3248,7 +3212,7 @@ export default { } }, /** - * Lookup321: xcm::v3::PalletInfo + * Lookup308: xcm::v3::PalletInfo **/ XcmV3PalletInfo: { index: "Compact", @@ -3259,7 +3223,7 @@ export default { patch: "Compact" }, /** - * Lookup325: xcm::v3::QueryResponseInfo + * Lookup312: xcm::v3::QueryResponseInfo **/ XcmV3QueryResponseInfo: { destination: "StagingXcmV3MultiLocation", @@ -3267,7 +3231,7 @@ export default { maxWeight: "SpWeightsWeightV2Weight" }, /** - * Lookup326: xcm::v3::multiasset::MultiAssetFilter + * Lookup313: xcm::v3::multiasset::MultiAssetFilter **/ XcmV3MultiassetMultiAssetFilter: { _enum: { @@ -3276,7 +3240,7 @@ export default { } }, /** - * Lookup327: xcm::v3::multiasset::WildMultiAsset + * Lookup314: xcm::v3::multiasset::WildMultiAsset **/ XcmV3MultiassetWildMultiAsset: { _enum: { @@ -3294,13 +3258,13 @@ export default { } }, /** - * Lookup328: xcm::v3::multiasset::WildFungibility + * Lookup315: xcm::v3::multiasset::WildFungibility **/ XcmV3MultiassetWildFungibility: { _enum: ["Fungible", "NonFungible"] }, /** - * Lookup340: staging_xcm_executor::traits::asset_transfer::TransferType + * Lookup327: staging_xcm_executor::traits::asset_transfer::TransferType **/ StagingXcmExecutorAssetTransferTransferType: { _enum: { @@ -3311,7 +3275,7 @@ export default { } }, /** - * Lookup341: xcm::VersionedAssetId + * Lookup328: xcm::VersionedAssetId **/ XcmVersionedAssetId: { _enum: { @@ -3323,11 +3287,11 @@ export default { } }, /** - * Lookup342: cumulus_pallet_xcm::pallet::Call + * Lookup329: cumulus_pallet_xcm::pallet::Call **/ CumulusPalletXcmCall: "Null", /** - * Lookup343: pallet_message_queue::pallet::Call + * Lookup330: pallet_message_queue::pallet::Call **/ PalletMessageQueueCall: { _enum: { @@ -3344,7 +3308,7 @@ export default { } }, /** - * Lookup344: pallet_storage_providers::pallet::Call + * Lookup331: pallet_storage_providers::pallet::Call **/ PalletStorageProvidersCall: { _enum: { @@ -3408,15 +3372,15 @@ export default { } }, /** - * Lookup345: pallet_file_system::pallet::Call + * Lookup332: pallet_file_system::pallet::Call **/ PalletFileSystemCall: { _enum: { create_bucket: { - mspId: "H256", + mspId: "Option", name: "Bytes", private: "bool", - valuePropId: "H256" + valuePropId: "Option" }, request_move_bucket: { bucketId: "H256", @@ -3444,14 +3408,14 @@ export default { location: "Bytes", fingerprint: "H256", size_: "u64", - mspId: "H256", + mspId: "Option", peerIds: "Vec" }, revoke_storage_request: { fileKey: "H256" }, msp_respond_storage_requests_multiple_buckets: { - fileKeyResponsesInput: "Vec<(H256,PalletFileSystemMspStorageRequestResponse)>" + storageRequestMspResponse: "Vec" }, msp_stop_storing_bucket: { bucketId: "H256" @@ -3516,27 +3480,42 @@ export default { } }, /** - * Lookup346: pallet_file_system::types::BucketMoveRequestResponse + * Lookup333: pallet_file_system::types::BucketMoveRequestResponse **/ PalletFileSystemBucketMoveRequestResponse: { _enum: ["Accepted", "Rejected"] }, /** - * Lookup349: pallet_file_system::types::MspStorageRequestResponse + * Lookup335: pallet_file_system::types::StorageRequestMspBucketResponse **/ - PalletFileSystemMspStorageRequestResponse: { - accept: "Option", - reject: "Option>" + PalletFileSystemStorageRequestMspBucketResponse: { + bucketId: "H256", + accept: "Option", + reject: "Vec" }, /** - * Lookup351: pallet_file_system::types::AcceptedStorageRequestParameters + * Lookup337: pallet_file_system::types::StorageRequestMspAcceptedFileKeys **/ - PalletFileSystemAcceptedStorageRequestParameters: { - fileKeysAndProofs: "Vec<(H256,ShpFileKeyVerifierFileKeyProof)>", + PalletFileSystemStorageRequestMspAcceptedFileKeys: { + fileKeysAndProofs: "Vec", nonInclusionForestProof: "SpTrieStorageProofCompactProof" }, /** - * Lookup358: pallet_proofs_dealer::pallet::Call + * Lookup339: pallet_file_system::types::FileKeyWithProof + **/ + PalletFileSystemFileKeyWithProof: { + fileKey: "H256", + proof: "ShpFileKeyVerifierFileKeyProof" + }, + /** + * Lookup342: pallet_file_system::types::RejectedStorageRequest + **/ + PalletFileSystemRejectedStorageRequest: { + fileKey: "H256", + reason: "PalletFileSystemRejectedStorageRequestReason" + }, + /** + * Lookup349: pallet_proofs_dealer::pallet::Call **/ PalletProofsDealerCall: { _enum: { @@ -3556,13 +3535,13 @@ export default { } }, /** - * Lookup359: pallet_randomness::pallet::Call + * Lookup350: pallet_randomness::pallet::Call **/ PalletRandomnessCall: { _enum: ["set_babe_randomness"] }, /** - * Lookup360: pallet_payment_streams::pallet::Call + * Lookup351: pallet_payment_streams::pallet::Call **/ PalletPaymentStreamsCall: { _enum: { @@ -3605,7 +3584,7 @@ export default { } }, /** - * Lookup361: pallet_bucket_nfts::pallet::Call + * Lookup352: pallet_bucket_nfts::pallet::Call **/ PalletBucketNftsCall: { _enum: { @@ -3623,7 +3602,7 @@ export default { } }, /** - * Lookup363: pallet_nfts::pallet::Call + * Lookup354: pallet_nfts::pallet::Call **/ PalletNftsCall: { _enum: { @@ -3820,7 +3799,7 @@ export default { } }, /** - * Lookup364: pallet_nfts::types::CollectionConfig + * Lookup355: pallet_nfts::types::CollectionConfig **/ PalletNftsCollectionConfig: { settings: "u64", @@ -3828,7 +3807,7 @@ export default { mintSettings: "PalletNftsMintSettings" }, /** - * Lookup366: pallet_nfts::types::CollectionSetting + * Lookup357: pallet_nfts::types::CollectionSetting **/ PalletNftsCollectionSetting: { _enum: [ @@ -3852,7 +3831,7 @@ export default { ] }, /** - * Lookup367: pallet_nfts::types::MintSettings + * Lookup358: pallet_nfts::types::MintSettings **/ PalletNftsMintSettings: { mintType: "PalletNftsMintType", @@ -3862,7 +3841,7 @@ export default { defaultItemSettings: "u64" }, /** - * Lookup368: pallet_nfts::types::MintType + * Lookup359: pallet_nfts::types::MintType **/ PalletNftsMintType: { _enum: { @@ -3872,13 +3851,13 @@ export default { } }, /** - * Lookup371: pallet_nfts::types::ItemSetting + * Lookup362: pallet_nfts::types::ItemSetting **/ PalletNftsItemSetting: { _enum: ["__Unused0", "Transferable", "UnlockedMetadata", "__Unused3", "UnlockedAttributes"] }, /** - * Lookup372: pallet_nfts::types::DestroyWitness + * Lookup363: pallet_nfts::types::DestroyWitness **/ PalletNftsDestroyWitness: { itemMetadatas: "Compact", @@ -3886,26 +3865,26 @@ export default { attributes: "Compact" }, /** - * Lookup374: pallet_nfts::types::MintWitness + * Lookup365: pallet_nfts::types::MintWitness **/ PalletNftsMintWitness: { ownedItem: "Option", mintPrice: "Option" }, /** - * Lookup375: pallet_nfts::types::ItemConfig + * Lookup366: pallet_nfts::types::ItemConfig **/ PalletNftsItemConfig: { settings: "u64" }, /** - * Lookup377: pallet_nfts::types::CancelAttributesApprovalWitness + * Lookup368: pallet_nfts::types::CancelAttributesApprovalWitness **/ PalletNftsCancelAttributesApprovalWitness: { accountAttributes: "u32" }, /** - * Lookup379: pallet_nfts::types::ItemTip + * Lookup370: pallet_nfts::types::ItemTip **/ PalletNftsItemTip: { collection: "u32", @@ -3914,7 +3893,7 @@ export default { amount: "u128" }, /** - * Lookup381: pallet_nfts::types::PreSignedMint + * Lookup372: pallet_nfts::types::PreSignedMint **/ PalletNftsPreSignedMint: { collection: "u32", @@ -3926,7 +3905,7 @@ export default { mintPrice: "Option" }, /** - * Lookup382: sp_runtime::MultiSignature + * Lookup373: sp_runtime::MultiSignature **/ SpRuntimeMultiSignature: { _enum: { @@ -3936,7 +3915,7 @@ export default { } }, /** - * Lookup385: pallet_nfts::types::PreSignedAttributes + * Lookup376: pallet_nfts::types::PreSignedAttributes **/ PalletNftsPreSignedAttributes: { collection: "u32", @@ -3946,7 +3925,7 @@ export default { deadline: "u32" }, /** - * Lookup386: pallet_parameters::pallet::Call + * Lookup377: pallet_parameters::pallet::Call **/ PalletParametersCall: { _enum: { @@ -3956,7 +3935,7 @@ export default { } }, /** - * Lookup387: storage_hub_runtime::configs::runtime_params::RuntimeParameters + * Lookup378: storage_hub_runtime::configs::runtime_params::RuntimeParameters **/ StorageHubRuntimeConfigsRuntimeParamsRuntimeParameters: { _enum: { @@ -3964,7 +3943,7 @@ export default { } }, /** - * Lookup388: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::Parameters + * Lookup379: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::Parameters **/ StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParameters: { _enum: { @@ -4005,20 +3984,20 @@ export default { } }, /** - * Lookup390: pallet_sudo::pallet::Error + * Lookup381: pallet_sudo::pallet::Error **/ PalletSudoError: { _enum: ["RequireSudo"] }, /** - * Lookup393: pallet_collator_selection::pallet::CandidateInfo + * Lookup384: pallet_collator_selection::pallet::CandidateInfo **/ PalletCollatorSelectionCandidateInfo: { who: "AccountId32", deposit: "u128" }, /** - * Lookup395: pallet_collator_selection::pallet::Error + * Lookup386: pallet_collator_selection::pallet::Error **/ PalletCollatorSelectionError: { _enum: [ @@ -4042,17 +4021,17 @@ export default { ] }, /** - * Lookup399: sp_core::crypto::KeyTypeId + * Lookup390: sp_core::crypto::KeyTypeId **/ SpCoreCryptoKeyTypeId: "[u8;4]", /** - * Lookup400: pallet_session::pallet::Error + * Lookup391: pallet_session::pallet::Error **/ PalletSessionError: { _enum: ["InvalidProof", "NoAssociatedValidatorId", "DuplicatedKey", "NoKeys", "NoAccount"] }, /** - * Lookup409: cumulus_pallet_xcmp_queue::OutboundChannelDetails + * Lookup400: cumulus_pallet_xcmp_queue::OutboundChannelDetails **/ CumulusPalletXcmpQueueOutboundChannelDetails: { recipient: "u32", @@ -4062,13 +4041,13 @@ export default { lastIndex: "u16" }, /** - * Lookup410: cumulus_pallet_xcmp_queue::OutboundState + * Lookup401: cumulus_pallet_xcmp_queue::OutboundState **/ CumulusPalletXcmpQueueOutboundState: { _enum: ["Ok", "Suspended"] }, /** - * Lookup414: cumulus_pallet_xcmp_queue::QueueConfigData + * Lookup405: cumulus_pallet_xcmp_queue::QueueConfigData **/ CumulusPalletXcmpQueueQueueConfigData: { suspendThreshold: "u32", @@ -4076,7 +4055,7 @@ export default { resumeThreshold: "u32" }, /** - * Lookup415: cumulus_pallet_xcmp_queue::pallet::Error + * Lookup406: cumulus_pallet_xcmp_queue::pallet::Error **/ CumulusPalletXcmpQueueError: { _enum: [ @@ -4088,7 +4067,7 @@ export default { ] }, /** - * Lookup416: pallet_xcm::pallet::QueryStatus + * Lookup407: pallet_xcm::pallet::QueryStatus **/ PalletXcmQueryStatus: { _enum: { @@ -4109,7 +4088,7 @@ export default { } }, /** - * Lookup420: xcm::VersionedResponse + * Lookup411: xcm::VersionedResponse **/ XcmVersionedResponse: { _enum: { @@ -4121,7 +4100,7 @@ export default { } }, /** - * Lookup426: pallet_xcm::pallet::VersionMigrationStage + * Lookup417: pallet_xcm::pallet::VersionMigrationStage **/ PalletXcmVersionMigrationStage: { _enum: { @@ -4132,7 +4111,7 @@ export default { } }, /** - * Lookup429: pallet_xcm::pallet::RemoteLockedFungibleRecord + * Lookup420: pallet_xcm::pallet::RemoteLockedFungibleRecord **/ PalletXcmRemoteLockedFungibleRecord: { amount: "u128", @@ -4141,7 +4120,7 @@ export default { consumers: "Vec<(Null,u128)>" }, /** - * Lookup436: pallet_xcm::pallet::Error + * Lookup427: pallet_xcm::pallet::Error **/ PalletXcmError: { _enum: [ @@ -4173,7 +4152,7 @@ export default { ] }, /** - * Lookup437: pallet_message_queue::BookState + * Lookup428: pallet_message_queue::BookState **/ PalletMessageQueueBookState: { _alias: { @@ -4187,14 +4166,14 @@ export default { size_: "u64" }, /** - * Lookup439: pallet_message_queue::Neighbours + * Lookup430: pallet_message_queue::Neighbours **/ PalletMessageQueueNeighbours: { prev: "CumulusPrimitivesCoreAggregateMessageOrigin", next: "CumulusPrimitivesCoreAggregateMessageOrigin" }, /** - * Lookup441: pallet_message_queue::Page + * Lookup432: pallet_message_queue::Page **/ PalletMessageQueuePage: { remaining: "u32", @@ -4205,7 +4184,7 @@ export default { heap: "Bytes" }, /** - * Lookup443: pallet_message_queue::pallet::Error + * Lookup434: pallet_message_queue::pallet::Error **/ PalletMessageQueueError: { _enum: [ @@ -4221,14 +4200,14 @@ export default { ] }, /** - * Lookup444: pallet_storage_providers::types::SignUpRequest + * Lookup435: pallet_storage_providers::types::SignUpRequest **/ PalletStorageProvidersSignUpRequest: { spSignUpRequest: "PalletStorageProvidersSignUpRequestSpParams", at: "u32" }, /** - * Lookup445: pallet_storage_providers::types::SignUpRequestSpParams + * Lookup436: pallet_storage_providers::types::SignUpRequestSpParams **/ PalletStorageProvidersSignUpRequestSpParams: { _enum: { @@ -4237,7 +4216,7 @@ export default { } }, /** - * Lookup446: pallet_storage_providers::types::BackupStorageProvider + * Lookup437: pallet_storage_providers::types::BackupStorageProvider **/ PalletStorageProvidersBackupStorageProvider: { capacity: "u64", @@ -4251,14 +4230,14 @@ export default { signUpBlock: "u32" }, /** - * Lookup447: pallet_storage_providers::types::MainStorageProviderSignUpRequest + * Lookup438: pallet_storage_providers::types::MainStorageProviderSignUpRequest **/ PalletStorageProvidersMainStorageProviderSignUpRequest: { mspInfo: "PalletStorageProvidersMainStorageProvider", valueProp: "PalletStorageProvidersValueProposition" }, /** - * Lookup448: pallet_storage_providers::types::MainStorageProvider + * Lookup439: pallet_storage_providers::types::MainStorageProvider **/ PalletStorageProvidersMainStorageProvider: { capacity: "u64", @@ -4270,7 +4249,7 @@ export default { signUpBlock: "u32" }, /** - * Lookup449: pallet_storage_providers::types::Bucket + * Lookup440: pallet_storage_providers::types::Bucket **/ PalletStorageProvidersBucket: { _alias: { @@ -4282,10 +4261,10 @@ export default { private: "bool", readAccessGroupId: "Option", size_: "u64", - valuePropId: "H256" + valuePropId: "Option" }, /** - * Lookup451: pallet_storage_providers::pallet::Error + * Lookup442: pallet_storage_providers::pallet::Error **/ PalletStorageProvidersError: { _enum: [ @@ -4326,13 +4305,14 @@ export default { "FixedRatePaymentStreamNotFound", "MspAlreadyAssignedToBucket", "BucketSizeExceedsLimit", + "BucketHasNoValueProposition", "InvalidEncodedFileMetadata", "InvalidEncodedAccountId", "PaymentStreamNotFound" ] }, /** - * Lookup452: pallet_file_system::types::StorageRequestMetadata + * Lookup443: pallet_file_system::types::StorageRequestMetadata **/ PalletFileSystemStorageRequestMetadata: { _alias: { @@ -4351,19 +4331,19 @@ export default { bspsVolunteered: "u32" }, /** - * Lookup455: pallet_file_system::types::StorageRequestBspsMetadata + * Lookup446: pallet_file_system::types::StorageRequestBspsMetadata **/ PalletFileSystemStorageRequestBspsMetadata: { confirmed: "bool" }, /** - * Lookup464: pallet_file_system::types::MoveBucketRequestMetadata + * Lookup455: pallet_file_system::types::MoveBucketRequestMetadata **/ PalletFileSystemMoveBucketRequestMetadata: { requester: "AccountId32" }, /** - * Lookup465: pallet_file_system::pallet::Error + * Lookup456: pallet_file_system::pallet::Error **/ PalletFileSystemError: { _enum: [ @@ -4435,7 +4415,7 @@ export default { ] }, /** - * Lookup471: pallet_proofs_dealer::pallet::Error + * Lookup462: pallet_proofs_dealer::pallet::Error **/ PalletProofsDealerError: { _enum: [ @@ -4464,7 +4444,7 @@ export default { ] }, /** - * Lookup474: pallet_payment_streams::types::FixedRatePaymentStream + * Lookup465: pallet_payment_streams::types::FixedRatePaymentStream **/ PalletPaymentStreamsFixedRatePaymentStream: { rate: "u128", @@ -4473,7 +4453,7 @@ export default { outOfFundsTick: "Option" }, /** - * Lookup475: pallet_payment_streams::types::DynamicRatePaymentStream + * Lookup466: pallet_payment_streams::types::DynamicRatePaymentStream **/ PalletPaymentStreamsDynamicRatePaymentStream: { amountProvided: "u64", @@ -4482,14 +4462,14 @@ export default { outOfFundsTick: "Option" }, /** - * Lookup476: pallet_payment_streams::types::ProviderLastChargeableInfo + * Lookup467: pallet_payment_streams::types::ProviderLastChargeableInfo **/ PalletPaymentStreamsProviderLastChargeableInfo: { lastChargeableTick: "u32", priceIndex: "u128" }, /** - * Lookup477: pallet_payment_streams::pallet::Error + * Lookup468: pallet_payment_streams::pallet::Error **/ PalletPaymentStreamsError: { _enum: [ @@ -4512,7 +4492,7 @@ export default { ] }, /** - * Lookup478: pallet_bucket_nfts::pallet::Error + * Lookup469: pallet_bucket_nfts::pallet::Error **/ PalletBucketNftsError: { _enum: [ @@ -4523,7 +4503,7 @@ export default { ] }, /** - * Lookup479: pallet_nfts::types::CollectionDetails + * Lookup470: pallet_nfts::types::CollectionDetails **/ PalletNftsCollectionDetails: { owner: "AccountId32", @@ -4534,13 +4514,13 @@ export default { attributes: "u32" }, /** - * Lookup484: pallet_nfts::types::CollectionRole + * Lookup475: pallet_nfts::types::CollectionRole **/ PalletNftsCollectionRole: { _enum: ["__Unused0", "Issuer", "Freezer", "__Unused3", "Admin"] }, /** - * Lookup485: pallet_nfts::types::ItemDetails, bounded_collections::bounded_btree_map::BoundedBTreeMap, S>> + * Lookup476: pallet_nfts::types::ItemDetails, bounded_collections::bounded_btree_map::BoundedBTreeMap, S>> **/ PalletNftsItemDetails: { owner: "AccountId32", @@ -4548,42 +4528,42 @@ export default { deposit: "PalletNftsItemDeposit" }, /** - * Lookup486: pallet_nfts::types::ItemDeposit + * Lookup477: pallet_nfts::types::ItemDeposit **/ PalletNftsItemDeposit: { account: "AccountId32", amount: "u128" }, /** - * Lookup491: pallet_nfts::types::CollectionMetadata + * Lookup482: pallet_nfts::types::CollectionMetadata **/ PalletNftsCollectionMetadata: { deposit: "u128", data: "Bytes" }, /** - * Lookup492: pallet_nfts::types::ItemMetadata, StringLimit> + * Lookup483: pallet_nfts::types::ItemMetadata, StringLimit> **/ PalletNftsItemMetadata: { deposit: "PalletNftsItemMetadataDeposit", data: "Bytes" }, /** - * Lookup493: pallet_nfts::types::ItemMetadataDeposit + * Lookup484: pallet_nfts::types::ItemMetadataDeposit **/ PalletNftsItemMetadataDeposit: { account: "Option", amount: "u128" }, /** - * Lookup496: pallet_nfts::types::AttributeDeposit + * Lookup487: pallet_nfts::types::AttributeDeposit **/ PalletNftsAttributeDeposit: { account: "Option", amount: "u128" }, /** - * Lookup500: pallet_nfts::types::PendingSwap, Deadline> + * Lookup491: pallet_nfts::types::PendingSwap, Deadline> **/ PalletNftsPendingSwap: { desiredCollection: "u32", @@ -4592,7 +4572,7 @@ export default { deadline: "u32" }, /** - * Lookup502: pallet_nfts::types::PalletFeature + * Lookup493: pallet_nfts::types::PalletFeature **/ PalletNftsPalletFeature: { _enum: [ @@ -4608,7 +4588,7 @@ export default { ] }, /** - * Lookup503: pallet_nfts::pallet::Error + * Lookup494: pallet_nfts::pallet::Error **/ PalletNftsError: { _enum: [ @@ -4660,51 +4640,51 @@ export default { ] }, /** - * Lookup506: frame_system::extensions::check_non_zero_sender::CheckNonZeroSender + * Lookup497: frame_system::extensions::check_non_zero_sender::CheckNonZeroSender **/ FrameSystemExtensionsCheckNonZeroSender: "Null", /** - * Lookup507: frame_system::extensions::check_spec_version::CheckSpecVersion + * Lookup498: frame_system::extensions::check_spec_version::CheckSpecVersion **/ FrameSystemExtensionsCheckSpecVersion: "Null", /** - * Lookup508: frame_system::extensions::check_tx_version::CheckTxVersion + * Lookup499: frame_system::extensions::check_tx_version::CheckTxVersion **/ FrameSystemExtensionsCheckTxVersion: "Null", /** - * Lookup509: frame_system::extensions::check_genesis::CheckGenesis + * Lookup500: frame_system::extensions::check_genesis::CheckGenesis **/ FrameSystemExtensionsCheckGenesis: "Null", /** - * Lookup512: frame_system::extensions::check_nonce::CheckNonce + * Lookup503: frame_system::extensions::check_nonce::CheckNonce **/ FrameSystemExtensionsCheckNonce: "Compact", /** - * Lookup513: frame_system::extensions::check_weight::CheckWeight + * Lookup504: frame_system::extensions::check_weight::CheckWeight **/ FrameSystemExtensionsCheckWeight: "Null", /** - * Lookup514: pallet_transaction_payment::ChargeTransactionPayment + * Lookup505: pallet_transaction_payment::ChargeTransactionPayment **/ PalletTransactionPaymentChargeTransactionPayment: "Compact", /** - * Lookup515: cumulus_primitives_storage_weight_reclaim::StorageWeightReclaim + * Lookup506: cumulus_primitives_storage_weight_reclaim::StorageWeightReclaim **/ CumulusPrimitivesStorageWeightReclaimStorageWeightReclaim: "Null", /** - * Lookup516: frame_metadata_hash_extension::CheckMetadataHash + * Lookup507: frame_metadata_hash_extension::CheckMetadataHash **/ FrameMetadataHashExtensionCheckMetadataHash: { mode: "FrameMetadataHashExtensionMode" }, /** - * Lookup517: frame_metadata_hash_extension::Mode + * Lookup508: frame_metadata_hash_extension::Mode **/ FrameMetadataHashExtensionMode: { _enum: ["Disabled", "Enabled"] }, /** - * Lookup518: storage_hub_runtime::Runtime + * Lookup509: storage_hub_runtime::Runtime **/ StorageHubRuntimeRuntime: "Null" }; diff --git a/api-augment/src/interfaces/registry.ts b/api-augment/src/interfaces/registry.ts index 1478d2fbb..f7c5f3248 100644 --- a/api-augment/src/interfaces/registry.ts +++ b/api-augment/src/interfaces/registry.ts @@ -69,23 +69,20 @@ import type { PalletCollatorSelectionCandidateInfo, PalletCollatorSelectionError, PalletCollatorSelectionEvent, - PalletFileSystemAcceptedStorageRequestParameters, - PalletFileSystemBatchResponses, PalletFileSystemBucketMoveRequestResponse, PalletFileSystemCall, PalletFileSystemEitherAccountIdOrMspId, PalletFileSystemError, PalletFileSystemEvent, + PalletFileSystemFileKeyWithProof, PalletFileSystemHoldReason, PalletFileSystemMoveBucketRequestMetadata, - PalletFileSystemMspAcceptedBatchStorageRequests, - PalletFileSystemMspFailedBatchStorageRequests, - PalletFileSystemMspRejectedBatchStorageRequests, - PalletFileSystemMspRespondStorageRequestsResult, - PalletFileSystemMspStorageRequestResponse, + PalletFileSystemRejectedStorageRequest, PalletFileSystemRejectedStorageRequestReason, PalletFileSystemStorageRequestBspsMetadata, PalletFileSystemStorageRequestMetadata, + PalletFileSystemStorageRequestMspAcceptedFileKeys, + PalletFileSystemStorageRequestMspBucketResponse, PalletMessageQueueBookState, PalletMessageQueueCall, PalletMessageQueueError, @@ -356,23 +353,20 @@ declare module "@polkadot/types/types/registry" { PalletCollatorSelectionCandidateInfo: PalletCollatorSelectionCandidateInfo; PalletCollatorSelectionError: PalletCollatorSelectionError; PalletCollatorSelectionEvent: PalletCollatorSelectionEvent; - PalletFileSystemAcceptedStorageRequestParameters: PalletFileSystemAcceptedStorageRequestParameters; - PalletFileSystemBatchResponses: PalletFileSystemBatchResponses; PalletFileSystemBucketMoveRequestResponse: PalletFileSystemBucketMoveRequestResponse; PalletFileSystemCall: PalletFileSystemCall; PalletFileSystemEitherAccountIdOrMspId: PalletFileSystemEitherAccountIdOrMspId; PalletFileSystemError: PalletFileSystemError; PalletFileSystemEvent: PalletFileSystemEvent; + PalletFileSystemFileKeyWithProof: PalletFileSystemFileKeyWithProof; PalletFileSystemHoldReason: PalletFileSystemHoldReason; PalletFileSystemMoveBucketRequestMetadata: PalletFileSystemMoveBucketRequestMetadata; - PalletFileSystemMspAcceptedBatchStorageRequests: PalletFileSystemMspAcceptedBatchStorageRequests; - PalletFileSystemMspFailedBatchStorageRequests: PalletFileSystemMspFailedBatchStorageRequests; - PalletFileSystemMspRejectedBatchStorageRequests: PalletFileSystemMspRejectedBatchStorageRequests; - PalletFileSystemMspRespondStorageRequestsResult: PalletFileSystemMspRespondStorageRequestsResult; - PalletFileSystemMspStorageRequestResponse: PalletFileSystemMspStorageRequestResponse; + PalletFileSystemRejectedStorageRequest: PalletFileSystemRejectedStorageRequest; PalletFileSystemRejectedStorageRequestReason: PalletFileSystemRejectedStorageRequestReason; PalletFileSystemStorageRequestBspsMetadata: PalletFileSystemStorageRequestBspsMetadata; PalletFileSystemStorageRequestMetadata: PalletFileSystemStorageRequestMetadata; + PalletFileSystemStorageRequestMspAcceptedFileKeys: PalletFileSystemStorageRequestMspAcceptedFileKeys; + PalletFileSystemStorageRequestMspBucketResponse: PalletFileSystemStorageRequestMspBucketResponse; PalletMessageQueueBookState: PalletMessageQueueBookState; PalletMessageQueueCall: PalletMessageQueueCall; PalletMessageQueueError: PalletMessageQueueError; diff --git a/api-augment/src/interfaces/types-lookup.ts b/api-augment/src/interfaces/types-lookup.ts index 48e755657..0a7030dbe 100644 --- a/api-augment/src/interfaces/types-lookup.ts +++ b/api-augment/src/interfaces/types-lookup.ts @@ -1857,6 +1857,12 @@ declare module "@polkadot/types/lookup" { readonly providerId: H256; readonly amountSlashed: u128; } & Struct; + readonly isBucketRootChanged: boolean; + readonly asBucketRootChanged: { + readonly bucketId: H256; + readonly oldRoot: H256; + readonly newRoot: H256; + } & Struct; readonly isMultiAddressAdded: boolean; readonly asMultiAddressAdded: { readonly providerId: H256; @@ -1888,6 +1894,7 @@ declare module "@polkadot/types/lookup" { | "BspSignOffSuccess" | "CapacityChanged" | "Slashed" + | "BucketRootChanged" | "MultiAddressAdded" | "MultiAddressRemoved" | "ValuePropAdded" @@ -1922,12 +1929,12 @@ declare module "@polkadot/types/lookup" { readonly isNewBucket: boolean; readonly asNewBucket: { readonly who: AccountId32; - readonly mspId: H256; + readonly mspId: Option; readonly bucketId: H256; readonly name: Bytes; readonly collectionId: Option; readonly private: bool; - readonly valuePropId: H256; + readonly valuePropId: Option; } & Struct; readonly isBucketDeleted: boolean; readonly asBucketDeleted: { @@ -1964,9 +1971,9 @@ declare module "@polkadot/types/lookup" { readonly size_: u64; readonly peerIds: Vec; } & Struct; - readonly isMspRespondedToStorageRequests: boolean; - readonly asMspRespondedToStorageRequests: { - readonly results: PalletFileSystemMspRespondStorageRequestsResult; + readonly isMspAcceptedStorageRequest: boolean; + readonly asMspAcceptedStorageRequest: { + readonly fileKey: H256; } & Struct; readonly isAcceptedBspVolunteer: boolean; readonly asAcceptedBspVolunteer: { @@ -1997,6 +2004,11 @@ declare module "@polkadot/types/lookup" { readonly asStorageRequestRevoked: { readonly fileKey: H256; } & Struct; + readonly isStorageRequestRejected: boolean; + readonly asStorageRequestRejected: { + readonly fileKey: H256; + readonly reason: PalletFileSystemRejectedStorageRequestReason; + } & Struct; readonly isBspRequestedToStopStoring: boolean; readonly asBspRequestedToStopStoring: { readonly bspId: H256; @@ -2033,7 +2045,7 @@ declare module "@polkadot/types/lookup" { readonly user: AccountId32; readonly fileKey: H256; readonly bucketId: H256; - readonly mspId: H256; + readonly mspId: Option; readonly proofOfInclusion: bool; } & Struct; readonly isProofSubmittedForPendingFileDeletionRequest: boolean; @@ -2064,11 +2076,6 @@ declare module "@polkadot/types/lookup" { readonly bucketId: H256; readonly mspId: H256; } & Struct; - readonly isDataServerRegisteredForMoveBucket: boolean; - readonly asDataServerRegisteredForMoveBucket: { - readonly bspId: H256; - readonly bucketId: H256; - } & Struct; readonly isMspStoppedStoringBucket: boolean; readonly asMspStoppedStoringBucket: { readonly mspId: H256; @@ -2082,12 +2089,13 @@ declare module "@polkadot/types/lookup" { | "BucketPrivacyUpdated" | "NewCollectionAndAssociation" | "NewStorageRequest" - | "MspRespondedToStorageRequests" + | "MspAcceptedStorageRequest" | "AcceptedBspVolunteer" | "BspConfirmedStoring" | "StorageRequestFulfilled" | "StorageRequestExpired" | "StorageRequestRevoked" + | "StorageRequestRejected" | "BspRequestedToStopStoring" | "BspConfirmStoppedStoring" | "PriorityChallengeForFileDeletionQueued" @@ -2099,63 +2107,25 @@ declare module "@polkadot/types/lookup" { | "MoveBucketRequestExpired" | "MoveBucketAccepted" | "MoveBucketRejected" - | "DataServerRegisteredForMoveBucket" | "MspStoppedStoringBucket"; } - /** @name PalletFileSystemMspRespondStorageRequestsResult (135) */ - interface PalletFileSystemMspRespondStorageRequestsResult extends Struct { - readonly mspId: H256; - readonly responses: Vec; - } - - /** @name PalletFileSystemBatchResponses (137) */ - interface PalletFileSystemBatchResponses extends Enum { - readonly isAccepted: boolean; - readonly asAccepted: PalletFileSystemMspAcceptedBatchStorageRequests; - readonly isRejected: boolean; - readonly asRejected: PalletFileSystemMspRejectedBatchStorageRequests; - readonly isFailed: boolean; - readonly asFailed: PalletFileSystemMspFailedBatchStorageRequests; - readonly type: "Accepted" | "Rejected" | "Failed"; - } - - /** @name PalletFileSystemMspAcceptedBatchStorageRequests (138) */ - interface PalletFileSystemMspAcceptedBatchStorageRequests extends Struct { - readonly fileKeys: Vec; - readonly bucketId: H256; - readonly newBucketRoot: H256; - readonly owner: AccountId32; - } - - /** @name PalletFileSystemMspRejectedBatchStorageRequests (141) */ - interface PalletFileSystemMspRejectedBatchStorageRequests extends Struct { - readonly fileKeys: Vec>; - readonly bucketId: H256; - readonly owner: AccountId32; - } - - /** @name PalletFileSystemRejectedStorageRequestReason (144) */ + /** @name PalletFileSystemRejectedStorageRequestReason (138) */ interface PalletFileSystemRejectedStorageRequestReason extends Enum { readonly isReachedMaximumCapacity: boolean; readonly isReceivedInvalidProof: boolean; readonly isFileKeyAlreadyStored: boolean; + readonly isRequestExpired: boolean; readonly isInternalError: boolean; readonly type: | "ReachedMaximumCapacity" | "ReceivedInvalidProof" | "FileKeyAlreadyStored" + | "RequestExpired" | "InternalError"; } - /** @name PalletFileSystemMspFailedBatchStorageRequests (146) */ - interface PalletFileSystemMspFailedBatchStorageRequests extends Struct { - readonly fileKeys: Vec>; - readonly bucketId: H256; - readonly owner: AccountId32; - } - - /** @name PalletFileSystemEitherAccountIdOrMspId (151) */ + /** @name PalletFileSystemEitherAccountIdOrMspId (139) */ interface PalletFileSystemEitherAccountIdOrMspId extends Enum { readonly isAccountId: boolean; readonly asAccountId: AccountId32; @@ -2164,7 +2134,7 @@ declare module "@polkadot/types/lookup" { readonly type: "AccountId" | "MspId"; } - /** @name PalletProofsDealerEvent (152) */ + /** @name PalletProofsDealerEvent (140) */ interface PalletProofsDealerEvent extends Enum { readonly isNewChallenge: boolean; readonly asNewChallenge: { @@ -2225,30 +2195,30 @@ declare module "@polkadot/types/lookup" { | "ChallengesTickerSet"; } - /** @name PalletProofsDealerProof (153) */ + /** @name PalletProofsDealerProof (141) */ interface PalletProofsDealerProof extends Struct { readonly forestProof: SpTrieStorageProofCompactProof; readonly keyProofs: BTreeMap; } - /** @name SpTrieStorageProofCompactProof (154) */ + /** @name SpTrieStorageProofCompactProof (142) */ interface SpTrieStorageProofCompactProof extends Struct { readonly encodedNodes: Vec; } - /** @name PalletProofsDealerKeyProof (157) */ + /** @name PalletProofsDealerKeyProof (145) */ interface PalletProofsDealerKeyProof extends Struct { readonly proof: ShpFileKeyVerifierFileKeyProof; readonly challengeCount: u32; } - /** @name ShpFileKeyVerifierFileKeyProof (158) */ + /** @name ShpFileKeyVerifierFileKeyProof (146) */ interface ShpFileKeyVerifierFileKeyProof extends Struct { readonly fileMetadata: ShpFileMetadataFileMetadata; readonly proof: SpTrieStorageProofCompactProof; } - /** @name ShpFileMetadataFileMetadata (159) */ + /** @name ShpFileMetadataFileMetadata (147) */ interface ShpFileMetadataFileMetadata extends Struct { readonly owner: Bytes; readonly bucketId: Bytes; @@ -2257,13 +2227,13 @@ declare module "@polkadot/types/lookup" { readonly fingerprint: ShpFileMetadataFingerprint; } - /** @name ShpFileMetadataFingerprint (160) */ + /** @name ShpFileMetadataFingerprint (148) */ interface ShpFileMetadataFingerprint extends U8aFixed {} - /** @name ShpTraitsTrieRemoveMutation (166) */ + /** @name ShpTraitsTrieRemoveMutation (154) */ type ShpTraitsTrieRemoveMutation = Null; - /** @name PalletRandomnessEvent (170) */ + /** @name PalletRandomnessEvent (158) */ interface PalletRandomnessEvent extends Enum { readonly isNewOneEpochAgoRandomnessAvailable: boolean; readonly asNewOneEpochAgoRandomnessAvailable: { @@ -2274,7 +2244,7 @@ declare module "@polkadot/types/lookup" { readonly type: "NewOneEpochAgoRandomnessAvailable"; } - /** @name PalletPaymentStreamsEvent (171) */ + /** @name PalletPaymentStreamsEvent (159) */ interface PalletPaymentStreamsEvent extends Enum { readonly isFixedRatePaymentStreamCreated: boolean; readonly asFixedRatePaymentStreamCreated: { @@ -2357,7 +2327,7 @@ declare module "@polkadot/types/lookup" { | "UserSolvent"; } - /** @name PalletBucketNftsEvent (173) */ + /** @name PalletBucketNftsEvent (161) */ interface PalletBucketNftsEvent extends Enum { readonly isAccessShared: boolean; readonly asAccessShared: { @@ -2379,7 +2349,7 @@ declare module "@polkadot/types/lookup" { readonly type: "AccessShared" | "ItemReadAccessUpdated" | "ItemBurned"; } - /** @name PalletNftsEvent (174) */ + /** @name PalletNftsEvent (162) */ interface PalletNftsEvent extends Enum { readonly isCreated: boolean; readonly asCreated: { @@ -2654,7 +2624,7 @@ declare module "@polkadot/types/lookup" { | "PalletAttributeSet"; } - /** @name PalletNftsAttributeNamespace (178) */ + /** @name PalletNftsAttributeNamespace (166) */ interface PalletNftsAttributeNamespace extends Enum { readonly isPallet: boolean; readonly isCollectionOwner: boolean; @@ -2664,20 +2634,20 @@ declare module "@polkadot/types/lookup" { readonly type: "Pallet" | "CollectionOwner" | "ItemOwner" | "Account"; } - /** @name PalletNftsPriceWithDirection (180) */ + /** @name PalletNftsPriceWithDirection (168) */ interface PalletNftsPriceWithDirection extends Struct { readonly amount: u128; readonly direction: PalletNftsPriceDirection; } - /** @name PalletNftsPriceDirection (181) */ + /** @name PalletNftsPriceDirection (169) */ interface PalletNftsPriceDirection extends Enum { readonly isSend: boolean; readonly isReceive: boolean; readonly type: "Send" | "Receive"; } - /** @name PalletNftsPalletAttributes (182) */ + /** @name PalletNftsPalletAttributes (170) */ interface PalletNftsPalletAttributes extends Enum { readonly isUsedToClaim: boolean; readonly asUsedToClaim: u32; @@ -2685,7 +2655,7 @@ declare module "@polkadot/types/lookup" { readonly type: "UsedToClaim" | "TransferDisabled"; } - /** @name PalletParametersEvent (183) */ + /** @name PalletParametersEvent (171) */ interface PalletParametersEvent extends Enum { readonly isUpdated: boolean; readonly asUpdated: { @@ -2696,14 +2666,14 @@ declare module "@polkadot/types/lookup" { readonly type: "Updated"; } - /** @name StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersKey (184) */ + /** @name StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersKey (172) */ interface StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersKey extends Enum { readonly isRuntimeConfig: boolean; readonly asRuntimeConfig: StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParametersKey; readonly type: "RuntimeConfig"; } - /** @name StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParametersKey (185) */ + /** @name StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParametersKey (173) */ interface StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParametersKey extends Enum { readonly isSlashAmountPerMaxFileSize: boolean; @@ -2743,71 +2713,71 @@ declare module "@polkadot/types/lookup" { | "BspStopStoringFilePenalty"; } - /** @name StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigSlashAmountPerMaxFileSize (186) */ + /** @name StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigSlashAmountPerMaxFileSize (174) */ type StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigSlashAmountPerMaxFileSize = Null; - /** @name StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigStakeToChallengePeriod (187) */ + /** @name StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigStakeToChallengePeriod (175) */ type StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigStakeToChallengePeriod = Null; - /** @name StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigCheckpointChallengePeriod (188) */ + /** @name StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigCheckpointChallengePeriod (176) */ type StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigCheckpointChallengePeriod = Null; - /** @name StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigMinChallengePeriod (189) */ + /** @name StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigMinChallengePeriod (177) */ type StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigMinChallengePeriod = Null; - /** @name StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigSystemUtilisationLowerThresholdPercentage (190) */ + /** @name StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigSystemUtilisationLowerThresholdPercentage (178) */ type StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigSystemUtilisationLowerThresholdPercentage = Null; - /** @name StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigSystemUtilisationUpperThresholdPercentage (191) */ + /** @name StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigSystemUtilisationUpperThresholdPercentage (179) */ type StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigSystemUtilisationUpperThresholdPercentage = Null; - /** @name StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigMostlyStablePrice (192) */ + /** @name StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigMostlyStablePrice (180) */ type StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigMostlyStablePrice = Null; - /** @name StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigMaxPrice (193) */ + /** @name StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigMaxPrice (181) */ type StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigMaxPrice = Null; - /** @name StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigMinPrice (194) */ + /** @name StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigMinPrice (182) */ type StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigMinPrice = Null; - /** @name StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigUpperExponentFactor (195) */ + /** @name StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigUpperExponentFactor (183) */ type StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigUpperExponentFactor = Null; - /** @name StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigLowerExponentFactor (196) */ + /** @name StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigLowerExponentFactor (184) */ type StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigLowerExponentFactor = Null; - /** @name StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigZeroSizeBucketFixedRate (197) */ + /** @name StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigZeroSizeBucketFixedRate (185) */ type StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigZeroSizeBucketFixedRate = Null; - /** @name StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigIdealUtilisationRate (198) */ + /** @name StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigIdealUtilisationRate (186) */ type StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigIdealUtilisationRate = Null; - /** @name StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigDecayRate (199) */ + /** @name StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigDecayRate (187) */ type StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigDecayRate = Null; - /** @name StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigMinimumTreasuryCut (200) */ + /** @name StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigMinimumTreasuryCut (188) */ type StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigMinimumTreasuryCut = Null; - /** @name StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigMaximumTreasuryCut (201) */ + /** @name StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigMaximumTreasuryCut (189) */ type StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigMaximumTreasuryCut = Null; - /** @name StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigBspStopStoringFilePenalty (202) */ + /** @name StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigBspStopStoringFilePenalty (190) */ type StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigBspStopStoringFilePenalty = Null; - /** @name StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersValue (204) */ + /** @name StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersValue (192) */ interface StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersValue extends Enum { readonly isRuntimeConfig: boolean; readonly asRuntimeConfig: StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParametersValue; readonly type: "RuntimeConfig"; } - /** @name StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParametersValue (205) */ + /** @name StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParametersValue (193) */ interface StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParametersValue extends Enum { readonly isSlashAmountPerMaxFileSize: boolean; @@ -2864,7 +2834,7 @@ declare module "@polkadot/types/lookup" { | "BspStopStoringFilePenalty"; } - /** @name FrameSystemPhase (207) */ + /** @name FrameSystemPhase (195) */ interface FrameSystemPhase extends Enum { readonly isApplyExtrinsic: boolean; readonly asApplyExtrinsic: u32; @@ -2873,19 +2843,19 @@ declare module "@polkadot/types/lookup" { readonly type: "ApplyExtrinsic" | "Finalization" | "Initialization"; } - /** @name FrameSystemLastRuntimeUpgradeInfo (210) */ + /** @name FrameSystemLastRuntimeUpgradeInfo (198) */ interface FrameSystemLastRuntimeUpgradeInfo extends Struct { readonly specVersion: Compact; readonly specName: Text; } - /** @name FrameSystemCodeUpgradeAuthorization (212) */ + /** @name FrameSystemCodeUpgradeAuthorization (200) */ interface FrameSystemCodeUpgradeAuthorization extends Struct { readonly codeHash: H256; readonly checkVersion: bool; } - /** @name FrameSystemCall (213) */ + /** @name FrameSystemCall (201) */ interface FrameSystemCall extends Enum { readonly isRemark: boolean; readonly asRemark: { @@ -2946,21 +2916,21 @@ declare module "@polkadot/types/lookup" { | "ApplyAuthorizedUpgrade"; } - /** @name FrameSystemLimitsBlockWeights (216) */ + /** @name FrameSystemLimitsBlockWeights (204) */ interface FrameSystemLimitsBlockWeights extends Struct { readonly baseBlock: SpWeightsWeightV2Weight; readonly maxBlock: SpWeightsWeightV2Weight; readonly perClass: FrameSupportDispatchPerDispatchClassWeightsPerClass; } - /** @name FrameSupportDispatchPerDispatchClassWeightsPerClass (217) */ + /** @name FrameSupportDispatchPerDispatchClassWeightsPerClass (205) */ interface FrameSupportDispatchPerDispatchClassWeightsPerClass extends Struct { readonly normal: FrameSystemLimitsWeightsPerClass; readonly operational: FrameSystemLimitsWeightsPerClass; readonly mandatory: FrameSystemLimitsWeightsPerClass; } - /** @name FrameSystemLimitsWeightsPerClass (218) */ + /** @name FrameSystemLimitsWeightsPerClass (206) */ interface FrameSystemLimitsWeightsPerClass extends Struct { readonly baseExtrinsic: SpWeightsWeightV2Weight; readonly maxExtrinsic: Option; @@ -2968,25 +2938,25 @@ declare module "@polkadot/types/lookup" { readonly reserved: Option; } - /** @name FrameSystemLimitsBlockLength (220) */ + /** @name FrameSystemLimitsBlockLength (208) */ interface FrameSystemLimitsBlockLength extends Struct { readonly max: FrameSupportDispatchPerDispatchClassU32; } - /** @name FrameSupportDispatchPerDispatchClassU32 (221) */ + /** @name FrameSupportDispatchPerDispatchClassU32 (209) */ interface FrameSupportDispatchPerDispatchClassU32 extends Struct { readonly normal: u32; readonly operational: u32; readonly mandatory: u32; } - /** @name SpWeightsRuntimeDbWeight (222) */ + /** @name SpWeightsRuntimeDbWeight (210) */ interface SpWeightsRuntimeDbWeight extends Struct { readonly read: u64; readonly write: u64; } - /** @name SpVersionRuntimeVersion (223) */ + /** @name SpVersionRuntimeVersion (211) */ interface SpVersionRuntimeVersion extends Struct { readonly specName: Text; readonly implName: Text; @@ -2998,7 +2968,7 @@ declare module "@polkadot/types/lookup" { readonly stateVersion: u8; } - /** @name FrameSystemError (228) */ + /** @name FrameSystemError (216) */ interface FrameSystemError extends Enum { readonly isInvalidSpecName: boolean; readonly isSpecVersionNeedsToIncrease: boolean; @@ -3021,14 +2991,14 @@ declare module "@polkadot/types/lookup" { | "Unauthorized"; } - /** @name CumulusPalletParachainSystemUnincludedSegmentAncestor (230) */ + /** @name CumulusPalletParachainSystemUnincludedSegmentAncestor (218) */ interface CumulusPalletParachainSystemUnincludedSegmentAncestor extends Struct { readonly usedBandwidth: CumulusPalletParachainSystemUnincludedSegmentUsedBandwidth; readonly paraHeadHash: Option; readonly consumedGoAheadSignal: Option; } - /** @name CumulusPalletParachainSystemUnincludedSegmentUsedBandwidth (231) */ + /** @name CumulusPalletParachainSystemUnincludedSegmentUsedBandwidth (219) */ interface CumulusPalletParachainSystemUnincludedSegmentUsedBandwidth extends Struct { readonly umpMsgCount: u32; readonly umpTotalBytes: u32; @@ -3038,27 +3008,27 @@ declare module "@polkadot/types/lookup" { >; } - /** @name CumulusPalletParachainSystemUnincludedSegmentHrmpChannelUpdate (233) */ + /** @name CumulusPalletParachainSystemUnincludedSegmentHrmpChannelUpdate (221) */ interface CumulusPalletParachainSystemUnincludedSegmentHrmpChannelUpdate extends Struct { readonly msgCount: u32; readonly totalBytes: u32; } - /** @name PolkadotPrimitivesV8UpgradeGoAhead (238) */ + /** @name PolkadotPrimitivesV8UpgradeGoAhead (225) */ interface PolkadotPrimitivesV8UpgradeGoAhead extends Enum { readonly isAbort: boolean; readonly isGoAhead: boolean; readonly type: "Abort" | "GoAhead"; } - /** @name CumulusPalletParachainSystemUnincludedSegmentSegmentTracker (239) */ + /** @name CumulusPalletParachainSystemUnincludedSegmentSegmentTracker (226) */ interface CumulusPalletParachainSystemUnincludedSegmentSegmentTracker extends Struct { readonly usedBandwidth: CumulusPalletParachainSystemUnincludedSegmentUsedBandwidth; readonly hrmpWatermark: Option; readonly consumedGoAheadSignal: Option; } - /** @name PolkadotPrimitivesV8PersistedValidationData (240) */ + /** @name PolkadotPrimitivesV8PersistedValidationData (227) */ interface PolkadotPrimitivesV8PersistedValidationData extends Struct { readonly parentHead: Bytes; readonly relayParentNumber: u32; @@ -3066,18 +3036,18 @@ declare module "@polkadot/types/lookup" { readonly maxPovSize: u32; } - /** @name PolkadotPrimitivesV8UpgradeRestriction (243) */ + /** @name PolkadotPrimitivesV8UpgradeRestriction (230) */ interface PolkadotPrimitivesV8UpgradeRestriction extends Enum { readonly isPresent: boolean; readonly type: "Present"; } - /** @name SpTrieStorageProof (244) */ + /** @name SpTrieStorageProof (231) */ interface SpTrieStorageProof extends Struct { readonly trieNodes: BTreeSet; } - /** @name CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot (246) */ + /** @name CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot (233) */ interface CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot extends Struct { readonly dmqMqcHead: H256; readonly relayDispatchQueueRemainingCapacity: CumulusPalletParachainSystemRelayStateSnapshotRelayDispatchQueueRemainingCapacity; @@ -3085,14 +3055,14 @@ declare module "@polkadot/types/lookup" { readonly egressChannels: Vec>; } - /** @name CumulusPalletParachainSystemRelayStateSnapshotRelayDispatchQueueRemainingCapacity (247) */ + /** @name CumulusPalletParachainSystemRelayStateSnapshotRelayDispatchQueueRemainingCapacity (234) */ interface CumulusPalletParachainSystemRelayStateSnapshotRelayDispatchQueueRemainingCapacity extends Struct { readonly remainingCount: u32; readonly remainingSize: u32; } - /** @name PolkadotPrimitivesV8AbridgedHrmpChannel (250) */ + /** @name PolkadotPrimitivesV8AbridgedHrmpChannel (237) */ interface PolkadotPrimitivesV8AbridgedHrmpChannel extends Struct { readonly maxCapacity: u32; readonly maxTotalSize: u32; @@ -3102,7 +3072,7 @@ declare module "@polkadot/types/lookup" { readonly mqcHead: Option; } - /** @name PolkadotPrimitivesV8AbridgedHostConfiguration (251) */ + /** @name PolkadotPrimitivesV8AbridgedHostConfiguration (238) */ interface PolkadotPrimitivesV8AbridgedHostConfiguration extends Struct { readonly maxCodeSize: u32; readonly maxHeadDataSize: u32; @@ -3116,19 +3086,19 @@ declare module "@polkadot/types/lookup" { readonly asyncBackingParams: PolkadotPrimitivesV8AsyncBackingAsyncBackingParams; } - /** @name PolkadotPrimitivesV8AsyncBackingAsyncBackingParams (252) */ + /** @name PolkadotPrimitivesV8AsyncBackingAsyncBackingParams (239) */ interface PolkadotPrimitivesV8AsyncBackingAsyncBackingParams extends Struct { readonly maxCandidateDepth: u32; readonly allowedAncestryLen: u32; } - /** @name PolkadotCorePrimitivesOutboundHrmpMessage (258) */ + /** @name PolkadotCorePrimitivesOutboundHrmpMessage (245) */ interface PolkadotCorePrimitivesOutboundHrmpMessage extends Struct { readonly recipient: u32; readonly data: Bytes; } - /** @name CumulusPalletParachainSystemCall (260) */ + /** @name CumulusPalletParachainSystemCall (247) */ interface CumulusPalletParachainSystemCall extends Enum { readonly isSetValidationData: boolean; readonly asSetValidationData: { @@ -3141,7 +3111,7 @@ declare module "@polkadot/types/lookup" { readonly type: "SetValidationData" | "SudoSendUpwardMessage"; } - /** @name CumulusPrimitivesParachainInherentParachainInherentData (261) */ + /** @name CumulusPrimitivesParachainInherentParachainInherentData (248) */ interface CumulusPrimitivesParachainInherentParachainInherentData extends Struct { readonly validationData: PolkadotPrimitivesV8PersistedValidationData; readonly relayChainState: SpTrieStorageProof; @@ -3149,19 +3119,19 @@ declare module "@polkadot/types/lookup" { readonly horizontalMessages: BTreeMap>; } - /** @name PolkadotCorePrimitivesInboundDownwardMessage (263) */ + /** @name PolkadotCorePrimitivesInboundDownwardMessage (250) */ interface PolkadotCorePrimitivesInboundDownwardMessage extends Struct { readonly sentAt: u32; readonly msg: Bytes; } - /** @name PolkadotCorePrimitivesInboundHrmpMessage (266) */ + /** @name PolkadotCorePrimitivesInboundHrmpMessage (253) */ interface PolkadotCorePrimitivesInboundHrmpMessage extends Struct { readonly sentAt: u32; readonly data: Bytes; } - /** @name CumulusPalletParachainSystemError (269) */ + /** @name CumulusPalletParachainSystemError (256) */ interface CumulusPalletParachainSystemError extends Enum { readonly isOverlappingUpgrades: boolean; readonly isProhibitedByPolkadot: boolean; @@ -3182,7 +3152,7 @@ declare module "@polkadot/types/lookup" { | "Unauthorized"; } - /** @name PalletTimestampCall (270) */ + /** @name PalletTimestampCall (257) */ interface PalletTimestampCall extends Enum { readonly isSet: boolean; readonly asSet: { @@ -3191,17 +3161,17 @@ declare module "@polkadot/types/lookup" { readonly type: "Set"; } - /** @name StagingParachainInfoCall (271) */ + /** @name StagingParachainInfoCall (258) */ type StagingParachainInfoCall = Null; - /** @name PalletBalancesBalanceLock (273) */ + /** @name PalletBalancesBalanceLock (260) */ interface PalletBalancesBalanceLock extends Struct { readonly id: U8aFixed; readonly amount: u128; readonly reasons: PalletBalancesReasons; } - /** @name PalletBalancesReasons (274) */ + /** @name PalletBalancesReasons (261) */ interface PalletBalancesReasons extends Enum { readonly isFee: boolean; readonly isMisc: boolean; @@ -3209,13 +3179,13 @@ declare module "@polkadot/types/lookup" { readonly type: "Fee" | "Misc" | "All"; } - /** @name PalletBalancesReserveData (277) */ + /** @name PalletBalancesReserveData (264) */ interface PalletBalancesReserveData extends Struct { readonly id: U8aFixed; readonly amount: u128; } - /** @name StorageHubRuntimeRuntimeHoldReason (281) */ + /** @name StorageHubRuntimeRuntimeHoldReason (268) */ interface StorageHubRuntimeRuntimeHoldReason extends Enum { readonly isProviders: boolean; readonly asProviders: PalletStorageProvidersHoldReason; @@ -3226,32 +3196,32 @@ declare module "@polkadot/types/lookup" { readonly type: "Providers" | "FileSystem" | "PaymentStreams"; } - /** @name PalletStorageProvidersHoldReason (282) */ + /** @name PalletStorageProvidersHoldReason (269) */ interface PalletStorageProvidersHoldReason extends Enum { readonly isStorageProviderDeposit: boolean; readonly isBucketDeposit: boolean; readonly type: "StorageProviderDeposit" | "BucketDeposit"; } - /** @name PalletFileSystemHoldReason (283) */ + /** @name PalletFileSystemHoldReason (270) */ interface PalletFileSystemHoldReason extends Enum { readonly isStorageRequestCreationHold: boolean; readonly type: "StorageRequestCreationHold"; } - /** @name PalletPaymentStreamsHoldReason (284) */ + /** @name PalletPaymentStreamsHoldReason (271) */ interface PalletPaymentStreamsHoldReason extends Enum { readonly isPaymentStreamDeposit: boolean; readonly type: "PaymentStreamDeposit"; } - /** @name FrameSupportTokensMiscIdAmount (287) */ + /** @name FrameSupportTokensMiscIdAmount (274) */ interface FrameSupportTokensMiscIdAmount extends Struct { readonly id: Null; readonly amount: u128; } - /** @name PalletBalancesCall (289) */ + /** @name PalletBalancesCall (276) */ interface PalletBalancesCall extends Enum { readonly isTransferAllowDeath: boolean; readonly asTransferAllowDeath: { @@ -3310,14 +3280,14 @@ declare module "@polkadot/types/lookup" { | "Burn"; } - /** @name PalletBalancesAdjustmentDirection (292) */ + /** @name PalletBalancesAdjustmentDirection (279) */ interface PalletBalancesAdjustmentDirection extends Enum { readonly isIncrease: boolean; readonly isDecrease: boolean; readonly type: "Increase" | "Decrease"; } - /** @name PalletBalancesError (293) */ + /** @name PalletBalancesError (280) */ interface PalletBalancesError extends Enum { readonly isVestingBalance: boolean; readonly isLiquidityRestrictions: boolean; @@ -3346,14 +3316,14 @@ declare module "@polkadot/types/lookup" { | "DeltaZero"; } - /** @name PalletTransactionPaymentReleases (294) */ + /** @name PalletTransactionPaymentReleases (281) */ interface PalletTransactionPaymentReleases extends Enum { readonly isV1Ancient: boolean; readonly isV2: boolean; readonly type: "V1Ancient" | "V2"; } - /** @name PalletSudoCall (295) */ + /** @name PalletSudoCall (282) */ interface PalletSudoCall extends Enum { readonly isSudo: boolean; readonly asSudo: { @@ -3377,7 +3347,7 @@ declare module "@polkadot/types/lookup" { readonly type: "Sudo" | "SudoUncheckedWeight" | "SetKey" | "SudoAs" | "RemoveKey"; } - /** @name PalletCollatorSelectionCall (297) */ + /** @name PalletCollatorSelectionCall (284) */ interface PalletCollatorSelectionCall extends Enum { readonly isSetInvulnerables: boolean; readonly asSetInvulnerables: { @@ -3422,7 +3392,7 @@ declare module "@polkadot/types/lookup" { | "TakeCandidateSlot"; } - /** @name PalletSessionCall (298) */ + /** @name PalletSessionCall (285) */ interface PalletSessionCall extends Enum { readonly isSetKeys: boolean; readonly asSetKeys: { @@ -3433,15 +3403,15 @@ declare module "@polkadot/types/lookup" { readonly type: "SetKeys" | "PurgeKeys"; } - /** @name StorageHubRuntimeSessionKeys (299) */ + /** @name StorageHubRuntimeSessionKeys (286) */ interface StorageHubRuntimeSessionKeys extends Struct { readonly aura: SpConsensusAuraSr25519AppSr25519Public; } - /** @name SpConsensusAuraSr25519AppSr25519Public (300) */ + /** @name SpConsensusAuraSr25519AppSr25519Public (287) */ interface SpConsensusAuraSr25519AppSr25519Public extends U8aFixed {} - /** @name CumulusPalletXcmpQueueCall (301) */ + /** @name CumulusPalletXcmpQueueCall (288) */ interface CumulusPalletXcmpQueueCall extends Enum { readonly isSuspendXcmExecution: boolean; readonly isResumeXcmExecution: boolean; @@ -3465,7 +3435,7 @@ declare module "@polkadot/types/lookup" { | "UpdateResumeThreshold"; } - /** @name PalletXcmCall (302) */ + /** @name PalletXcmCall (289) */ interface PalletXcmCall extends Enum { readonly isSend: boolean; readonly asSend: { @@ -3568,7 +3538,7 @@ declare module "@polkadot/types/lookup" { | "TransferAssetsUsingTypeAndThen"; } - /** @name XcmVersionedXcm (303) */ + /** @name XcmVersionedXcm (290) */ interface XcmVersionedXcm extends Enum { readonly isV2: boolean; readonly asV2: XcmV2Xcm; @@ -3579,10 +3549,10 @@ declare module "@polkadot/types/lookup" { readonly type: "V2" | "V3" | "V4"; } - /** @name XcmV2Xcm (304) */ + /** @name XcmV2Xcm (291) */ interface XcmV2Xcm extends Vec {} - /** @name XcmV2Instruction (306) */ + /** @name XcmV2Instruction (293) */ interface XcmV2Instruction extends Enum { readonly isWithdrawAsset: boolean; readonly asWithdrawAsset: XcmV2MultiassetMultiAssets; @@ -3730,7 +3700,7 @@ declare module "@polkadot/types/lookup" { | "UnsubscribeVersion"; } - /** @name XcmV2Response (307) */ + /** @name XcmV2Response (294) */ interface XcmV2Response extends Enum { readonly isNull: boolean; readonly isAssets: boolean; @@ -3742,7 +3712,7 @@ declare module "@polkadot/types/lookup" { readonly type: "Null" | "Assets" | "ExecutionResult" | "Version"; } - /** @name XcmV2TraitsError (310) */ + /** @name XcmV2TraitsError (297) */ interface XcmV2TraitsError extends Enum { readonly isOverflow: boolean; readonly isUnimplemented: boolean; @@ -3801,7 +3771,7 @@ declare module "@polkadot/types/lookup" { | "WeightNotComputable"; } - /** @name XcmV2OriginKind (311) */ + /** @name XcmV2OriginKind (298) */ interface XcmV2OriginKind extends Enum { readonly isNative: boolean; readonly isSovereignAccount: boolean; @@ -3810,7 +3780,7 @@ declare module "@polkadot/types/lookup" { readonly type: "Native" | "SovereignAccount" | "Superuser" | "Xcm"; } - /** @name XcmV2MultiassetMultiAssetFilter (312) */ + /** @name XcmV2MultiassetMultiAssetFilter (299) */ interface XcmV2MultiassetMultiAssetFilter extends Enum { readonly isDefinite: boolean; readonly asDefinite: XcmV2MultiassetMultiAssets; @@ -3819,7 +3789,7 @@ declare module "@polkadot/types/lookup" { readonly type: "Definite" | "Wild"; } - /** @name XcmV2MultiassetWildMultiAsset (313) */ + /** @name XcmV2MultiassetWildMultiAsset (300) */ interface XcmV2MultiassetWildMultiAsset extends Enum { readonly isAll: boolean; readonly isAllOf: boolean; @@ -3830,14 +3800,14 @@ declare module "@polkadot/types/lookup" { readonly type: "All" | "AllOf"; } - /** @name XcmV2MultiassetWildFungibility (314) */ + /** @name XcmV2MultiassetWildFungibility (301) */ interface XcmV2MultiassetWildFungibility extends Enum { readonly isFungible: boolean; readonly isNonFungible: boolean; readonly type: "Fungible" | "NonFungible"; } - /** @name XcmV2WeightLimit (315) */ + /** @name XcmV2WeightLimit (302) */ interface XcmV2WeightLimit extends Enum { readonly isUnlimited: boolean; readonly isLimited: boolean; @@ -3845,10 +3815,10 @@ declare module "@polkadot/types/lookup" { readonly type: "Unlimited" | "Limited"; } - /** @name XcmV3Xcm (316) */ + /** @name XcmV3Xcm (303) */ interface XcmV3Xcm extends Vec {} - /** @name XcmV3Instruction (318) */ + /** @name XcmV3Instruction (305) */ interface XcmV3Instruction extends Enum { readonly isWithdrawAsset: boolean; readonly asWithdrawAsset: XcmV3MultiassetMultiAssets; @@ -4078,7 +4048,7 @@ declare module "@polkadot/types/lookup" { | "UnpaidExecution"; } - /** @name XcmV3Response (319) */ + /** @name XcmV3Response (306) */ interface XcmV3Response extends Enum { readonly isNull: boolean; readonly isAssets: boolean; @@ -4100,7 +4070,7 @@ declare module "@polkadot/types/lookup" { | "DispatchResult"; } - /** @name XcmV3PalletInfo (321) */ + /** @name XcmV3PalletInfo (308) */ interface XcmV3PalletInfo extends Struct { readonly index: Compact; readonly name: Bytes; @@ -4110,14 +4080,14 @@ declare module "@polkadot/types/lookup" { readonly patch: Compact; } - /** @name XcmV3QueryResponseInfo (325) */ + /** @name XcmV3QueryResponseInfo (312) */ interface XcmV3QueryResponseInfo extends Struct { readonly destination: StagingXcmV3MultiLocation; readonly queryId: Compact; readonly maxWeight: SpWeightsWeightV2Weight; } - /** @name XcmV3MultiassetMultiAssetFilter (326) */ + /** @name XcmV3MultiassetMultiAssetFilter (313) */ interface XcmV3MultiassetMultiAssetFilter extends Enum { readonly isDefinite: boolean; readonly asDefinite: XcmV3MultiassetMultiAssets; @@ -4126,7 +4096,7 @@ declare module "@polkadot/types/lookup" { readonly type: "Definite" | "Wild"; } - /** @name XcmV3MultiassetWildMultiAsset (327) */ + /** @name XcmV3MultiassetWildMultiAsset (314) */ interface XcmV3MultiassetWildMultiAsset extends Enum { readonly isAll: boolean; readonly isAllOf: boolean; @@ -4145,14 +4115,14 @@ declare module "@polkadot/types/lookup" { readonly type: "All" | "AllOf" | "AllCounted" | "AllOfCounted"; } - /** @name XcmV3MultiassetWildFungibility (328) */ + /** @name XcmV3MultiassetWildFungibility (315) */ interface XcmV3MultiassetWildFungibility extends Enum { readonly isFungible: boolean; readonly isNonFungible: boolean; readonly type: "Fungible" | "NonFungible"; } - /** @name StagingXcmExecutorAssetTransferTransferType (340) */ + /** @name StagingXcmExecutorAssetTransferTransferType (327) */ interface StagingXcmExecutorAssetTransferTransferType extends Enum { readonly isTeleport: boolean; readonly isLocalReserve: boolean; @@ -4162,7 +4132,7 @@ declare module "@polkadot/types/lookup" { readonly type: "Teleport" | "LocalReserve" | "DestinationReserve" | "RemoteReserve"; } - /** @name XcmVersionedAssetId (341) */ + /** @name XcmVersionedAssetId (328) */ interface XcmVersionedAssetId extends Enum { readonly isV3: boolean; readonly asV3: XcmV3MultiassetAssetId; @@ -4171,10 +4141,10 @@ declare module "@polkadot/types/lookup" { readonly type: "V3" | "V4"; } - /** @name CumulusPalletXcmCall (342) */ + /** @name CumulusPalletXcmCall (329) */ type CumulusPalletXcmCall = Null; - /** @name PalletMessageQueueCall (343) */ + /** @name PalletMessageQueueCall (330) */ interface PalletMessageQueueCall extends Enum { readonly isReapPage: boolean; readonly asReapPage: { @@ -4191,7 +4161,7 @@ declare module "@polkadot/types/lookup" { readonly type: "ReapPage" | "ExecuteOverweight"; } - /** @name PalletStorageProvidersCall (344) */ + /** @name PalletStorageProvidersCall (331) */ interface PalletStorageProvidersCall extends Enum { readonly isRequestMspSignUp: boolean; readonly asRequestMspSignUp: { @@ -4278,14 +4248,14 @@ declare module "@polkadot/types/lookup" { | "Slash"; } - /** @name PalletFileSystemCall (345) */ + /** @name PalletFileSystemCall (332) */ interface PalletFileSystemCall extends Enum { readonly isCreateBucket: boolean; readonly asCreateBucket: { - readonly mspId: H256; + readonly mspId: Option; readonly name: Bytes; readonly private: bool; - readonly valuePropId: H256; + readonly valuePropId: Option; } & Struct; readonly isRequestMoveBucket: boolean; readonly asRequestMoveBucket: { @@ -4316,7 +4286,7 @@ declare module "@polkadot/types/lookup" { readonly location: Bytes; readonly fingerprint: H256; readonly size_: u64; - readonly mspId: H256; + readonly mspId: Option; readonly peerIds: Vec; } & Struct; readonly isRevokeStorageRequest: boolean; @@ -4325,9 +4295,7 @@ declare module "@polkadot/types/lookup" { } & Struct; readonly isMspRespondStorageRequestsMultipleBuckets: boolean; readonly asMspRespondStorageRequestsMultipleBuckets: { - readonly fileKeyResponsesInput: Vec< - ITuple<[H256, PalletFileSystemMspStorageRequestResponse]> - >; + readonly storageRequestMspResponse: Vec; } & Struct; readonly isMspStopStoringBucket: boolean; readonly asMspStopStoringBucket: { @@ -4410,26 +4378,39 @@ declare module "@polkadot/types/lookup" { | "SetGlobalParameters"; } - /** @name PalletFileSystemBucketMoveRequestResponse (346) */ + /** @name PalletFileSystemBucketMoveRequestResponse (333) */ interface PalletFileSystemBucketMoveRequestResponse extends Enum { readonly isAccepted: boolean; readonly isRejected: boolean; readonly type: "Accepted" | "Rejected"; } - /** @name PalletFileSystemMspStorageRequestResponse (349) */ - interface PalletFileSystemMspStorageRequestResponse extends Struct { - readonly accept: Option; - readonly reject: Option>>; + /** @name PalletFileSystemStorageRequestMspBucketResponse (335) */ + interface PalletFileSystemStorageRequestMspBucketResponse extends Struct { + readonly bucketId: H256; + readonly accept: Option; + readonly reject: Vec; } - /** @name PalletFileSystemAcceptedStorageRequestParameters (351) */ - interface PalletFileSystemAcceptedStorageRequestParameters extends Struct { - readonly fileKeysAndProofs: Vec>; + /** @name PalletFileSystemStorageRequestMspAcceptedFileKeys (337) */ + interface PalletFileSystemStorageRequestMspAcceptedFileKeys extends Struct { + readonly fileKeysAndProofs: Vec; readonly nonInclusionForestProof: SpTrieStorageProofCompactProof; } - /** @name PalletProofsDealerCall (358) */ + /** @name PalletFileSystemFileKeyWithProof (339) */ + interface PalletFileSystemFileKeyWithProof extends Struct { + readonly fileKey: H256; + readonly proof: ShpFileKeyVerifierFileKeyProof; + } + + /** @name PalletFileSystemRejectedStorageRequest (342) */ + interface PalletFileSystemRejectedStorageRequest extends Struct { + readonly fileKey: H256; + readonly reason: PalletFileSystemRejectedStorageRequestReason; + } + + /** @name PalletProofsDealerCall (349) */ interface PalletProofsDealerCall extends Enum { readonly isChallenge: boolean; readonly asChallenge: { @@ -4451,13 +4432,13 @@ declare module "@polkadot/types/lookup" { readonly type: "Challenge" | "SubmitProof" | "ForceInitialiseChallengeCycle" | "SetPaused"; } - /** @name PalletRandomnessCall (359) */ + /** @name PalletRandomnessCall (350) */ interface PalletRandomnessCall extends Enum { readonly isSetBabeRandomness: boolean; readonly type: "SetBabeRandomness"; } - /** @name PalletPaymentStreamsCall (360) */ + /** @name PalletPaymentStreamsCall (351) */ interface PalletPaymentStreamsCall extends Enum { readonly isCreateFixedRatePaymentStream: boolean; readonly asCreateFixedRatePaymentStream: { @@ -4516,7 +4497,7 @@ declare module "@polkadot/types/lookup" { | "ClearInsolventFlag"; } - /** @name PalletBucketNftsCall (361) */ + /** @name PalletBucketNftsCall (352) */ interface PalletBucketNftsCall extends Enum { readonly isShareAccess: boolean; readonly asShareAccess: { @@ -4534,7 +4515,7 @@ declare module "@polkadot/types/lookup" { readonly type: "ShareAccess" | "UpdateReadAccess"; } - /** @name PalletNftsCall (363) */ + /** @name PalletNftsCall (354) */ interface PalletNftsCall extends Enum { readonly isCreate: boolean; readonly asCreate: { @@ -4807,14 +4788,14 @@ declare module "@polkadot/types/lookup" { | "SetAttributesPreSigned"; } - /** @name PalletNftsCollectionConfig (364) */ + /** @name PalletNftsCollectionConfig (355) */ interface PalletNftsCollectionConfig extends Struct { readonly settings: u64; readonly maxSupply: Option; readonly mintSettings: PalletNftsMintSettings; } - /** @name PalletNftsCollectionSetting (366) */ + /** @name PalletNftsCollectionSetting (357) */ interface PalletNftsCollectionSetting extends Enum { readonly isTransferableItems: boolean; readonly isUnlockedMetadata: boolean; @@ -4829,7 +4810,7 @@ declare module "@polkadot/types/lookup" { | "DepositRequired"; } - /** @name PalletNftsMintSettings (367) */ + /** @name PalletNftsMintSettings (358) */ interface PalletNftsMintSettings extends Struct { readonly mintType: PalletNftsMintType; readonly price: Option; @@ -4838,7 +4819,7 @@ declare module "@polkadot/types/lookup" { readonly defaultItemSettings: u64; } - /** @name PalletNftsMintType (368) */ + /** @name PalletNftsMintType (359) */ interface PalletNftsMintType extends Enum { readonly isIssuer: boolean; readonly isPublic: boolean; @@ -4847,7 +4828,7 @@ declare module "@polkadot/types/lookup" { readonly type: "Issuer" | "Public" | "HolderOf"; } - /** @name PalletNftsItemSetting (371) */ + /** @name PalletNftsItemSetting (362) */ interface PalletNftsItemSetting extends Enum { readonly isTransferable: boolean; readonly isUnlockedMetadata: boolean; @@ -4855,30 +4836,30 @@ declare module "@polkadot/types/lookup" { readonly type: "Transferable" | "UnlockedMetadata" | "UnlockedAttributes"; } - /** @name PalletNftsDestroyWitness (372) */ + /** @name PalletNftsDestroyWitness (363) */ interface PalletNftsDestroyWitness extends Struct { readonly itemMetadatas: Compact; readonly itemConfigs: Compact; readonly attributes: Compact; } - /** @name PalletNftsMintWitness (374) */ + /** @name PalletNftsMintWitness (365) */ interface PalletNftsMintWitness extends Struct { readonly ownedItem: Option; readonly mintPrice: Option; } - /** @name PalletNftsItemConfig (375) */ + /** @name PalletNftsItemConfig (366) */ interface PalletNftsItemConfig extends Struct { readonly settings: u64; } - /** @name PalletNftsCancelAttributesApprovalWitness (377) */ + /** @name PalletNftsCancelAttributesApprovalWitness (368) */ interface PalletNftsCancelAttributesApprovalWitness extends Struct { readonly accountAttributes: u32; } - /** @name PalletNftsItemTip (379) */ + /** @name PalletNftsItemTip (370) */ interface PalletNftsItemTip extends Struct { readonly collection: u32; readonly item: u32; @@ -4886,7 +4867,7 @@ declare module "@polkadot/types/lookup" { readonly amount: u128; } - /** @name PalletNftsPreSignedMint (381) */ + /** @name PalletNftsPreSignedMint (372) */ interface PalletNftsPreSignedMint extends Struct { readonly collection: u32; readonly item: u32; @@ -4897,7 +4878,7 @@ declare module "@polkadot/types/lookup" { readonly mintPrice: Option; } - /** @name SpRuntimeMultiSignature (382) */ + /** @name SpRuntimeMultiSignature (373) */ interface SpRuntimeMultiSignature extends Enum { readonly isEd25519: boolean; readonly asEd25519: U8aFixed; @@ -4908,7 +4889,7 @@ declare module "@polkadot/types/lookup" { readonly type: "Ed25519" | "Sr25519" | "Ecdsa"; } - /** @name PalletNftsPreSignedAttributes (385) */ + /** @name PalletNftsPreSignedAttributes (376) */ interface PalletNftsPreSignedAttributes extends Struct { readonly collection: u32; readonly item: u32; @@ -4917,7 +4898,7 @@ declare module "@polkadot/types/lookup" { readonly deadline: u32; } - /** @name PalletParametersCall (386) */ + /** @name PalletParametersCall (377) */ interface PalletParametersCall extends Enum { readonly isSetParameter: boolean; readonly asSetParameter: { @@ -4926,14 +4907,14 @@ declare module "@polkadot/types/lookup" { readonly type: "SetParameter"; } - /** @name StorageHubRuntimeConfigsRuntimeParamsRuntimeParameters (387) */ + /** @name StorageHubRuntimeConfigsRuntimeParamsRuntimeParameters (378) */ interface StorageHubRuntimeConfigsRuntimeParamsRuntimeParameters extends Enum { readonly isRuntimeConfig: boolean; readonly asRuntimeConfig: StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParameters; readonly type: "RuntimeConfig"; } - /** @name StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParameters (388) */ + /** @name StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParameters (379) */ interface StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParameters extends Enum { readonly isSlashAmountPerMaxFileSize: boolean; readonly asSlashAmountPerMaxFileSize: ITuple< @@ -5065,19 +5046,19 @@ declare module "@polkadot/types/lookup" { | "BspStopStoringFilePenalty"; } - /** @name PalletSudoError (390) */ + /** @name PalletSudoError (381) */ interface PalletSudoError extends Enum { readonly isRequireSudo: boolean; readonly type: "RequireSudo"; } - /** @name PalletCollatorSelectionCandidateInfo (393) */ + /** @name PalletCollatorSelectionCandidateInfo (384) */ interface PalletCollatorSelectionCandidateInfo extends Struct { readonly who: AccountId32; readonly deposit: u128; } - /** @name PalletCollatorSelectionError (395) */ + /** @name PalletCollatorSelectionError (386) */ interface PalletCollatorSelectionError extends Enum { readonly isTooManyCandidates: boolean; readonly isTooFewEligibleCollators: boolean; @@ -5116,10 +5097,10 @@ declare module "@polkadot/types/lookup" { | "InvalidUnreserve"; } - /** @name SpCoreCryptoKeyTypeId (399) */ + /** @name SpCoreCryptoKeyTypeId (390) */ interface SpCoreCryptoKeyTypeId extends U8aFixed {} - /** @name PalletSessionError (400) */ + /** @name PalletSessionError (391) */ interface PalletSessionError extends Enum { readonly isInvalidProof: boolean; readonly isNoAssociatedValidatorId: boolean; @@ -5134,7 +5115,7 @@ declare module "@polkadot/types/lookup" { | "NoAccount"; } - /** @name CumulusPalletXcmpQueueOutboundChannelDetails (409) */ + /** @name CumulusPalletXcmpQueueOutboundChannelDetails (400) */ interface CumulusPalletXcmpQueueOutboundChannelDetails extends Struct { readonly recipient: u32; readonly state: CumulusPalletXcmpQueueOutboundState; @@ -5143,21 +5124,21 @@ declare module "@polkadot/types/lookup" { readonly lastIndex: u16; } - /** @name CumulusPalletXcmpQueueOutboundState (410) */ + /** @name CumulusPalletXcmpQueueOutboundState (401) */ interface CumulusPalletXcmpQueueOutboundState extends Enum { readonly isOk: boolean; readonly isSuspended: boolean; readonly type: "Ok" | "Suspended"; } - /** @name CumulusPalletXcmpQueueQueueConfigData (414) */ + /** @name CumulusPalletXcmpQueueQueueConfigData (405) */ interface CumulusPalletXcmpQueueQueueConfigData extends Struct { readonly suspendThreshold: u32; readonly dropThreshold: u32; readonly resumeThreshold: u32; } - /** @name CumulusPalletXcmpQueueError (415) */ + /** @name CumulusPalletXcmpQueueError (406) */ interface CumulusPalletXcmpQueueError extends Enum { readonly isBadQueueConfig: boolean; readonly isAlreadySuspended: boolean; @@ -5172,7 +5153,7 @@ declare module "@polkadot/types/lookup" { | "TooBig"; } - /** @name PalletXcmQueryStatus (416) */ + /** @name PalletXcmQueryStatus (407) */ interface PalletXcmQueryStatus extends Enum { readonly isPending: boolean; readonly asPending: { @@ -5194,7 +5175,7 @@ declare module "@polkadot/types/lookup" { readonly type: "Pending" | "VersionNotifier" | "Ready"; } - /** @name XcmVersionedResponse (420) */ + /** @name XcmVersionedResponse (411) */ interface XcmVersionedResponse extends Enum { readonly isV2: boolean; readonly asV2: XcmV2Response; @@ -5205,7 +5186,7 @@ declare module "@polkadot/types/lookup" { readonly type: "V2" | "V3" | "V4"; } - /** @name PalletXcmVersionMigrationStage (426) */ + /** @name PalletXcmVersionMigrationStage (417) */ interface PalletXcmVersionMigrationStage extends Enum { readonly isMigrateSupportedVersion: boolean; readonly isMigrateVersionNotifiers: boolean; @@ -5219,7 +5200,7 @@ declare module "@polkadot/types/lookup" { | "MigrateAndNotifyOldTargets"; } - /** @name PalletXcmRemoteLockedFungibleRecord (429) */ + /** @name PalletXcmRemoteLockedFungibleRecord (420) */ interface PalletXcmRemoteLockedFungibleRecord extends Struct { readonly amount: u128; readonly owner: XcmVersionedLocation; @@ -5227,7 +5208,7 @@ declare module "@polkadot/types/lookup" { readonly consumers: Vec>; } - /** @name PalletXcmError (436) */ + /** @name PalletXcmError (427) */ interface PalletXcmError extends Enum { readonly isUnreachable: boolean; readonly isSendFailure: boolean; @@ -5280,7 +5261,7 @@ declare module "@polkadot/types/lookup" { | "LocalExecutionIncomplete"; } - /** @name PalletMessageQueueBookState (437) */ + /** @name PalletMessageQueueBookState (428) */ interface PalletMessageQueueBookState extends Struct { readonly begin: u32; readonly end: u32; @@ -5290,13 +5271,13 @@ declare module "@polkadot/types/lookup" { readonly size_: u64; } - /** @name PalletMessageQueueNeighbours (439) */ + /** @name PalletMessageQueueNeighbours (430) */ interface PalletMessageQueueNeighbours extends Struct { readonly prev: CumulusPrimitivesCoreAggregateMessageOrigin; readonly next: CumulusPrimitivesCoreAggregateMessageOrigin; } - /** @name PalletMessageQueuePage (441) */ + /** @name PalletMessageQueuePage (432) */ interface PalletMessageQueuePage extends Struct { readonly remaining: u32; readonly remainingSize: u32; @@ -5306,7 +5287,7 @@ declare module "@polkadot/types/lookup" { readonly heap: Bytes; } - /** @name PalletMessageQueueError (443) */ + /** @name PalletMessageQueueError (434) */ interface PalletMessageQueueError extends Enum { readonly isNotReapable: boolean; readonly isNoPage: boolean; @@ -5329,13 +5310,13 @@ declare module "@polkadot/types/lookup" { | "RecursiveDisallowed"; } - /** @name PalletStorageProvidersSignUpRequest (444) */ + /** @name PalletStorageProvidersSignUpRequest (435) */ interface PalletStorageProvidersSignUpRequest extends Struct { readonly spSignUpRequest: PalletStorageProvidersSignUpRequestSpParams; readonly at: u32; } - /** @name PalletStorageProvidersSignUpRequestSpParams (445) */ + /** @name PalletStorageProvidersSignUpRequestSpParams (436) */ interface PalletStorageProvidersSignUpRequestSpParams extends Enum { readonly isBackupStorageProvider: boolean; readonly asBackupStorageProvider: PalletStorageProvidersBackupStorageProvider; @@ -5344,7 +5325,7 @@ declare module "@polkadot/types/lookup" { readonly type: "BackupStorageProvider" | "MainStorageProvider"; } - /** @name PalletStorageProvidersBackupStorageProvider (446) */ + /** @name PalletStorageProvidersBackupStorageProvider (437) */ interface PalletStorageProvidersBackupStorageProvider extends Struct { readonly capacity: u64; readonly capacityUsed: u64; @@ -5357,13 +5338,13 @@ declare module "@polkadot/types/lookup" { readonly signUpBlock: u32; } - /** @name PalletStorageProvidersMainStorageProviderSignUpRequest (447) */ + /** @name PalletStorageProvidersMainStorageProviderSignUpRequest (438) */ interface PalletStorageProvidersMainStorageProviderSignUpRequest extends Struct { readonly mspInfo: PalletStorageProvidersMainStorageProvider; readonly valueProp: PalletStorageProvidersValueProposition; } - /** @name PalletStorageProvidersMainStorageProvider (448) */ + /** @name PalletStorageProvidersMainStorageProvider (439) */ interface PalletStorageProvidersMainStorageProvider extends Struct { readonly capacity: u64; readonly capacityUsed: u64; @@ -5374,7 +5355,7 @@ declare module "@polkadot/types/lookup" { readonly signUpBlock: u32; } - /** @name PalletStorageProvidersBucket (449) */ + /** @name PalletStorageProvidersBucket (440) */ interface PalletStorageProvidersBucket extends Struct { readonly root: H256; readonly userId: AccountId32; @@ -5382,10 +5363,10 @@ declare module "@polkadot/types/lookup" { readonly private: bool; readonly readAccessGroupId: Option; readonly size_: u64; - readonly valuePropId: H256; + readonly valuePropId: Option; } - /** @name PalletStorageProvidersError (451) */ + /** @name PalletStorageProvidersError (442) */ interface PalletStorageProvidersError extends Enum { readonly isAlreadyRegistered: boolean; readonly isSignUpNotRequested: boolean; @@ -5424,6 +5405,7 @@ declare module "@polkadot/types/lookup" { readonly isFixedRatePaymentStreamNotFound: boolean; readonly isMspAlreadyAssignedToBucket: boolean; readonly isBucketSizeExceedsLimit: boolean; + readonly isBucketHasNoValueProposition: boolean; readonly isInvalidEncodedFileMetadata: boolean; readonly isInvalidEncodedAccountId: boolean; readonly isPaymentStreamNotFound: boolean; @@ -5465,12 +5447,13 @@ declare module "@polkadot/types/lookup" { | "FixedRatePaymentStreamNotFound" | "MspAlreadyAssignedToBucket" | "BucketSizeExceedsLimit" + | "BucketHasNoValueProposition" | "InvalidEncodedFileMetadata" | "InvalidEncodedAccountId" | "PaymentStreamNotFound"; } - /** @name PalletFileSystemStorageRequestMetadata (452) */ + /** @name PalletFileSystemStorageRequestMetadata (443) */ interface PalletFileSystemStorageRequestMetadata extends Struct { readonly requestedAt: u32; readonly owner: AccountId32; @@ -5485,17 +5468,17 @@ declare module "@polkadot/types/lookup" { readonly bspsVolunteered: u32; } - /** @name PalletFileSystemStorageRequestBspsMetadata (455) */ + /** @name PalletFileSystemStorageRequestBspsMetadata (446) */ interface PalletFileSystemStorageRequestBspsMetadata extends Struct { readonly confirmed: bool; } - /** @name PalletFileSystemMoveBucketRequestMetadata (464) */ + /** @name PalletFileSystemMoveBucketRequestMetadata (455) */ interface PalletFileSystemMoveBucketRequestMetadata extends Struct { readonly requester: AccountId32; } - /** @name PalletFileSystemError (465) */ + /** @name PalletFileSystemError (456) */ interface PalletFileSystemError extends Enum { readonly isStorageRequestAlreadyRegistered: boolean; readonly isStorageRequestNotFound: boolean; @@ -5630,7 +5613,7 @@ declare module "@polkadot/types/lookup" { | "FailedToGetOwnerAccount"; } - /** @name PalletProofsDealerError (471) */ + /** @name PalletProofsDealerError (462) */ interface PalletProofsDealerError extends Enum { readonly isNotProvider: boolean; readonly isChallengesQueueOverflow: boolean; @@ -5679,7 +5662,7 @@ declare module "@polkadot/types/lookup" { | "TooManyValidProofSubmitters"; } - /** @name PalletPaymentStreamsFixedRatePaymentStream (474) */ + /** @name PalletPaymentStreamsFixedRatePaymentStream (465) */ interface PalletPaymentStreamsFixedRatePaymentStream extends Struct { readonly rate: u128; readonly lastChargedTick: u32; @@ -5687,7 +5670,7 @@ declare module "@polkadot/types/lookup" { readonly outOfFundsTick: Option; } - /** @name PalletPaymentStreamsDynamicRatePaymentStream (475) */ + /** @name PalletPaymentStreamsDynamicRatePaymentStream (466) */ interface PalletPaymentStreamsDynamicRatePaymentStream extends Struct { readonly amountProvided: u64; readonly priceIndexWhenLastCharged: u128; @@ -5695,13 +5678,13 @@ declare module "@polkadot/types/lookup" { readonly outOfFundsTick: Option; } - /** @name PalletPaymentStreamsProviderLastChargeableInfo (476) */ + /** @name PalletPaymentStreamsProviderLastChargeableInfo (467) */ interface PalletPaymentStreamsProviderLastChargeableInfo extends Struct { readonly lastChargeableTick: u32; readonly priceIndex: u128; } - /** @name PalletPaymentStreamsError (477) */ + /** @name PalletPaymentStreamsError (468) */ interface PalletPaymentStreamsError extends Enum { readonly isPaymentStreamAlreadyExists: boolean; readonly isPaymentStreamNotFound: boolean; @@ -5738,7 +5721,7 @@ declare module "@polkadot/types/lookup" { | "CooldownPeriodNotPassed"; } - /** @name PalletBucketNftsError (478) */ + /** @name PalletBucketNftsError (469) */ interface PalletBucketNftsError extends Enum { readonly isBucketIsNotPrivate: boolean; readonly isNotBucketOwner: boolean; @@ -5751,7 +5734,7 @@ declare module "@polkadot/types/lookup" { | "ConvertBytesToBoundedVec"; } - /** @name PalletNftsCollectionDetails (479) */ + /** @name PalletNftsCollectionDetails (470) */ interface PalletNftsCollectionDetails extends Struct { readonly owner: AccountId32; readonly ownerDeposit: u128; @@ -5761,7 +5744,7 @@ declare module "@polkadot/types/lookup" { readonly attributes: u32; } - /** @name PalletNftsCollectionRole (484) */ + /** @name PalletNftsCollectionRole (475) */ interface PalletNftsCollectionRole extends Enum { readonly isIssuer: boolean; readonly isFreezer: boolean; @@ -5769,44 +5752,44 @@ declare module "@polkadot/types/lookup" { readonly type: "Issuer" | "Freezer" | "Admin"; } - /** @name PalletNftsItemDetails (485) */ + /** @name PalletNftsItemDetails (476) */ interface PalletNftsItemDetails extends Struct { readonly owner: AccountId32; readonly approvals: BTreeMap>; readonly deposit: PalletNftsItemDeposit; } - /** @name PalletNftsItemDeposit (486) */ + /** @name PalletNftsItemDeposit (477) */ interface PalletNftsItemDeposit extends Struct { readonly account: AccountId32; readonly amount: u128; } - /** @name PalletNftsCollectionMetadata (491) */ + /** @name PalletNftsCollectionMetadata (482) */ interface PalletNftsCollectionMetadata extends Struct { readonly deposit: u128; readonly data: Bytes; } - /** @name PalletNftsItemMetadata (492) */ + /** @name PalletNftsItemMetadata (483) */ interface PalletNftsItemMetadata extends Struct { readonly deposit: PalletNftsItemMetadataDeposit; readonly data: Bytes; } - /** @name PalletNftsItemMetadataDeposit (493) */ + /** @name PalletNftsItemMetadataDeposit (484) */ interface PalletNftsItemMetadataDeposit extends Struct { readonly account: Option; readonly amount: u128; } - /** @name PalletNftsAttributeDeposit (496) */ + /** @name PalletNftsAttributeDeposit (487) */ interface PalletNftsAttributeDeposit extends Struct { readonly account: Option; readonly amount: u128; } - /** @name PalletNftsPendingSwap (500) */ + /** @name PalletNftsPendingSwap (491) */ interface PalletNftsPendingSwap extends Struct { readonly desiredCollection: u32; readonly desiredItem: Option; @@ -5814,7 +5797,7 @@ declare module "@polkadot/types/lookup" { readonly deadline: u32; } - /** @name PalletNftsPalletFeature (502) */ + /** @name PalletNftsPalletFeature (493) */ interface PalletNftsPalletFeature extends Enum { readonly isTrading: boolean; readonly isAttributes: boolean; @@ -5823,7 +5806,7 @@ declare module "@polkadot/types/lookup" { readonly type: "Trading" | "Attributes" | "Approvals" | "Swaps"; } - /** @name PalletNftsError (503) */ + /** @name PalletNftsError (494) */ interface PalletNftsError extends Enum { readonly isNoPermission: boolean; readonly isUnknownCollection: boolean; @@ -5918,42 +5901,42 @@ declare module "@polkadot/types/lookup" { | "WitnessRequired"; } - /** @name FrameSystemExtensionsCheckNonZeroSender (506) */ + /** @name FrameSystemExtensionsCheckNonZeroSender (497) */ type FrameSystemExtensionsCheckNonZeroSender = Null; - /** @name FrameSystemExtensionsCheckSpecVersion (507) */ + /** @name FrameSystemExtensionsCheckSpecVersion (498) */ type FrameSystemExtensionsCheckSpecVersion = Null; - /** @name FrameSystemExtensionsCheckTxVersion (508) */ + /** @name FrameSystemExtensionsCheckTxVersion (499) */ type FrameSystemExtensionsCheckTxVersion = Null; - /** @name FrameSystemExtensionsCheckGenesis (509) */ + /** @name FrameSystemExtensionsCheckGenesis (500) */ type FrameSystemExtensionsCheckGenesis = Null; - /** @name FrameSystemExtensionsCheckNonce (512) */ + /** @name FrameSystemExtensionsCheckNonce (503) */ interface FrameSystemExtensionsCheckNonce extends Compact {} - /** @name FrameSystemExtensionsCheckWeight (513) */ + /** @name FrameSystemExtensionsCheckWeight (504) */ type FrameSystemExtensionsCheckWeight = Null; - /** @name PalletTransactionPaymentChargeTransactionPayment (514) */ + /** @name PalletTransactionPaymentChargeTransactionPayment (505) */ interface PalletTransactionPaymentChargeTransactionPayment extends Compact {} - /** @name CumulusPrimitivesStorageWeightReclaimStorageWeightReclaim (515) */ + /** @name CumulusPrimitivesStorageWeightReclaimStorageWeightReclaim (506) */ type CumulusPrimitivesStorageWeightReclaimStorageWeightReclaim = Null; - /** @name FrameMetadataHashExtensionCheckMetadataHash (516) */ + /** @name FrameMetadataHashExtensionCheckMetadataHash (507) */ interface FrameMetadataHashExtensionCheckMetadataHash extends Struct { readonly mode: FrameMetadataHashExtensionMode; } - /** @name FrameMetadataHashExtensionMode (517) */ + /** @name FrameMetadataHashExtensionMode (508) */ interface FrameMetadataHashExtensionMode extends Enum { readonly isDisabled: boolean; readonly isEnabled: boolean; readonly type: "Disabled" | "Enabled"; } - /** @name StorageHubRuntimeRuntime (518) */ + /** @name StorageHubRuntimeRuntime (509) */ type StorageHubRuntimeRuntime = Null; } // declare module diff --git a/api-augment/storagehub.json b/api-augment/storagehub.json index 5a616e673..7154eb5d0 100644 --- a/api-augment/storagehub.json +++ b/api-augment/storagehub.json @@ -1,5 +1,5 @@ { "jsonrpc": "2.0", "id": "1", - "result": "0x6d6574610e1d08000c1c73705f636f72651863727970746f2c4163636f756e7449643332000004000401205b75383b2033325d0000040000032000000008000800000503000c08306672616d655f73797374656d2c4163636f756e74496e666f08144e6f6e636501102c4163636f756e74446174610114001401146e6f6e63651001144e6f6e6365000124636f6e73756d657273100120526566436f756e7400012470726f766964657273100120526566436f756e7400012c73756666696369656e7473100120526566436f756e740001106461746114012c4163636f756e74446174610000100000050500140c3c70616c6c65745f62616c616e6365731474797065732c4163636f756e7444617461041c42616c616e63650118001001106672656518011c42616c616e6365000120726573657276656418011c42616c616e636500011866726f7a656e18011c42616c616e6365000114666c6167731c01284578747261466c61677300001800000507001c0c3c70616c6c65745f62616c616e636573147479706573284578747261466c61677300000400180110753132380000200000050000240c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540128000c01186e6f726d616c2801045400012c6f7065726174696f6e616c280104540001246d616e6461746f7279280104540000280c2873705f77656967687473247765696768745f76321857656967687400000801207265665f74696d652c010c75363400012870726f6f665f73697a652c010c75363400002c000006300030000005060034083c7072696d69746976655f74797065731048323536000004000401205b75383b2033325d00003800000208003c102873705f72756e74696d651c67656e65726963186469676573741844696765737400000401106c6f677340013c5665633c4469676573744974656d3e000040000002440044102873705f72756e74696d651c67656e6572696318646967657374284469676573744974656d0001142850726552756e74696d650800480144436f6e73656e737573456e67696e654964000038011c5665633c75383e00060024436f6e73656e7375730800480144436f6e73656e737573456e67696e654964000038011c5665633c75383e000400105365616c0800480144436f6e73656e737573456e67696e654964000038011c5665633c75383e000500144f74686572040038011c5665633c75383e0000006452756e74696d65456e7669726f6e6d656e745570646174656400080000480000030400000008004c00000250005008306672616d655f73797374656d2c4576656e745265636f7264080445015404540134000c011470686173653d03011450686173650001146576656e7454010445000118746f70696373310201185665633c543e000054084c73746f726167655f6875625f72756e74696d653052756e74696d654576656e7400014c1853797374656d04005801706672616d655f73797374656d3a3a4576656e743c52756e74696d653e0000003c50617261636861696e53797374656d04007c01bc63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d3a3a4576656e743c52756e74696d653e0001002042616c616e636573040084017c70616c6c65745f62616c616e6365733a3a4576656e743c52756e74696d653e000a00485472616e73616374696f6e5061796d656e7404008c01a870616c6c65745f7472616e73616374696f6e5f7061796d656e743a3a4576656e743c52756e74696d653e000b00105375646f040090016c70616c6c65745f7375646f3a3a4576656e743c52756e74696d653e000f0044436f6c6c61746f7253656c656374696f6e0400a001a470616c6c65745f636f6c6c61746f725f73656c656374696f6e3a3a4576656e743c52756e74696d653e0015001c53657373696f6e0400a8015470616c6c65745f73657373696f6e3a3a4576656e740016002458636d7051756575650400ac01a463756d756c75735f70616c6c65745f78636d705f71756575653a3a4576656e743c52756e74696d653e001e002c506f6c6b61646f7458636d0400b0016870616c6c65745f78636d3a3a4576656e743c52756e74696d653e001f002843756d756c757358636d0400dd01018863756d756c75735f70616c6c65745f78636d3a3a4576656e743c52756e74696d653e002000304d65737361676551756575650400e101019070616c6c65745f6d6573736167655f71756575653a3a4576656e743c52756e74696d653e0021002450726f7669646572730400f10101a070616c6c65745f73746f726167655f70726f7669646572733a3a4576656e743c52756e74696d653e0028002846696c6553797374656d04001102018870616c6c65745f66696c655f73797374656d3a3a4576656e743c52756e74696d653e0029003050726f6f66734465616c657204006102019070616c6c65745f70726f6f66735f6465616c65723a3a4576656e743c52756e74696d653e002a002852616e646f6d6e6573730400a902018470616c6c65745f72616e646f6d6e6573733a3a4576656e743c52756e74696d653e002b00385061796d656e7453747265616d730400ad02019870616c6c65745f7061796d656e745f73747265616d733a3a4576656e743c52756e74696d653e002c00284275636b65744e6674730400b502018870616c6c65745f6275636b65745f6e6674733a3a4576656e743c52756e74696d653e002d00104e6674730400b902016c70616c6c65745f6e6674733a3a4576656e743c52756e74696d653e00320028506172616d65746572730400dd02018470616c6c65745f706172616d65746572733a3a4576656e743c52756e74696d653e00330000580c306672616d655f73797374656d1870616c6c6574144576656e7404045400011c4045787472696e7369635375636365737304013464697370617463685f696e666f5c01304469737061746368496e666f00000490416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e3c45787472696e7369634661696c656408013864697370617463685f6572726f7268013444697370617463684572726f7200013464697370617463685f696e666f5c01304469737061746368496e666f00010450416e2065787472696e736963206661696c65642e2c436f64655570646174656400020450603a636f6465602077617320757064617465642e284e65774163636f756e7404011c6163636f756e74000130543a3a4163636f756e7449640003046841206e6577206163636f756e742077617320637265617465642e344b696c6c65644163636f756e7404011c6163636f756e74000130543a3a4163636f756e74496400040458416e206163636f756e7420776173207265617065642e2052656d61726b656408011873656e646572000130543a3a4163636f756e7449640001106861736834011c543a3a48617368000504704f6e206f6e2d636861696e2072656d61726b2068617070656e65642e4455706772616465417574686f72697a6564080124636f64655f6861736834011c543a3a48617368000134636865636b5f76657273696f6e200110626f6f6c00060468416e20757067726164652077617320617574686f72697a65642e04704576656e7420666f72207468652053797374656d2070616c6c65742e5c0c346672616d655f737570706f7274206469737061746368304469737061746368496e666f00000c0118776569676874280118576569676874000114636c6173736001344469737061746368436c617373000120706179735f666565640110506179730000600c346672616d655f737570706f7274206469737061746368344469737061746368436c61737300010c184e6f726d616c0000002c4f7065726174696f6e616c000100244d616e6461746f727900020000640c346672616d655f737570706f727420646973706174636810506179730001080c596573000000084e6f0001000068082873705f72756e74696d653444697370617463684572726f72000138144f746865720000003043616e6e6f744c6f6f6b7570000100244261644f726967696e000200184d6f64756c6504006c012c4d6f64756c654572726f7200030044436f6e73756d657252656d61696e696e670004002c4e6f50726f76696465727300050040546f6f4d616e79436f6e73756d65727300060014546f6b656e0400700128546f6b656e4572726f720007002841726974686d65746963040074013c41726974686d657469634572726f72000800345472616e73616374696f6e616c04007801485472616e73616374696f6e616c4572726f7200090024457868617573746564000a0028436f7272757074696f6e000b002c556e617661696c61626c65000c0038526f6f744e6f74416c6c6f776564000d00006c082873705f72756e74696d652c4d6f64756c654572726f720000080114696e64657808010875380001146572726f7248018c5b75383b204d41585f4d4f44554c455f4552524f525f454e434f4445445f53495a455d000070082873705f72756e74696d6528546f6b656e4572726f720001284046756e6473556e617661696c61626c65000000304f6e6c7950726f76696465720001003042656c6f774d696e696d756d0002003043616e6e6f7443726561746500030030556e6b6e6f776e41737365740004001846726f7a656e0005002c556e737570706f727465640006004043616e6e6f74437265617465486f6c64000700344e6f74457870656e6461626c650008001c426c6f636b65640009000074083473705f61726974686d657469633c41726974686d657469634572726f7200010c24556e646572666c6f77000000204f766572666c6f77000100384469766973696f6e42795a65726f0002000078082873705f72756e74696d65485472616e73616374696f6e616c4572726f72000108304c696d6974526561636865640000001c4e6f4c61796572000100007c0c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d1870616c6c6574144576656e740404540001186056616c69646174696f6e46756e6374696f6e53746f726564000004d05468652076616c69646174696f6e2066756e6374696f6e20686173206265656e207363686564756c656420746f206170706c792e6456616c69646174696f6e46756e6374696f6e4170706c69656404015472656c61795f636861696e5f626c6f636b5f6e756d10015452656c6179436861696e426c6f636b4e756d62657200010445015468652076616c69646174696f6e2066756e6374696f6e20776173206170706c696564206173206f662074686520636f6e7461696e65642072656c617920636861696e20626c6f636b206e756d6265722e6c56616c69646174696f6e46756e6374696f6e446973636172646564000204b05468652072656c61792d636861696e2061626f727465642074686520757067726164652070726f636573732e60446f776e776172644d657373616765735265636569766564040114636f756e7410010c7533320003040101536f6d6520646f776e77617264206d657373616765732068617665206265656e20726563656976656420616e642077696c6c2062652070726f6365737365642e64446f776e776172644d6573736167657350726f63657373656408012c7765696768745f75736564280118576569676874000120646d715f6865616434014472656c61795f636861696e3a3a48617368000404e0446f776e77617264206d6573736167657320776572652070726f636573736564207573696e672074686520676976656e207765696768742e445570776172644d65737361676553656e740401306d6573736167655f6861736880013c4f7074696f6e3c58636d486173683e000504b8416e20757077617264206d657373616765207761732073656e7420746f207468652072656c617920636861696e2e047c54686520604576656e746020656e756d206f6620746869732070616c6c65748004184f7074696f6e04045401040108104e6f6e6500000010536f6d650400040000010000840c3c70616c6c65745f62616c616e6365731870616c6c6574144576656e740804540004490001581c456e646f77656408011c6163636f756e74000130543a3a4163636f756e744964000130667265655f62616c616e6365180128543a3a42616c616e6365000004b8416e206163636f756e74207761732063726561746564207769746820736f6d6520667265652062616c616e63652e20447573744c6f737408011c6163636f756e74000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650001083d01416e206163636f756e74207761732072656d6f7665642077686f73652062616c616e636520776173206e6f6e2d7a65726f206275742062656c6f77204578697374656e7469616c4465706f7369742c78726573756c74696e6720696e20616e206f75747269676874206c6f73732e205472616e736665720c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650002044c5472616e73666572207375636365656465642e2842616c616e636553657408010c77686f000130543a3a4163636f756e74496400011066726565180128543a3a42616c616e636500030468412062616c616e6365207761732073657420627920726f6f742e20526573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000404e0536f6d652062616c616e63652077617320726573657276656420286d6f7665642066726f6d206672656520746f207265736572766564292e28556e726573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000504e8536f6d652062616c616e63652077617320756e726573657276656420286d6f7665642066726f6d20726573657276656420746f2066726565292e4852657365727665526570617472696174656410011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500014864657374696e6174696f6e5f7374617475738801185374617475730006084d01536f6d652062616c616e636520776173206d6f7665642066726f6d207468652072657365727665206f6620746865206669727374206163636f756e7420746f20746865207365636f6e64206163636f756e742ed846696e616c20617267756d656e7420696e64696361746573207468652064657374696e6174696f6e2062616c616e636520747970652e1c4465706f73697408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000704d8536f6d6520616d6f756e7420776173206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e20576974686472617708010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650008041d01536f6d6520616d6f756e74207761732077697468647261776e2066726f6d20746865206163636f756e742028652e672e20666f72207472616e73616374696f6e2066656573292e1c536c617368656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650009040101536f6d6520616d6f756e74207761732072656d6f7665642066726f6d20746865206163636f756e742028652e672e20666f72206d69736265686176696f72292e184d696e74656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000a049c536f6d6520616d6f756e7420776173206d696e74656420696e746f20616e206163636f756e742e184275726e656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000b049c536f6d6520616d6f756e7420776173206275726e65642066726f6d20616e206163636f756e742e2453757370656e64656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000c041501536f6d6520616d6f756e74207761732073757370656e6465642066726f6d20616e206163636f756e74202869742063616e20626520726573746f726564206c61746572292e20526573746f72656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000d04a4536f6d6520616d6f756e742077617320726573746f72656420696e746f20616e206163636f756e742e20557067726164656404010c77686f000130543a3a4163636f756e744964000e0460416e206163636f756e74207761732075706772616465642e18497373756564040118616d6f756e74180128543a3a42616c616e6365000f042d01546f74616c2069737375616e63652077617320696e637265617365642062792060616d6f756e74602c206372656174696e6720612063726564697420746f2062652062616c616e6365642e2452657363696e646564040118616d6f756e74180128543a3a42616c616e63650010042501546f74616c2069737375616e636520776173206465637265617365642062792060616d6f756e74602c206372656174696e672061206465627420746f2062652062616c616e6365642e184c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500110460536f6d652062616c616e636520776173206c6f636b65642e20556e6c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500120468536f6d652062616c616e63652077617320756e6c6f636b65642e1846726f7a656e08010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500130460536f6d652062616c616e6365207761732066726f7a656e2e1854686177656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500140460536f6d652062616c616e636520776173207468617765642e4c546f74616c49737375616e6365466f7263656408010c6f6c64180128543a3a42616c616e636500010c6e6577180128543a3a42616c616e6365001504ac5468652060546f74616c49737375616e6365602077617320666f72636566756c6c79206368616e6765642e047c54686520604576656e746020656e756d206f6620746869732070616c6c65748814346672616d655f737570706f72741874726169747318746f6b656e73106d6973633442616c616e63655374617475730001081046726565000000205265736572766564000100008c0c6870616c6c65745f7472616e73616374696f6e5f7061796d656e741870616c6c6574144576656e74040454000104485472616e73616374696f6e466565506169640c010c77686f000130543a3a4163636f756e74496400012861637475616c5f66656518013042616c616e63654f663c543e00010c74697018013042616c616e63654f663c543e000008590141207472616e73616374696f6e20666565206061637475616c5f666565602c206f662077686963682060746970602077617320616464656420746f20746865206d696e696d756d20696e636c7573696f6e206665652c5c686173206265656e2070616964206279206077686f602e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574900c2c70616c6c65745f7375646f1870616c6c6574144576656e7404045400011014537564696404012c7375646f5f726573756c749401384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e00047041207375646f2063616c6c206a75737420746f6f6b20706c6163652e284b65794368616e67656408010c6f6c649c01504f7074696f6e3c543a3a4163636f756e7449643e04b4546865206f6c64207375646f206b657920286966206f6e65207761732070726576696f75736c7920736574292e010c6e6577000130543a3a4163636f756e7449640488546865206e6577207375646f206b657920286966206f6e652077617320736574292e010478546865207375646f206b657920686173206265656e20757064617465642e284b657952656d6f76656400020480546865206b657920776173207065726d616e656e746c792072656d6f7665642e285375646f4173446f6e6504012c7375646f5f726573756c749401384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e0304c841205b7375646f5f61735d2850616c6c65743a3a7375646f5f6173292063616c6c206a75737420746f6f6b20706c6163652e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574940418526573756c740804540198044501680108084f6b040098000000000c45727204006800000100009800000400009c04184f7074696f6e04045401000108104e6f6e6500000010536f6d650400000000010000a00c6470616c6c65745f636f6c6c61746f725f73656c656374696f6e1870616c6c6574144576656e74040454000128404e6577496e76756c6e657261626c6573040134696e76756c6e657261626c6573a401445665633c543a3a4163636f756e7449643e0000046c4e657720496e76756c6e657261626c65732077657265207365742e44496e76756c6e657261626c6541646465640401286163636f756e745f6964000130543a3a4163636f756e7449640001047441206e657720496e76756c6e657261626c65207761732061646465642e4c496e76756c6e657261626c6552656d6f7665640401286163636f756e745f6964000130543a3a4163636f756e74496400020470416e20496e76756c6e657261626c65207761732072656d6f7665642e504e65774465736972656443616e64696461746573040148646573697265645f63616e6469646174657310010c753332000304a4546865206e756d626572206f6620646573697265642063616e6469646174657320776173207365742e404e657743616e646964616379426f6e6404012c626f6e645f616d6f756e7418013042616c616e63654f663c543e0004046c5468652063616e64696461637920626f6e6420776173207365742e3843616e64696461746541646465640801286163636f756e745f6964000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e0005045c41206e65772063616e646964617465206a6f696e65642e5043616e646964617465426f6e64557064617465640801286163636f756e745f6964000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e00060470426f6e64206f6620612063616e64696461746520757064617465642e4043616e64696461746552656d6f7665640401286163636f756e745f6964000130543a3a4163636f756e74496400070460412063616e646964617465207761732072656d6f7665642e4443616e6469646174655265706c616365640c010c6f6c64000130543a3a4163636f756e74496400010c6e6577000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e000804f4416e206163636f756e7420776173207265706c6163656420696e207468652063616e646964617465206c69737420627920616e6f74686572206f6e652e68496e76616c6964496e76756c6e657261626c65536b69707065640401286163636f756e745f6964000130543a3a4163636f756e7449640009085501416e206163636f756e742077617320756e61626c6520746f20626520616464656420746f2074686520496e76756c6e657261626c65732062656361757365207468657920646964206e6f742068617665206b657973c8726567697374657265642e204f7468657220496e76756c6e657261626c6573206d61792068617665206265656e207365742e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574a40000020000a80c3870616c6c65745f73657373696f6e1870616c6c6574144576656e74000104284e657753657373696f6e04013473657373696f6e5f696e64657810013053657373696f6e496e64657800000839014e65772073657373696f6e206861732068617070656e65642e204e6f746520746861742074686520617267756d656e74206973207468652073657373696f6e20696e6465782c206e6f74207468659c626c6f636b206e756d626572206173207468652074797065206d6967687420737567676573742e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574ac0c6463756d756c75735f70616c6c65745f78636d705f71756575651870616c6c6574144576656e740404540001043c58636d704d65737361676553656e740401306d6573736167655f6861736804011c58636d48617368000004c0416e2048524d50206d657373616765207761732073656e7420746f2061207369626c696e672070617261636861696e2e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574b00c2870616c6c65745f78636d1870616c6c6574144576656e7404045400016024417474656d7074656404011c6f7574636f6d65b4015078636d3a3a6c61746573743a3a4f7574636f6d65000004a8457865637574696f6e206f6620616e2058434d206d6573736167652077617320617474656d707465642e1053656e741001186f726967696ebc01204c6f636174696f6e00012c64657374696e6174696f6ebc01204c6f636174696f6e00011c6d6573736167650501011c58636d3c28293e0001286d6573736167655f696404011c58636d486173680001045c412058434d206d657373616765207761732073656e742e48556e6578706563746564526573706f6e73650801186f726967696ebc01204c6f636174696f6e00012071756572795f696430011c5175657279496400020c5901517565727920726573706f6e736520726563656976656420776869636820646f6573206e6f74206d61746368206120726567697374657265642071756572792e2054686973206d61792062652062656361757365206155016d61746368696e6720717565727920776173206e6576657220726567697374657265642c206974206d617920626520626563617573652069742069732061206475706c696361746520726573706f6e73652c206f727062656361757365207468652071756572792074696d6564206f75742e34526573706f6e7365526561647908012071756572795f696430011c51756572794964000120726573706f6e736531010120526573706f6e73650003085d01517565727920726573706f6e736520686173206265656e20726563656976656420616e6420697320726561647920666f722074616b696e672077697468206074616b655f726573706f6e7365602e205468657265206973806e6f2072656769737465726564206e6f74696669636174696f6e2063616c6c2e204e6f7469666965640c012071756572795f696430011c5175657279496400013070616c6c65745f696e646578080108753800012863616c6c5f696e64657808010875380004085901517565727920726573706f6e736520686173206265656e20726563656976656420616e642071756572792069732072656d6f7665642e205468652072656769737465726564206e6f74696669636174696f6e20686173a86265656e206469737061746368656420616e64206578656375746564207375636365737366756c6c792e404e6f746966794f76657277656967687414012071756572795f696430011c5175657279496400013070616c6c65745f696e646578080108753800012863616c6c5f696e646578080108753800013461637475616c5f77656967687428011857656967687400014c6d61785f62756467657465645f77656967687428011857656967687400050c4901517565727920726573706f6e736520686173206265656e20726563656976656420616e642071756572792069732072656d6f7665642e205468652072656769737465726564206e6f74696669636174696f6e5901636f756c64206e6f742062652064697370617463686564206265636175736520746865206469737061746368207765696768742069732067726561746572207468616e20746865206d6178696d756d20776569676874e46f726967696e616c6c7920627564676574656420627920746869732072756e74696d6520666f722074686520717565727920726573756c742e4c4e6f7469667944697370617463684572726f720c012071756572795f696430011c5175657279496400013070616c6c65745f696e646578080108753800012863616c6c5f696e64657808010875380006085501517565727920726573706f6e736520686173206265656e20726563656976656420616e642071756572792069732072656d6f7665642e2054686572652077617320612067656e6572616c206572726f722077697468886469737061746368696e6720746865206e6f74696669636174696f6e2063616c6c2e484e6f746966794465636f64654661696c65640c012071756572795f696430011c5175657279496400013070616c6c65745f696e646578080108753800012863616c6c5f696e646578080108753800070c5101517565727920726573706f6e736520686173206265656e20726563656976656420616e642071756572792069732072656d6f7665642e205468652064697370617463682077617320756e61626c6520746f20626559016465636f64656420696e746f2061206043616c6c603b2074686973206d696768742062652064756520746f2064697370617463682066756e6374696f6e20686176696e672061207369676e6174757265207768696368946973206e6f742060286f726967696e2c20517565727949642c20526573706f6e736529602e40496e76616c6964526573706f6e6465720c01186f726967696ebc01204c6f636174696f6e00012071756572795f696430011c5175657279496400014465787065637465645f6c6f636174696f6e550101404f7074696f6e3c4c6f636174696f6e3e00080c5901457870656374656420717565727920726573706f6e736520686173206265656e2072656365697665642062757420746865206f726967696e206c6f636174696f6e206f662074686520726573706f6e736520646f657355016e6f74206d6174636820746861742065787065637465642e205468652071756572792072656d61696e73207265676973746572656420666f722061206c617465722c2076616c69642c20726573706f6e736520746f6c626520726563656976656420616e642061637465642075706f6e2e5c496e76616c6964526573706f6e64657256657273696f6e0801186f726967696ebc01204c6f636174696f6e00012071756572795f696430011c5175657279496400091c5101457870656374656420717565727920726573706f6e736520686173206265656e2072656365697665642062757420746865206578706563746564206f726967696e206c6f636174696f6e20706c6163656420696e4d0173746f7261676520627920746869732072756e74696d652070726576696f75736c792063616e6e6f74206265206465636f6465642e205468652071756572792072656d61696e7320726567697374657265642e0041015468697320697320756e6578706563746564202873696e63652061206c6f636174696f6e20706c6163656420696e2073746f7261676520696e20612070726576696f75736c7920657865637574696e674d0172756e74696d652073686f756c64206265207265616461626c65207072696f7220746f2071756572792074696d656f75742920616e642064616e6765726f75732073696e63652074686520706f737369626c79590176616c696420726573706f6e73652077696c6c2062652064726f707065642e204d616e75616c20676f7665726e616e636520696e74657276656e74696f6e2069732070726f6261626c7920676f696e6720746f2062651c6e65656465642e34526573706f6e736554616b656e04012071756572795f696430011c51756572794964000a04c8526563656976656420717565727920726573706f6e736520686173206265656e207265616420616e642072656d6f7665642e34417373657473547261707065640c011068617368340110483235360001186f726967696ebc01204c6f636174696f6e0001186173736574737501013c56657273696f6e6564417373657473000b04b8536f6d65206173736574732068617665206265656e20706c6163656420696e20616e20617373657420747261702e5456657273696f6e4368616e67654e6f74696669656410012c64657374696e6174696f6ebc01204c6f636174696f6e000118726573756c7410012858636d56657273696f6e000110636f7374110101184173736574730001286d6573736167655f696404011c58636d48617368000c0c2501416e2058434d2076657273696f6e206368616e6765206e6f74696669636174696f6e206d65737361676520686173206265656e20617474656d7074656420746f2062652073656e742e00e054686520636f7374206f662073656e64696e672069742028626f726e652062792074686520636861696e2920697320696e636c756465642e5c537570706f7274656456657273696f6e4368616e6765640801206c6f636174696f6ebc01204c6f636174696f6e00011c76657273696f6e10012858636d56657273696f6e000d08390154686520737570706f727465642076657273696f6e206f662061206c6f636174696f6e20686173206265656e206368616e6765642e2054686973206d69676874206265207468726f75676820616ec06175746f6d61746963206e6f74696669636174696f6e206f722061206d616e75616c20696e74657276656e74696f6e2e504e6f7469667954617267657453656e644661696c0c01206c6f636174696f6ebc01204c6f636174696f6e00012071756572795f696430011c517565727949640001146572726f72b8012058636d4572726f72000e0859014120676976656e206c6f636174696f6e2077686963682068616420612076657273696f6e206368616e676520737562736372697074696f6e207761732064726f70706564206f77696e6720746f20616e206572726f727c73656e64696e6720746865206e6f74696669636174696f6e20746f2069742e644e6f746966795461726765744d6967726174696f6e4661696c0801206c6f636174696f6ed901014456657273696f6e65644c6f636174696f6e00012071756572795f696430011c51756572794964000f0859014120676976656e206c6f636174696f6e2077686963682068616420612076657273696f6e206368616e676520737562736372697074696f6e207761732064726f70706564206f77696e6720746f20616e206572726f72b46d6967726174696e6720746865206c6f636174696f6e20746f206f7572206e65772058434d20666f726d61742e54496e76616c69645175657269657256657273696f6e0801186f726967696ebc01204c6f636174696f6e00012071756572795f696430011c5175657279496400101c5501457870656374656420717565727920726573706f6e736520686173206265656e20726563656976656420627574207468652065787065637465642071756572696572206c6f636174696f6e20706c6163656420696e4d0173746f7261676520627920746869732072756e74696d652070726576696f75736c792063616e6e6f74206265206465636f6465642e205468652071756572792072656d61696e7320726567697374657265642e0041015468697320697320756e6578706563746564202873696e63652061206c6f636174696f6e20706c6163656420696e2073746f7261676520696e20612070726576696f75736c7920657865637574696e674d0172756e74696d652073686f756c64206265207265616461626c65207072696f7220746f2071756572792074696d656f75742920616e642064616e6765726f75732073696e63652074686520706f737369626c79590176616c696420726573706f6e73652077696c6c2062652064726f707065642e204d616e75616c20676f7665726e616e636520696e74657276656e74696f6e2069732070726f6261626c7920676f696e6720746f2062651c6e65656465642e38496e76616c6964517565726965721001186f726967696ebc01204c6f636174696f6e00012071756572795f696430011c5175657279496400014065787065637465645f71756572696572bc01204c6f636174696f6e0001506d617962655f61637475616c5f71756572696572550101404f7074696f6e3c4c6f636174696f6e3e00110c5d01457870656374656420717565727920726573706f6e736520686173206265656e20726563656976656420627574207468652071756572696572206c6f636174696f6e206f662074686520726573706f6e736520646f657351016e6f74206d61746368207468652065787065637465642e205468652071756572792072656d61696e73207265676973746572656420666f722061206c617465722c2076616c69642c20726573706f6e736520746f6c626520726563656976656420616e642061637465642075706f6e2e5056657273696f6e4e6f74696679537461727465640c012c64657374696e6174696f6ebc01204c6f636174696f6e000110636f7374110101184173736574730001286d6573736167655f696404011c58636d486173680012085901412072656d6f746520686173207265717565737465642058434d2076657273696f6e206368616e6765206e6f74696669636174696f6e2066726f6d20757320616e64207765206861766520686f6e6f7265642069742e1d01412076657273696f6e20696e666f726d6174696f6e206d6573736167652069732073656e7420746f207468656d20616e642069747320636f737420697320696e636c756465642e5856657273696f6e4e6f746966795265717565737465640c012c64657374696e6174696f6ebc01204c6f636174696f6e000110636f7374110101184173736574730001286d6573736167655f696404011c58636d486173680013043d015765206861766520726571756573746564207468617420612072656d6f746520636861696e2073656e642075732058434d2076657273696f6e206368616e6765206e6f74696669636174696f6e732e6056657273696f6e4e6f74696679556e7265717565737465640c012c64657374696e6174696f6ebc01204c6f636174696f6e000110636f7374110101184173736574730001286d6573736167655f696404011c58636d4861736800140825015765206861766520726571756573746564207468617420612072656d6f746520636861696e2073746f70732073656e64696e672075732058434d2076657273696f6e206368616e6765386e6f74696669636174696f6e732e204665657350616964080118706179696e67bc01204c6f636174696f6e0001106665657311010118417373657473001504310146656573207765726520706169642066726f6d2061206c6f636174696f6e20666f7220616e206f7065726174696f6e20286f6674656e20666f72207573696e67206053656e6458636d60292e34417373657473436c61696d65640c011068617368340110483235360001186f726967696ebc01204c6f636174696f6e0001186173736574737501013c56657273696f6e6564417373657473001604c0536f6d65206173736574732068617665206265656e20636c61696d65642066726f6d20616e20617373657420747261706056657273696f6e4d6967726174696f6e46696e697368656404011c76657273696f6e10012858636d56657273696f6e00170484412058434d2076657273696f6e206d6967726174696f6e2066696e69736865642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574b4102c73746167696e675f78636d087634187472616974731c4f7574636f6d6500010c20436f6d706c6574650401107573656428011857656967687400000028496e636f6d706c657465080110757365642801185765696768740001146572726f72b801144572726f72000100144572726f720401146572726f72b801144572726f7200020000b8100c78636d08763318747261697473144572726f720001a0204f766572666c6f7700000034556e696d706c656d656e74656400010060556e74727573746564526573657276654c6f636174696f6e00020064556e7472757374656454656c65706f72744c6f636174696f6e000300304c6f636174696f6e46756c6c000400544c6f636174696f6e4e6f74496e7665727469626c65000500244261644f726967696e0006003c496e76616c69644c6f636174696f6e0007003441737365744e6f74466f756e64000800544661696c6564546f5472616e7361637441737365740009003c4e6f74576974686472617761626c65000a00484c6f636174696f6e43616e6e6f74486f6c64000b0054457863656564734d61784d65737361676553697a65000c005844657374696e6174696f6e556e737570706f72746564000d00245472616e73706f7274000e0028556e726f757461626c65000f0030556e6b6e6f776e436c61696d001000384661696c6564546f4465636f6465001100404d6178576569676874496e76616c6964001200384e6f74486f6c64696e674665657300130030546f6f457870656e736976650014001054726170040030010c753634001500404578706563746174696f6e46616c73650016003850616c6c65744e6f74466f756e64001700304e616d654d69736d617463680018004c56657273696f6e496e636f6d70617469626c6500190050486f6c64696e67576f756c644f766572666c6f77001a002c4578706f72744572726f72001b00385265616e63686f724661696c6564001c00184e6f4465616c001d0028466565734e6f744d6574001e00244c6f636b4572726f72001f00304e6f5065726d697373696f6e00200028556e616e63686f726564002100384e6f744465706f73697461626c650022004c556e68616e646c656458636d56657273696f6e002300485765696768744c696d69745265616368656404002801185765696768740024001c426172726965720025004c5765696768744e6f74436f6d70757461626c650026004445786365656473537461636b4c696d697400270000bc102c73746167696e675f78636d087634206c6f636174696f6e204c6f636174696f6e000008011c706172656e74730801087538000120696e746572696f72c001244a756e6374696f6e730000c0102c73746167696e675f78636d087634246a756e6374696f6e73244a756e6374696f6e7300012410486572650000000858310400c401484172633c5b4a756e6374696f6e3b20315d3e0001000858320400e801484172633c5b4a756e6374696f6e3b20325d3e0002000858330400ec01484172633c5b4a756e6374696f6e3b20335d3e0003000858340400f001484172633c5b4a756e6374696f6e3b20345d3e0004000858350400f401484172633c5b4a756e6374696f6e3b20355d3e0005000858360400f801484172633c5b4a756e6374696f6e3b20365d3e0006000858370400fc01484172633c5b4a756e6374696f6e3b20375d3e0007000858380400010101484172633c5b4a756e6374696f6e3b20385d3e00080000c400000301000000c800c8102c73746167696e675f78636d087634206a756e6374696f6e204a756e6374696f6e0001282450617261636861696e0400cc010c7533320000002c4163636f756e744964333208011c6e6574776f726bd001444f7074696f6e3c4e6574776f726b49643e00010869640401205b75383b2033325d000100384163636f756e74496e646578363408011c6e6574776f726bd001444f7074696f6e3c4e6574776f726b49643e000114696e6465782c010c753634000200304163636f756e744b6579323008011c6e6574776f726bd001444f7074696f6e3c4e6574776f726b49643e00010c6b6579d801205b75383b2032305d0003003850616c6c6574496e7374616e6365040008010875380004003047656e6572616c496e6465780400dc0110753132380005002847656e6572616c4b65790801186c656e6774680801087538000110646174610401205b75383b2033325d000600244f6e6c794368696c6400070024506c7572616c6974790801086964e00118426f6479496400011070617274e40120426f6479506172740008003c476c6f62616c436f6e73656e7375730400d401244e6574776f726b496400090000cc0000061000d004184f7074696f6e04045401d40108104e6f6e6500000010536f6d650400d40000010000d4102c73746167696e675f78636d087634206a756e6374696f6e244e6574776f726b496400012c24427947656e6573697304000401205b75383b2033325d000000184279466f726b080130626c6f636b5f6e756d62657230010c753634000128626c6f636b5f686173680401205b75383b2033325d00010020506f6c6b61646f74000200184b7573616d610003001c57657374656e6400040018526f636f636f00050018576f636f636f00060020457468657265756d040120636861696e5f69642c010c7536340007002c426974636f696e436f72650008002c426974636f696e4361736800090040506f6c6b61646f7442756c6c6574696e000a0000d8000003140000000800dc0000061800e0100c78636d087633206a756e6374696f6e18426f6479496400012810556e69740000001c4d6f6e696b6572040048011c5b75383b20345d00010014496e6465780400cc010c7533320002002445786563757469766500030024546563686e6963616c0004002c4c656769736c6174697665000500204a7564696369616c0006001c446566656e73650007003841646d696e697374726174696f6e00080020547265617375727900090000e4100c78636d087633206a756e6374696f6e20426f64795061727400011414566f6963650000001c4d656d62657273040114636f756e74cc010c753332000100204672616374696f6e08010c6e6f6dcc010c75333200011464656e6f6dcc010c7533320002004441744c6561737450726f706f7274696f6e08010c6e6f6dcc010c75333200011464656e6f6dcc010c753332000300484d6f72655468616e50726f706f7274696f6e08010c6e6f6dcc010c75333200011464656e6f6dcc010c75333200040000e800000302000000c800ec00000303000000c800f000000304000000c800f400000305000000c800f800000306000000c800fc00000307000000c800010100000308000000c80005010c2c73746167696e675f78636d0876340c58636d041043616c6c00000400090101585665633c496e737472756374696f6e3c43616c6c3e3e000009010000020d01000d010c2c73746167696e675f78636d0876342c496e737472756374696f6e041043616c6c0001c03457697468647261774173736574040011010118417373657473000000545265736572766541737365744465706f7369746564040011010118417373657473000100585265636569766554656c65706f727465644173736574040011010118417373657473000200345175657279526573706f6e736510012071756572795f69642c011c51756572794964000120726573706f6e736531010120526573706f6e73650001286d61785f77656967687428011857656967687400011c71756572696572550101404f7074696f6e3c4c6f636174696f6e3e000300345472616e7366657241737365740801186173736574731101011841737365747300012c62656e6566696369617279bc01204c6f636174696f6e000400505472616e736665725265736572766541737365740c01186173736574731101011841737365747300011064657374bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f6b696e64590101284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737428011857656967687400011063616c6c5d01014c446f75626c65456e636f6465643c43616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572cc010c7533320001406d61785f6d6573736167655f73697a65cc010c7533320001306d61785f6361706163697479cc010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74cc010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72cc010c75333200011873656e646572cc010c753332000124726563697069656e74cc010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e0400c00140496e746572696f724c6f636174696f6e000b002c5265706f72744572726f720400610101445175657279526573706f6e7365496e666f000c00304465706f73697441737365740801186173736574736501012c417373657446696c74657200012c62656e6566696369617279bc01204c6f636174696f6e000d004c4465706f7369745265736572766541737365740c01186173736574736501012c417373657446696c74657200011064657374bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e000e003445786368616e676541737365740c0110676976656501012c417373657446696c74657200011077616e741101011841737365747300011c6d6178696d616c200110626f6f6c000f005c496e6974696174655265736572766557697468647261770c01186173736574736501012c417373657446696c74657200011c72657365727665bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e00100040496e69746961746554656c65706f72740c01186173736574736501012c417373657446696c74657200011064657374bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e001100345265706f7274486f6c64696e67080134726573706f6e73655f696e666f610101445175657279526573706f6e7365496e666f0001186173736574736501012c417373657446696c74657200120030427579457865637574696f6e080110666565731901011441737365740001307765696768745f6c696d69747101012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204000501012458636d3c43616c6c3e0015002c536574417070656e64697804000501012458636d3c43616c6c3e00160028436c6561724572726f7200170028436c61696d4173736574080118617373657473110101184173736574730001187469636b6574bc01204c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f776569676874280118576569676874001a0048556e73756273637269626556657273696f6e001b00244275726e4173736574040011010118417373657473001c002c4578706563744173736574040011010118417373657473001d00304578706563744f726967696e0400550101404f7074696f6e3c4c6f636174696f6e3e001e002c4578706563744572726f720400350101504f7074696f6e3c287533322c204572726f72293e001f00504578706563745472616e7361637453746174757304004d0101384d617962654572726f72436f64650020002c517565727950616c6c657408012c6d6f64756c655f6e616d6538011c5665633c75383e000134726573706f6e73655f696e666f610101445175657279526573706f6e7365496e666f0021003045787065637450616c6c6574140114696e646578cc010c7533320001106e616d6538011c5665633c75383e00012c6d6f64756c655f6e616d6538011c5665633c75383e00012c63726174655f6d616a6f72cc010c75333200013c6d696e5f63726174655f6d696e6f72cc010c753332002200505265706f72745472616e736163745374617475730400610101445175657279526573706f6e7365496e666f0023004c436c6561725472616e736163745374617475730024003c556e6976657273616c4f726967696e0400c801204a756e6374696f6e002500344578706f72744d6573736167650c011c6e6574776f726bd401244e6574776f726b496400012c64657374696e6174696f6ec00140496e746572696f724c6f636174696f6e00010c78636d0501011c58636d3c28293e002600244c6f636b41737365740801146173736574190101144173736574000120756e6c6f636b6572bc01204c6f636174696f6e0027002c556e6c6f636b41737365740801146173736574190101144173736574000118746172676574bc01204c6f636174696f6e002800384e6f7465556e6c6f636b61626c6508011461737365741901011441737365740001146f776e6572bc01204c6f636174696f6e0029003452657175657374556e6c6f636b08011461737365741901011441737365740001186c6f636b6572bc01204c6f636174696f6e002a002c536574466565734d6f64650401306a69745f7769746864726177200110626f6f6c002b0020536574546f70696304000401205b75383b2033325d002c0028436c656172546f706963002d002c416c6961734f726967696e0400bc01204c6f636174696f6e002e003c556e70616964457865637574696f6e0801307765696768745f6c696d69747101012c5765696768744c696d6974000130636865636b5f6f726967696e550101404f7074696f6e3c4c6f636174696f6e3e002f00001101102c73746167696e675f78636d0876341461737365741841737365747300000400150101285665633c41737365743e000015010000021901001901102c73746167696e675f78636d087634146173736574144173736574000008010869641d01011c4173736574496400010c66756e2101012c46756e676962696c69747900001d01102c73746167696e675f78636d0876341461737365741c4173736574496400000400bc01204c6f636174696f6e00002101102c73746167696e675f78636d0876341461737365742c46756e676962696c6974790001082046756e6769626c650400dc0110753132380000002c4e6f6e46756e6769626c650400250101344173736574496e7374616e6365000100002501102c73746167696e675f78636d087634146173736574344173736574496e7374616e636500011824556e646566696e656400000014496e6465780400dc01107531323800010018417272617934040048011c5b75383b20345d0002001841727261793804002901011c5b75383b20385d0003001c4172726179313604002d0101205b75383b2031365d0004001c4172726179333204000401205b75383b2033325d0005000029010000030800000008002d0100000310000000080031010c2c73746167696e675f78636d08763420526573706f6e7365000118104e756c6c000000184173736574730400110101184173736574730001003c457865637574696f6e526573756c740400350101504f7074696f6e3c287533322c204572726f72293e0002001c56657273696f6e040010013873757065723a3a56657273696f6e0003002c50616c6c657473496e666f04003d010198426f756e6465645665633c50616c6c6574496e666f2c204d617850616c6c657473496e666f3e000400384469737061746368526573756c7404004d0101384d617962654572726f72436f646500050000350104184f7074696f6e0404540139010108104e6f6e6500000010536f6d6504003901000001000039010000040810b8003d010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454014101045300000400490101185665633c543e000041010c2c73746167696e675f78636d0876342850616c6c6574496e666f0000180114696e646578cc010c7533320001106e616d6545010180426f756e6465645665633c75382c204d617850616c6c65744e616d654c656e3e00012c6d6f64756c655f6e616d6545010180426f756e6465645665633c75382c204d617850616c6c65744e616d654c656e3e0001146d616a6f72cc010c7533320001146d696e6f72cc010c7533320001147061746368cc010c753332000045010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e000049010000024101004d010c0c78636d087633384d617962654572726f72436f646500010c1c53756363657373000000144572726f7204005101018c426f756e6465645665633c75382c204d617844697370617463684572726f724c656e3e000100385472756e63617465644572726f7204005101018c426f756e6465645665633c75382c204d617844697370617463684572726f724c656e3e0002000051010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000550104184f7074696f6e04045401bc0108104e6f6e6500000010536f6d650400bc000001000059010c0c78636d087633284f726967696e4b696e64000110184e617469766500000040536f7665726569676e4163636f756e74000100245375706572757365720002000c58636d000300005d010c0c78636d38646f75626c655f656e636f64656434446f75626c65456e636f646564040454000004011c656e636f64656438011c5665633c75383e000061010c2c73746167696e675f78636d087634445175657279526573706f6e7365496e666f00000c012c64657374696e6174696f6ebc01204c6f636174696f6e00012071756572795f69642c011c517565727949640001286d61785f77656967687428011857656967687400006501102c73746167696e675f78636d0876341461737365742c417373657446696c74657200010820446566696e6974650400110101184173736574730000001057696c6404006901012457696c644173736574000100006901102c73746167696e675f78636d0876341461737365742457696c6441737365740001100c416c6c00000014416c6c4f6608010869641d01011c4173736574496400010c66756e6d01013c57696c6446756e676962696c69747900010028416c6c436f756e7465640400cc010c75333200020030416c6c4f66436f756e7465640c010869641d01011c4173736574496400010c66756e6d01013c57696c6446756e676962696c697479000114636f756e74cc010c753332000300006d01102c73746167696e675f78636d0876341461737365743c57696c6446756e676962696c6974790001082046756e6769626c650000002c4e6f6e46756e6769626c650001000071010c0c78636d0876332c5765696768744c696d697400010824556e6c696d697465640000001c4c696d697465640400280118576569676874000100007501080c78636d3c56657273696f6e656441737365747300010c08563204007901013c76323a3a4d756c74694173736574730001000856330400ad01013c76333a3a4d756c746941737365747300030008563404001101012876343a3a417373657473000400007901100c78636d087632286d756c746961737365742c4d756c7469417373657473000004007d01013c5665633c4d756c746941737365743e00007d010000028101008101100c78636d087632286d756c74696173736574284d756c74694173736574000008010869648501011c4173736574496400010c66756ea501012c46756e676962696c69747900008501100c78636d087632286d756c746961737365741c4173736574496400010820436f6e63726574650400890101344d756c74694c6f636174696f6e000000204162737472616374040038011c5665633c75383e000100008901100c78636d087632346d756c74696c6f636174696f6e344d756c74694c6f636174696f6e000008011c706172656e74730801087538000120696e746572696f728d0101244a756e6374696f6e7300008d01100c78636d087632346d756c74696c6f636174696f6e244a756e6374696f6e7300012410486572650000000858310400910101204a756e6374696f6e0001000858320800910101204a756e6374696f6e0000910101204a756e6374696f6e0002000858330c00910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0003000858341000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0004000858351400910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0005000858361800910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0006000858371c00910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0007000858382000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e000800009101100c78636d087632206a756e6374696f6e204a756e6374696f6e0001242450617261636861696e0400cc010c7533320000002c4163636f756e744964333208011c6e6574776f726b950101244e6574776f726b496400010869640401205b75383b2033325d000100384163636f756e74496e646578363408011c6e6574776f726b950101244e6574776f726b4964000114696e6465782c010c753634000200304163636f756e744b6579323008011c6e6574776f726b950101244e6574776f726b496400010c6b6579d801205b75383b2032305d0003003850616c6c6574496e7374616e6365040008010875380004003047656e6572616c496e6465780400dc0110753132380005002847656e6572616c4b65790400990101805765616b426f756e6465645665633c75382c20436f6e73745533323c33323e3e000600244f6e6c794368696c6400070024506c7572616c69747908010869649d010118426f6479496400011070617274a1010120426f6479506172740008000095010c0c78636d087632244e6574776f726b49640001100c416e79000000144e616d65640400990101805765616b426f756e6465645665633c75382c20436f6e73745533323c33323e3e00010020506f6c6b61646f74000200184b7573616d610003000099010c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401080453000004003801185665633c543e00009d010c0c78636d08763218426f6479496400012810556e6974000000144e616d65640400990101805765616b426f756e6465645665633c75382c20436f6e73745533323c33323e3e00010014496e6465780400cc010c7533320002002445786563757469766500030024546563686e6963616c0004002c4c656769736c6174697665000500204a7564696369616c0006001c446566656e73650007003841646d696e697374726174696f6e00080020547265617375727900090000a1010c0c78636d08763220426f64795061727400011414566f6963650000001c4d656d62657273040114636f756e74cc010c753332000100204672616374696f6e08010c6e6f6dcc010c75333200011464656e6f6dcc010c7533320002004441744c6561737450726f706f7274696f6e08010c6e6f6dcc010c75333200011464656e6f6dcc010c753332000300484d6f72655468616e50726f706f7274696f6e08010c6e6f6dcc010c75333200011464656e6f6dcc010c75333200040000a501100c78636d087632286d756c746961737365742c46756e676962696c6974790001082046756e6769626c650400dc0110753132380000002c4e6f6e46756e6769626c650400a90101344173736574496e7374616e636500010000a901100c78636d087632286d756c74696173736574344173736574496e7374616e636500011c24556e646566696e656400000014496e6465780400dc01107531323800010018417272617934040048011c5b75383b20345d0002001841727261793804002901011c5b75383b20385d0003001c4172726179313604002d0101205b75383b2031365d0004001c4172726179333204000401205b75383b2033325d00050010426c6f62040038011c5665633c75383e00060000ad01100c78636d087633286d756c746961737365742c4d756c746941737365747300000400b101013c5665633c4d756c746941737365743e0000b101000002b50100b501100c78636d087633286d756c74696173736574284d756c7469417373657400000801086964b901011c4173736574496400010c66756ed101012c46756e676962696c6974790000b901100c78636d087633286d756c746961737365741c4173736574496400010820436f6e63726574650400bd0101344d756c74694c6f636174696f6e00000020416273747261637404000401205b75383b2033325d00010000bd01102c73746167696e675f78636d087633346d756c74696c6f636174696f6e344d756c74694c6f636174696f6e000008011c706172656e74730801087538000120696e746572696f72c10101244a756e6374696f6e730000c101100c78636d087633246a756e6374696f6e73244a756e6374696f6e7300012410486572650000000858310400c50101204a756e6374696f6e0001000858320800c50101204a756e6374696f6e0000c50101204a756e6374696f6e0002000858330c00c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0003000858341000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0004000858351400c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0005000858361800c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0006000858371c00c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0007000858382000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e00080000c501100c78636d087633206a756e6374696f6e204a756e6374696f6e0001282450617261636861696e0400cc010c7533320000002c4163636f756e744964333208011c6e6574776f726bc90101444f7074696f6e3c4e6574776f726b49643e00010869640401205b75383b2033325d000100384163636f756e74496e646578363408011c6e6574776f726bc90101444f7074696f6e3c4e6574776f726b49643e000114696e6465782c010c753634000200304163636f756e744b6579323008011c6e6574776f726bc90101444f7074696f6e3c4e6574776f726b49643e00010c6b6579d801205b75383b2032305d0003003850616c6c6574496e7374616e6365040008010875380004003047656e6572616c496e6465780400dc0110753132380005002847656e6572616c4b65790801186c656e6774680801087538000110646174610401205b75383b2033325d000600244f6e6c794368696c6400070024506c7572616c6974790801086964e00118426f6479496400011070617274e40120426f6479506172740008003c476c6f62616c436f6e73656e7375730400cd0101244e6574776f726b496400090000c90104184f7074696f6e04045401cd010108104e6f6e6500000010536f6d650400cd010000010000cd01100c78636d087633206a756e6374696f6e244e6574776f726b496400012c24427947656e6573697304000401205b75383b2033325d000000184279466f726b080130626c6f636b5f6e756d62657230010c753634000128626c6f636b5f686173680401205b75383b2033325d00010020506f6c6b61646f74000200184b7573616d610003001c57657374656e6400040018526f636f636f00050018576f636f636f00060020457468657265756d040120636861696e5f69642c010c7536340007002c426974636f696e436f72650008002c426974636f696e4361736800090040506f6c6b61646f7442756c6c6574696e000a0000d101100c78636d087633286d756c746961737365742c46756e676962696c6974790001082046756e6769626c650400dc0110753132380000002c4e6f6e46756e6769626c650400d50101344173736574496e7374616e636500010000d501100c78636d087633286d756c74696173736574344173736574496e7374616e636500011824556e646566696e656400000014496e6465780400dc01107531323800010018417272617934040048011c5b75383b20345d0002001841727261793804002901011c5b75383b20385d0003001c4172726179313604002d0101205b75383b2031365d0004001c4172726179333204000401205b75383b2033325d00050000d901080c78636d4456657273696f6e65644c6f636174696f6e00010c08563204008901014476323a3a4d756c74694c6f636174696f6e0001000856330400bd01014476333a3a4d756c74694c6f636174696f6e0003000856340400bc013076343a3a4c6f636174696f6e00040000dd010c4863756d756c75735f70616c6c65745f78636d1870616c6c6574144576656e7404045400010c34496e76616c6964466f726d617404000401205b75383b2033325d00000880446f776e77617264206d65737361676520697320696e76616c69642058434d2e205c5b206964205c5d48556e737570706f7274656456657273696f6e04000401205b75383b2033325d000108bc446f776e77617264206d65737361676520697320756e737570706f727465642076657273696f6e206f662058434d2e205c5b206964205c5d404578656375746564446f776e7761726408000401205b75383b2033325d0000b4011c4f7574636f6d65000208c4446f776e77617264206d65737361676520657865637574656420776974682074686520676976656e206f7574636f6d652e445c5b2069642c206f7574636f6d65205c5d047c54686520604576656e746020656e756d206f6620746869732070616c6c6574e1010c5070616c6c65745f6d6573736167655f71756575651870616c6c6574144576656e740404540001104050726f63657373696e674661696c65640c010869643401104832353604945468652060626c616b65325f323536602068617368206f6620746865206d6573736167652e01186f726967696ee50101484d6573736167654f726967696e4f663c543e0464546865207175657565206f6620746865206d6573736167652e01146572726f72ed01014c50726f636573734d6573736167654572726f721060546865206572726f722074686174206f636375727265642e00490154686973206572726f7220697320707265747479206f70617175652e204d6f72652066696e652d677261696e6564206572726f7273206e65656420746f20626520656d6974746564206173206576656e74736862792074686520604d65737361676550726f636573736f72602e000455014d657373616765206469736361726465642064756520746f20616e206572726f7220696e2074686520604d65737361676550726f636573736f72602028757375616c6c79206120666f726d6174206572726f72292e2450726f63657373656410010869643401104832353604945468652060626c616b65325f323536602068617368206f6620746865206d6573736167652e01186f726967696ee50101484d6573736167654f726967696e4f663c543e0464546865207175657565206f6620746865206d6573736167652e012c7765696768745f7573656428011857656967687404c0486f77206d7563682077656967687420776173207573656420746f2070726f6365737320746865206d6573736167652e011c73756363657373200110626f6f6c18885768657468657220746865206d657373616765207761732070726f6365737365642e0049014e6f74652074686174207468697320646f6573206e6f74206d65616e20746861742074686520756e6465726c79696e6720604d65737361676550726f636573736f72602077617320696e7465726e616c6c7935017375636365737366756c2e204974202a736f6c656c792a206d65616e73207468617420746865204d512070616c6c65742077696c6c2074726561742074686973206173206120737563636573734d01636f6e646974696f6e20616e64206469736361726420746865206d6573736167652e20416e7920696e7465726e616c206572726f72206e6565647320746f20626520656d6974746564206173206576656e74736862792074686520604d65737361676550726f636573736f72602e0104544d6573736167652069732070726f6365737365642e484f766572776569676874456e71756575656410010869640401205b75383b2033325d04945468652060626c616b65325f323536602068617368206f6620746865206d6573736167652e01186f726967696ee50101484d6573736167654f726967696e4f663c543e0464546865207175657565206f6620746865206d6573736167652e0128706167655f696e64657810012450616765496e64657804605468652070616765206f6620746865206d6573736167652e01346d6573736167655f696e64657810011c543a3a53697a6504a454686520696e646578206f6620746865206d6573736167652077697468696e2074686520706167652e02048c4d65737361676520706c6163656420696e206f7665727765696768742071756575652e28506167655265617065640801186f726967696ee50101484d6573736167654f726967696e4f663c543e0458546865207175657565206f662074686520706167652e0114696e64657810012450616765496e646578045854686520696e646578206f662074686520706167652e03045454686973207061676520776173207265617065642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574e501085c63756d756c75735f7072696d6974697665735f636f7265584167677265676174654d6573736167654f726967696e00010c104865726500000018506172656e740001001c5369626c696e670400e901011850617261496400020000e9010c74706f6c6b61646f745f70617261636861696e5f7072696d697469766573287072696d6974697665730849640000040010010c7533320000ed0110346672616d655f737570706f727418747261697473206d657373616765734c50726f636573734d6573736167654572726f7200011824426164466f726d61740000001c436f72727570740001002c556e737570706f72746564000200284f7665727765696768740400280118576569676874000300145969656c6400040044537461636b4c696d69745265616368656400050000f1010c6070616c6c65745f73746f726167655f70726f7669646572731870616c6c6574144576656e740404540001345c4d7370526571756573745369676e5570537563636573730c010c77686f000130543a3a4163636f756e7449640001386d756c7469616464726573736573f50101444d756c74696164647265737365733c543e000120636170616369747930014853746f7261676544617461556e69743c543e000008b1014576656e7420656d6974746564207768656e2061204d61696e2053746f726167652050726f7669646572206861732072657175657374656420746f207369676e207570207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f7574e50174686174204d53502773206163636f756e742069642c20697473206d756c74696164647265737365732c2074686520746f74616c20646174612069742063616e2073746f7265206163636f7264696e6720746f20697473207374616b652c20616e64206974732076616c75652070726f706f736974696f6e2e404d73705369676e55705375636365737314010c77686f000130543a3a4163636f756e7449640001186d73705f69643401604d61696e53746f7261676550726f766964657249643c543e0001386d756c7469616464726573736573f50101444d756c74696164647265737365733c543e000120636170616369747930014853746f7261676544617461556e69743c543e00012876616c75655f70726f700102016456616c756550726f706f736974696f6e5769746849643c543e000108b5014576656e7420656d6974746564207768656e2061204d61696e2053746f726167652050726f76696465722068617320636f6e6669726d656420697473207369676e207570207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f7574dd0174686174204d53502773206163636f756e742069642c2074686520746f74616c20646174612069742063616e2073746f7265206163636f7264696e6720746f20697473207374616b652c20697473206d756c7469616464726573732c20616e64206974732076616c75652070726f706f736974696f6e2e5c427370526571756573745369676e5570537563636573730c010c77686f000130543a3a4163636f756e7449640001386d756c7469616464726573736573f50101444d756c74696164647265737365733c543e000120636170616369747930014853746f7261676544617461556e69743c543e000208b9014576656e7420656d6974746564207768656e2061204261636b75702053746f726167652050726f7669646572206861732072657175657374656420746f207369676e207570207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f7574890174686174204253502773206163636f756e742069642c20697473206d756c74696164647265737365732c20616e642074686520746f74616c20646174612069742063616e2073746f7265206163636f7264696e6720746f20697473207374616b652e404273705369676e55705375636365737310010c77686f000130543a3a4163636f756e7449640001186273705f69643401684261636b757053746f7261676550726f766964657249643c543e0001386d756c7469616464726573736573f50101444d756c74696164647265737365733c543e000120636170616369747930014853746f7261676544617461556e69743c543e000308bd014576656e7420656d6974746564207768656e2061204261636b75702053746f726167652050726f76696465722068617320636f6e6669726d656420697473207369676e207570207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f7574810174686174204253502773206163636f756e742069642c2074686520746f74616c20646174612069742063616e2073746f7265206163636f7264696e6720746f20697473207374616b652c20616e6420697473206d756c7469616464726573732e545369676e55705265717565737443616e63656c656404010c77686f000130543a3a4163636f756e7449640004087d014576656e7420656d6974746564207768656e2061207369676e207570207265717565737420686173206265656e2063616e63656c6564207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f7574d4746865206163636f756e74206964206f6620746865207573657220746861742063616e63656c65642074686520726571756573742e444d73705369676e4f66665375636365737308010c77686f000130543a3a4163636f756e7449640001186d73705f69643401604d61696e53746f7261676550726f766964657249643c543e00050889014576656e7420656d6974746564207768656e2061204d61696e2053746f726167652050726f766964657220686173207369676e6564206f6666207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f75745874686174204d53502773206163636f756e742069642e444273705369676e4f66665375636365737308010c77686f000130543a3a4163636f756e7449640001186273705f69643401684261636b757053746f7261676550726f766964657249643c543e00060891014576656e7420656d6974746564207768656e2061204261636b75702053746f726167652050726f766964657220686173207369676e6564206f6666207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f75745874686174204253502773206163636f756e742069642e3c43617061636974794368616e67656414010c77686f000130543a3a4163636f756e74496400012c70726f76696465725f69640d02015053746f7261676550726f766964657249643c543e0001306f6c645f636170616369747930014853746f7261676544617461556e69743c543e0001306e65775f636170616369747930014853746f7261676544617461556e69743c543e0001786e6578745f626c6f636b5f7768656e5f6368616e67655f616c6c6f776564100144426c6f636b4e756d626572466f723c543e00070865014576656e7420656d6974746564207768656e206120535020686173206368616e67656420697473206361706163697479207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f75744901746861742053502773206163636f756e742069642c20697473206f6c6420746f74616c2064617461207468617420636f756c642073746f72652c20616e6420746865206e657720746f74616c20646174612e1c536c617368656408012c70726f76696465725f69643401244861736849643c543e000138616d6f756e745f736c617368656418013042616c616e63654f663c543e000804a84576656e7420656d6974746564207768656e20616e20535020686173206265656e20736c61736865642e444d756c746941646472657373416464656408012c70726f76696465725f69643401244861736849643c543e0001406e65775f6d756c746961646472657373f901013c4d756c7469416464726573733c543e00090429014576656e7420656d6974746564207768656e20612050726f7669646572206861732061646465642061206e6577204d756c74694164647265737320746f20697473206163636f756e742e4c4d756c74694164647265737352656d6f76656408012c70726f76696465725f69643401244861736849643c543e00015072656d6f7665645f6d756c746961646472657373f901013c4d756c7469416464726573733c543e000a0429014576656e7420656d6974746564207768656e20612050726f7669646572206861732072656d6f7665642061204d756c7469416464726573732066726f6d20697473206163636f756e742e3856616c756550726f7041646465640c01186d73705f69643401604d61696e53746f7261676550726f766964657249643c543e00013476616c75655f70726f705f696434013856616c756550726f7049643c543e00012876616c75655f70726f700502014c56616c756550726f706f736974696f6e3c543e000b04dc4576656e7420656d6974746564207768656e20616e204d535020616464732061206e65772076616c75652070726f706f736974696f6e2e5056616c756550726f70556e617661696c61626c650801186d73705f69643401604d61696e53746f7261676550726f766964657249643c543e00013476616c75655f70726f705f696434013856616c756550726f7049643c543e000c0409014576656e7420656d6974746564207768656e20616e204d535027732076616c75652070726f706f736974696f6e206973206d61646520756e617661696c61626c652e04b4546865206576656e747320746861742063616e20626520656d697474656420627920746869732070616c6c6574f5010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401f901045300000400fd0101185665633c543e0000f9010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000fd01000002f9010001020c6070616c6c65745f73746f726167655f70726f7669646572731474797065735856616c756550726f706f736974696f6e5769746849640404540000080108696434013856616c756550726f7049643c543e00012876616c75655f70726f700502014c56616c756550726f706f736974696f6e3c543e000005020c6070616c6c65745f73746f726167655f70726f7669646572731474797065734056616c756550726f706f736974696f6e040454000010018070726963655f7065725f756e69745f6f665f646174615f7065725f626c6f636b18013042616c616e63654f663c543e000128636f6d6d69746d656e7409020134436f6d6d69746d656e743c543e0001446275636b65745f646174615f6c696d697430014853746f7261676544617461556e69743c543e000124617661696c61626c65200110626f6f6c000009020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e00000d020c6070616c6c65745f73746f726167655f70726f7669646572731474797065734453746f7261676550726f76696465724964040454000108544261636b757053746f7261676550726f766964657204003401684261636b757053746f7261676550726f766964657249643c543e0000004c4d61696e53746f7261676550726f766964657204003401604d61696e53746f7261676550726f766964657249643c543e0001000011020c4870616c6c65745f66696c655f73797374656d1870616c6c6574144576656e74040454000164244e65774275636b65741c010c77686f000130543a3a4163636f756e7449640001186d73705f696434014050726f76696465724964466f723c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001106e616d65f90101404275636b65744e616d65466f723c543e000134636f6c6c656374696f6e5f6964150201684f7074696f6e3c436f6c6c656374696f6e4964466f723c543e3e00011c70726976617465200110626f6f6c00013476616c75655f70726f705f696434013856616c756550726f7049643c543e000004b04e6f74696669657320746861742061206e6577206275636b657420686173206265656e20637265617465642e344275636b657444656c657465640c010c77686f000130543a3a4163636f756e7449640001246275636b65745f69643401384275636b65744964466f723c543e00014c6d617962655f636f6c6c656374696f6e5f6964150201684f7074696f6e3c436f6c6c656374696f6e4964466f723c543e3e000104bc4e6f746966696573207468617420616e20656d707479206275636b657420686173206265656e2064656c657465642e4c4d6f76654275636b65745265717565737465640c010c77686f000130543a3a4163636f756e7449640001246275636b65745f69643401384275636b65744964466f723c543e0001286e65775f6d73705f696434014050726f76696465724964466f723c543e000204cc4e6f74696669657320746861742061206275636b6574206973206265696e67206d6f76656420746f2061206e6577204d53502e504275636b6574507269766163795570646174656410010c77686f000130543a3a4163636f756e7449640001246275636b65745f69643401384275636b65744964466f723c543e000134636f6c6c656374696f6e5f6964150201684f7074696f6e3c436f6c6c656374696f6e4964466f723c543e3e00011c70726976617465200110626f6f6c000304c84e6f74696669657320746861742061206275636b65742773207072697661637920686173206265656e20757064617465642e6c4e6577436f6c6c656374696f6e416e644173736f63696174696f6e0c010c77686f000130543a3a4163636f756e7449640001246275636b65745f69643401384275636b65744964466f723c543e000134636f6c6c656374696f6e5f6964100148436f6c6c656374696f6e4964466f723c543e00040435014e6f74696669657320746861742061206e657720636f6c6c656374696f6e20686173206265656e206372656174656420616e64206173736f63696174656420776974682061206275636b65742e444e657753746f72616765526571756573741c010c77686f000130543a3a4163636f756e74496400012066696c655f6b65793401344d65726b6c65486173683c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001206c6f636174696f6e1902013c46696c654c6f636174696f6e3c543e00012c66696e6765727072696e7434013846696e6765727072696e743c543e00011073697a6530013853746f72616765446174613c543e000120706565725f696473f5010128506565724964733c543e000504e44e6f74696669657320746861742061206e65772066696c6520686173206265656e2072657175657374656420746f2062652073746f7265642e744d7370526573706f6e646564546f53746f72616765526571756573747304011c726573756c74731d0201884d7370526573706f6e6453746f726167655265717565737473526573756c743c543e000604e04e6f74696669657320746861742061204d53502068617320726573706f6e64656420746f2073746f7261676520726571756573742873292e504163636570746564427370566f6c756e746565721c01186273705f696434014050726f76696465724964466f723c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001206c6f636174696f6e1902013c46696c654c6f636174696f6e3c543e00012c66696e6765727072696e7434013846696e6765727072696e743c543e0001386d756c7469616464726573736573f50101444d756c74694164647265737365733c543e0001146f776e6572000130543a3a4163636f756e74496400011073697a6530013853746f72616765446174613c543e000704f04e6f746966696573207468617420612042535020686173206265656e20616363657074656420746f2073746f7265206120676976656e2066696c652e4c427370436f6e6669726d656453746f72696e6710010c77686f000130543a3a4163636f756e7449640001186273705f696434014050726f76696465724964466f723c543e00012466696c655f6b6579732d0201f0426f756e6465645665633c4d65726b6c65486173683c543e2c20543a3a4d61784261746368436f6e6669726d53746f7261676552657175657374733e0001206e65775f726f6f743401344d65726b6c65486173683c543e000804c04e6f746966696573207468617420612042535020636f6e6669726d65642073746f72696e6720612066696c652873292e5c53746f726167655265717565737446756c66696c6c656404012066696c655f6b65793401344d65726b6c65486173683c543e00090409014e6f746966696573207468617420612073746f72616765207265717565737420666f7220612066696c65206b657920686173206265656e2066756c66696c6c65642e5453746f72616765526571756573744578706972656404012066696c655f6b65793401344d65726b6c65486173683c543e000a04b44e6f746966696573207468652065787069726174696f6e206f6620612073746f7261676520726571756573742e5453746f72616765526571756573745265766f6b656404012066696c655f6b65793401344d65726b6c65486173683c543e000b0439014e6f746966696573207468617420612073746f72616765207265717565737420686173206265656e207265766f6b65642062792074686520757365722077686f20696e697469617465642069742e64427370526571756573746564546f53746f7053746f72696e671001186273705f696434014050726f76696465724964466f723c543e00012066696c655f6b65793401344d65726b6c65486173683c543e0001146f776e6572000130543a3a4163636f756e7449640001206c6f636174696f6e1902013c46696c654c6f636174696f6e3c543e000c0401014e6f746966696573207468617420612042535020686173206f70656e65642061207265717565737420746f2073746f702073746f72696e6720612066696c652e60427370436f6e6669726d53746f7070656453746f72696e670c01186273705f696434014050726f76696465724964466f723c543e00012066696c655f6b65793401344d65726b6c65486173683c543e0001206e65775f726f6f743401344d65726b6c65486173683c543e000d04bc4e6f7469666965732074686174206120425350206861732073746f707065642073746f72696e6720612066696c652e985072696f726974794368616c6c656e6765466f7246696c6544656c6574696f6e5175657565640801186973737565725d0201644569746865724163636f756e7449644f724d737049643c543e00012066696c655f6b65793401344d65726b6c65486173683c543e000e0451014e6f746966696573207468617420612066696c65206b657920686173206265656e2071756575656420666f722061207072696f72697479206368616c6c656e676520666f722066696c652064656c6574696f6e2e68537053746f7053746f72696e67496e736f6c76656e745573657214011473705f696434014050726f76696465724964466f723c543e00012066696c655f6b65793401344d65726b6c65486173683c543e0001146f776e6572000130543a3a4163636f756e7449640001206c6f636174696f6e1902013c46696c654c6f636174696f6e3c543e0001206e65775f726f6f743401344d65726b6c65486173683c543e000f0455014e6f74696669657320746861742061205350206861732073746f707065642073746f72696e6720612066696c65206265636175736520697473206f776e657220686173206265636f6d6520696e736f6c76656e742e784661696c6564546f51756575655072696f726974794368616c6c656e676508011075736572000130543a3a4163636f756e74496400012066696c655f6b65793401344d65726b6c65486173683c543e00100445014e6f74696669657320746861742061207072696f72697479206368616c6c656e6765206661696c656420746f2062652071756575656420666f722070656e64696e672066696c652064656c6574696f6e2e4c46696c6544656c6574696f6e5265717565737414011075736572000130543a3a4163636f756e74496400012066696c655f6b65793401344d65726b6c65486173683c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001186d73705f696434014050726f76696465724964466f723c543e00014870726f6f665f6f665f696e636c7573696f6e200110626f6f6c001104944e6f746966696573207468617420612066696c652077696c6c2062652064656c657465642eac50726f6f665375626d6974746564466f7250656e64696e6746696c6544656c6574696f6e526571756573741401186d73705f696434014050726f76696465724964466f723c543e00011075736572000130543a3a4163636f756e74496400012066696c655f6b65793401344d65726b6c65486173683c543e0001246275636b65745f69643401384275636b65744964466f723c543e00014870726f6f665f6f665f696e636c7573696f6e200110626f6f6c00120435014e6f746966696573207468617420612070726f6f6620686173206265656e207375626d697474656420666f7220612070656e64696e672066696c652064656c6574696f6e20726571756573742e704273704368616c6c656e67654379636c65496e697469616c6973656408010c77686f000130543a3a4163636f756e7449640001186273705f696434014050726f76696465724964466f723c543e00130845014e6f74696669657320746861742061204253502773206368616c6c656e6765206379636c6520686173206265656e20696e697469616c697365642c20616464696e67207468652066697273742066696c65ac6b657928732920746f20746865204253502773204d65726b6c6520506174726963696120466f726573742e604d6f76654275636b657452657175657374457870697265640801186d73705f696434014050726f76696465724964466f723c543e0001246275636b65745f69643401384275636b65744964466f723c543e001404c04e6f74696669657320746861742061206d6f7665206275636b657420726571756573742068617320657870697265642e484d6f76654275636b657441636365707465640801246275636b65745f69643401384275636b65744964466f723c543e0001186d73705f696434014050726f76696465724964466f723c543e001504cc4e6f74696669657320746861742061206275636b657420686173206265656e206d6f76656420746f2061206e6577204d53502e484d6f76654275636b657452656a65637465640801246275636b65745f69643401384275636b65744964466f723c543e0001186d73705f696434014050726f76696465724964466f723c543e00160405014e6f74696669657320746861742061206275636b6574206d6f7665207265717565737420686173206265656e2072656a656374656420627920746865204d53502e844461746153657276657252656769737465726564466f724d6f76654275636b65740801186273705f696434014050726f76696465724964466f723c543e0001246275636b65745f69643401384275636b65744964466f723c543e00170429014e6f7469666965732074686174206120646174612073657276657220686173206265656e207265676973746572656420666f722061206d6f7665206275636b657420726571756573742e5c4d737053746f7070656453746f72696e674275636b65740c01186d73705f696434014050726f76696465724964466f723c543e0001146f776e6572000130543a3a4163636f756e7449640001246275636b65745f69643401384275636b65744964466f723c543e001804c44e6f74696669657320746861742061204d5350206861732073746f707065642073746f72696e672061206275636b65742e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574150204184f7074696f6e04045401100108104e6f6e6500000010536f6d65040010000001000019020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e00001d020c4870616c6c65745f66696c655f73797374656d1474797065737c4d7370526573706f6e6453746f726167655265717565737473526573756c7404045400000801186d73705f696434014050726f76696465724964466f723c543e000124726573706f6e7365732102010d01426f756e6465645665633c4261746368526573706f6e7365733c543e2c204d617842617463684d7370526573706f6e6453746f7261676552657175657374733c543e3e000021020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454012502045300000400590201185665633c543e000025020c4870616c6c65745f66696c655f73797374656d147479706573384261746368526573706f6e73657304045400010c2041636365707465640400290201884d73704163636570746564426174636853746f7261676552657175657374733c543e0000002052656a65637465640400350201884d737052656a6563746564426174636853746f7261676552657175657374733c543e000100184661696c65640400490201804d73704661696c6564426174636853746f7261676552657175657374733c543e0002000029020c4870616c6c65745f66696c655f73797374656d1474797065737c4d73704163636570746564426174636853746f726167655265717565737473040454000010012466696c655f6b6579732d0201fc426f756e6465645665633c4d65726b6c65486173683c543e2c204d617842617463684d7370526573706f6e6453746f7261676552657175657374733c543e3e0001246275636b65745f69643401384275636b65744964466f723c543e00013c6e65775f6275636b65745f726f6f743401344d65726b6c65486173683c543e0001146f776e6572000130543a3a4163636f756e74496400002d020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540134045300000400310201185665633c543e00003102000002340035020c4870616c6c65745f66696c655f73797374656d1474797065737c4d737052656a6563746564426174636853746f72616765526571756573747304045400000c012466696c655f6b6579733902018101426f756e6465645665633c284d65726b6c65486173683c543e2c2052656a656374656453746f7261676552657175657374526561736f6e292c0a4d617842617463684d7370526573706f6e6453746f7261676552657175657374733c543e2c3e0001246275636b65745f69643401384275636b65744964466f723c543e0001146f776e6572000130543a3a4163636f756e744964000039020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454013d02045300000400450201185665633c543e00003d02000004083441020041020c4870616c6c65745f66696c655f73797374656d1474797065737052656a656374656453746f7261676552657175657374526561736f6e00011058526561636865644d6178696d756d4361706163697479000000505265636569766564496e76616c696450726f6f660001005046696c654b6579416c726561647953746f72656400020034496e7465726e616c4572726f720003000045020000023d020049020c4870616c6c65745f66696c655f73797374656d147479706573744d73704661696c6564426174636853746f72616765526571756573747304045400000c012466696c655f6b6579734d02014101426f756e6465645665633c284d65726b6c65486173683c543e2c2044697370617463684572726f72292c0a4d617842617463684d7370526573706f6e6453746f7261676552657175657374733c543e3e0001246275636b65745f69643401384275636b65744964466f723c543e0001146f776e6572000130543a3a4163636f756e74496400004d020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454015102045300000400550201185665633c543e0000510200000408346800550200000251020059020000022502005d020c4870616c6c65745f66696c655f73797374656d147479706573584569746865724163636f756e7449644f724d73704964040454000108244163636f756e7449640400000130543a3a4163636f756e744964000000144d73704964040034014050726f76696465724964466f723c543e0001000061020c5070616c6c65745f70726f6f66735f6465616c65721870616c6c6574144576656e74040454000124304e65774368616c6c656e676508010c77686f00013c4163636f756e744964466f723c543e0001386b65795f6368616c6c656e6765643401244b6579466f723c543e0000048441206d616e75616c206368616c6c656e676520776173207375626d69747465642e3450726f6f6641636365707465640c012070726f766964657234014050726f76696465724964466f723c543e00011470726f6f666502012050726f6f663c543e0001406c6173745f7469636b5f70726f76656e100144426c6f636b4e756d626572466f723c543e00010454412070726f6f66207761732061636365707465642e404e65774368616c6c656e6765536565640801446368616c6c656e6765735f7469636b6572100144426c6f636b4e756d626572466f723c543e0001107365656434015852616e646f6d6e6573734f7574707574466f723c543e0002048c41206e6577206368616c6c656e67652073656564207761732067656e6572617465642e584e6577436865636b706f696e744368616c6c656e67650801446368616c6c656e6765735f7469636b6572100144426c6f636b4e756d626572466f723c543e0001286368616c6c656e6765738d02015d01426f756e6465645665633c284b6579466f723c543e2c204f7074696f6e3c5472696552656d6f76654d75746174696f6e3e292c0a4d6178437573746f6d4368616c6c656e676573506572426c6f636b466f723c543e2c3e000304a441206e657720636865636b706f696e74206368616c6c656e6765207761732067656e6572617465642e44536c61736861626c6550726f766964657208012070726f766964657234014050726f76696465724964466f723c543e00015c6e6578745f6368616c6c656e67655f646561646c696e65100144426c6f636b4e756d626572466f723c543e0004045901412070726f766964657220776173206d61726b656420617320736c61736861626c6520616e64207468656972206368616c6c656e676520646561646c696e652077617320666f72636566756c6c79207075736865642e704e6f5265636f72644f664c6173745375626d697474656450726f6f6604012070726f766964657234014050726f76696465724964466f723c543e000504f84e6f207265636f7264206f6620746865206c617374207469636b207468652050726f7669646572207375626d697474656420612070726f6f6620666f722e704e65774368616c6c656e67654379636c65496e697469616c6973656410013063757272656e745f7469636b100144426c6f636b4e756d626572466f723c543e00015c6e6578745f6368616c6c656e67655f646561646c696e65100144426c6f636b4e756d626572466f723c543e00012070726f766964657234014050726f76696465724964466f723c543e0001586d617962655f70726f76696465725f6163636f756e749c01504f7074696f6e3c543a3a4163636f756e7449643e000604b4412070726f76696465722773206368616c6c656e6765206379636c652077617320696e697469616c697365642e404d75746174696f6e734170706c6965640c012070726f766964657234014050726f76696465724964466f723c543e0001246d75746174696f6e73a10201905665633c284b6579466f723c543e2c205472696552656d6f76654d75746174696f6e293e0001206e65775f726f6f743401244b6579466f723c543e000704c84120736574206f66206d75746174696f6e7320686173206265656e206170706c69656420746f2074686520466f726573742e4c4368616c6c656e6765735469636b6572536574040118706175736564200110626f6f6c000804d4546865205b604368616c6c656e6765735469636b6572605d20686173206265656e20706175736564206f7220756e7061757365642e047c54686520604576656e746020656e756d206f6620746869732070616c6c657465020c5070616c6c65745f70726f6f66735f6465616c65721474797065731450726f6f660404540000080130666f726573745f70726f6f6669020164466f72657374566572696669657250726f6f66466f723c543e0001286b65795f70726f6f66737102018042547265654d61703c4b6579466f723c543e2c204b657950726f6f663c543e3e000069020c1c73705f747269653473746f726167655f70726f6f6630436f6d7061637450726f6f660000040134656e636f6465645f6e6f6465736d0201305665633c5665633c75383e3e00006d0200000238007102042042547265654d617008044b01340456017502000400850200000075020c5070616c6c65745f70726f6f66735f6465616c6572147479706573204b657950726f6f66040454000008011470726f6f66790201584b6579566572696669657250726f6f66466f723c543e00013c6368616c6c656e67655f636f756e7410010c753332000079020c547368705f66696c655f6b65795f76657269666965721474797065733046696c654b657950726f6f66000008013466696c655f6d657461646174617d0201d846696c654d657461646174613c485f4c454e4754482c204348554e4b5f53495a452c2053495a455f544f5f4348414c4c454e4745533e00011470726f6f6669020130436f6d7061637450726f6f6600007d0208447368705f66696c655f6d657461646174613046696c654d6574616461746100001401146f776e657238011c5665633c75383e0001246275636b65745f696438011c5665633c75383e0001206c6f636174696f6e38011c5665633c75383e00012466696c655f73697a652c010c75363400012c66696e6765727072696e748102015446696e6765727072696e743c485f4c454e4754483e0000810208447368705f66696c655f6d657461646174612c46696e6765727072696e7400000400040138486173683c485f4c454e4754483e00008502000002890200890200000408347502008d020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540191020453000004009d0201185665633c543e000091020000040834950200950204184f7074696f6e0404540199020108104e6f6e6500000010536f6d65040099020000010000990208287368705f747261697473485472696552656d6f76654d75746174696f6e000000009d02000002910200a102000002a50200a5020000040834990200a9020c4470616c6c65745f72616e646f6d6e6573731870616c6c6574144576656e74040454000104844e65774f6e6545706f636841676f52616e646f6d6e657373417661696c61626c650c013c72616e646f6d6e6573735f7365656434011c543a3a4861736800012866726f6d5f65706f636830010c75363400014476616c69645f756e74696c5f626c6f636b100144426c6f636b4e756d626572466f723c543e00000419014576656e7420656d6974746564207768656e2061206e65772072616e646f6d207365656420697320617661696c61626c652066726f6d207468652072656c617920636861696e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574ad020c5870616c6c65745f7061796d656e745f73747265616d731870616c6c6574144576656e74040454000130744669786564526174655061796d656e7453747265616d437265617465640c0130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e0001107261746518013042616c616e63654f663c543e000008e5014576656e7420656d6974746564207768656e20612066697865642d72617465207061796d656e742073747265616d20697320637265617465642e2050726f766964657320696e666f726d6174696f6e2061626f7574207468652050726f766964657220616e642055736572206f66207468652073747265616d54616e642069747320696e697469616c20726174652e744669786564526174655061796d656e7453747265616d557064617465640c0130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e0001206e65775f7261746518013042616c616e63654f663c543e000108e5014576656e7420656d6974746564207768656e20612066697865642d72617465207061796d656e742073747265616d20697320757064617465642e2050726f766964657320696e666f726d6174696f6e2061626f757420746865205573657220616e642050726f7669646572206f66207468652073747265616d7c616e6420746865206e65772072617465206f66207468652073747265616d2e744669786564526174655061796d656e7453747265616d44656c65746564080130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e000204e9014576656e7420656d6974746564207768656e20612066697865642d72617465207061796d656e742073747265616d2069732072656d6f7665642e2050726f766964657320696e666f726d6174696f6e2061626f757420746865205573657220616e642050726f7669646572206f66207468652073747265616d2e7c44796e616d6963526174655061796d656e7453747265616d437265617465640c0130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e00013c616d6f756e745f70726f766964656430014c556e69747350726f7669646564466f723c543e000308ed014576656e7420656d6974746564207768656e20612064796e616d69632d72617465207061796d656e742073747265616d20697320637265617465642e2050726f766964657320696e666f726d6174696f6e2061626f757420746865205573657220616e642050726f7669646572206f66207468652073747265616d80616e642074686520696e697469616c20616d6f756e742070726f76696465642e7c44796e616d6963526174655061796d656e7453747265616d557064617465640c0130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e00014c6e65775f616d6f756e745f70726f766964656430014c556e69747350726f7669646564466f723c543e000408ed014576656e7420656d6974746564207768656e20612064796e616d69632d72617465207061796d656e742073747265616d20697320757064617465642e2050726f766964657320696e666f726d6174696f6e2061626f757420746865205573657220616e642050726f7669646572206f66207468652073747265616d70616e6420746865206e657720616d6f756e742070726f76696465642e7c44796e616d6963526174655061796d656e7453747265616d44656c65746564080130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e000504f1014576656e7420656d6974746564207768656e20612064796e616d69632d72617465207061796d656e742073747265616d2069732072656d6f7665642e2050726f766964657320696e666f726d6174696f6e2061626f757420746865205573657220616e642050726f7669646572206f66207468652073747265616d2e505061796d656e7453747265616d43686172676564140130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e000118616d6f756e7418013042616c616e63654f663c543e0001446c6173745f7469636b5f63686172676564100144426c6f636b4e756d626572466f723c543e00013c636861726765645f61745f7469636b100144426c6f636b4e756d626572466f723c543e00060879014576656e7420656d6974746564207768656e2061207061796d656e7420697320636861726765642e2050726f766964657320696e666f726d6174696f6e2061626f757420746865207573657220746861742077617320636861726765642ca9017468652050726f76696465722074686174207265636569766564207468652066756e64732c20746865207469636b20757020746f20776869636820697420776173206368617267656420616e642074686520616d6f756e7420746861742077617320636861726765642e305573657273436861726765640c0134757365725f6163636f756e7473b10201b4426f756e6465645665633c543a3a4163636f756e7449642c20543a3a4d61785573657273546f4368617267653e00012c70726f76696465725f696434014050726f76696465724964466f723c543e00013c636861726765645f61745f7469636b100144426c6f636b4e756d626572466f723c543e000708a5014576656e7420656d6974746564207768656e206d756c7469706c65207061796d656e742073747265616d732068617665206265656e20636861726765642066726f6d20612050726f76696465722e2050726f766964657320696e666f726d6174696f6e2061626f7574790174686520636861726765642075736572732c207468652050726f76696465722074686174207265636569766564207468652066756e647320616e6420746865207469636b207768656e20746865206368617267652068617070656e65642e644c61737443686172676561626c65496e666f557064617465640c012c70726f76696465725f696434014050726f76696465724964466f723c543e0001506c6173745f63686172676561626c655f7469636b100144426c6f636b4e756d626572466f723c543e00016c6c6173745f63686172676561626c655f70726963655f696e64657818013042616c616e63654f663c543e00080821024576656e7420656d6974746564207768656e20612050726f76696465722773206c6173742063686172676561626c65207469636b20616e6420707269636520696e6465782061726520757064617465642e2050726f766964657320696e666f726d6174696f6e2061626f7574207468652050726f7669646572206f66207468652073747265616d2c3501746865207469636b206e756d626572206f6620746865206c6173742063686172676561626c65207469636b20616e642074686520707269636520696e6465782061742074686174207469636b2e4055736572576974686f757446756e647304010c77686f000130543a3a4163636f756e74496400090c19024576656e7420656d6974746564207768656e20612050726f766964657220697320636f72726563746c7920747279696e6720746f206368617267652061205573657220616e642074686174205573657220646f6573206e6f74206861766520656e6f7567682066756e647320746f2070617920666f722074686569722073657276696365732e390254686973206576656e7420697320656d697474656420746f20666c616720746865207573657220616e64206c657420746865206e6574776f726b206b6e6f772074686174207468652075736572206973206e6f7420706179696e6720666f7220746865207265717565737465642073657276696365732c20736f206f746865722050726f7669646572732063616e9473746f702070726f766964696e6720736572766963657320746f207468617420757365722e345573657250616964446562747304010c77686f000130543a3a4163636f756e744964000a0449024576656e7420656d6974746564207768656e20612055736572207468617420686173206265656e20666c6167676564206173206e6f7420686176696e6720656e6f7567682066756e647320746f2070617920666f7220746865697220636f6e7472616374656420736572766963657320686173207061696420616c6c20697473206f75747374616e64696e6720646562742e2c55736572536f6c76656e7404010c77686f000130543a3a4163636f756e744964000b083d024576656e7420656d6974746564207768656e20612055736572207468617420686173206265656e20666c6167676564206173206e6f7420686176696e6720656e6f7567682066756e647320746f2070617920666f7220746865697220636f6e7472616374656420736572766963657320686173207761697465642074686520636f6f6c646f776e20706572696f642c4901636f72726563746c79207061696420616c6c207468656972206f75747374616e64696e67206465627420616e642063616e206e6f7720636f6e7472616374206e657720736572766963657320616761696e2e04b4546865206576656e747320746861742063616e20626520656d697474656420627920746869732070616c6c6574b1020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540100045300000400a401185665633c543e0000b5020c4870616c6c65745f6275636b65745f6e6674731870616c6c6574144576656e7404045400010c30416363657373536861726564080118697373756572000130543a3a4163636f756e744964000124726563697069656e740001684163636f756e7449644c6f6f6b75705461726765744f663c543e00000419014e6f74696669657320746861742061636365737320746f2061206275636b657420686173206265656e20736861726564207769746820616e6f74686572206163636f756e742e544974656d52656164416363657373557064617465640c011461646d696e000130543a3a4163636f756e7449640001186275636b65743401384275636b65744964466f723c543e00011c6974656d5f6964100124543a3a4974656d4964000104ec4e6f74696669657320746861742074686520726561642061636365737320666f7220616e206974656d20686173206265656e20757064617465642e284974656d4275726e65640c011c6163636f756e74000130543a3a4163636f756e7449640001186275636b65743401384275636b65744964466f723c543e00011c6974656d5f6964100124543a3a4974656d4964000204984e6f746966696573207468617420616e206974656d20686173206265656e206275726e65642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574b9020c2c70616c6c65745f6e6674731870616c6c6574144576656e740804540004490001981c437265617465640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400011c63726561746f72000130543a3a4163636f756e7449640001146f776e6572000130543a3a4163636f756e7449640000046c412060636f6c6c656374696f6e602077617320637265617465642e30466f72636543726561746564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001146f776e6572000130543a3a4163636f756e74496400010484412060636f6c6c656374696f6e602077617320666f7263652d637265617465642e2444657374726f796564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400020474412060636f6c6c656374696f6e60207761732064657374726f7965642e184973737565640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400030454416e20606974656d6020776173206973737565642e2c5472616e73666572726564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e74496400040468416e20606974656d6020776173207472616e736665727265642e184275726e65640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400050460416e20606974656d60207761732064657374726f7965642e484974656d5472616e736665724c6f636b6564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400060488416e20606974656d6020626563616d65206e6f6e2d7472616e7366657261626c652e504974656d5472616e73666572556e6c6f636b6564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400070478416e20606974656d6020626563616d65207472616e7366657261626c652e504974656d50726f706572746965734c6f636b6564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001346c6f636b5f6d65746164617461200110626f6f6c00013c6c6f636b5f61747472696275746573200110626f6f6c000804a8606974656d60206d65746164617461206f7220617474726962757465732077657265206c6f636b65642e40436f6c6c656374696f6e4c6f636b6564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400090474536f6d652060636f6c6c656374696f6e6020776173206c6f636b65642e304f776e65724368616e676564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001246e65775f6f776e6572000130543a3a4163636f756e744964000a0448546865206f776e6572206368616e6765642e2c5465616d4368616e676564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001186973737565729c01504f7074696f6e3c543a3a4163636f756e7449643e00011461646d696e9c01504f7074696f6e3c543a3a4163636f756e7449643e00011c667265657a65729c01504f7074696f6e3c543a3a4163636f756e7449643e000b0470546865206d616e6167656d656e74207465616d206368616e6765642e405472616e73666572417070726f766564140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400012064656c6567617465000130543a3a4163636f756e744964000120646561646c696e65150201644f7074696f6e3c426c6f636b4e756d626572466f723c543e3e000c083101416e20606974656d60206f6620612060636f6c6c656374696f6e6020686173206265656e20617070726f7665642062792074686520606f776e65726020666f72207472616e736665722062793461206064656c6567617465602e44417070726f76616c43616e63656c6c6564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400012064656c6567617465000130543a3a4163636f756e744964000d081901416e20617070726f76616c20666f722061206064656c656761746560206163636f756e7420746f207472616e736665722074686520606974656d60206f6620616e206974656da860636f6c6c656374696f6e60207761732063616e63656c6c65642062792069747320606f776e6572602e54416c6c417070726f76616c7343616e63656c6c65640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e744964000e049c416c6c20617070726f76616c73206f6620616e206974656d20676f742063616e63656c6c65642e5c436f6c6c656374696f6e436f6e6669674368616e676564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000f040101412060636f6c6c656374696f6e6020686173206861642069747320636f6e666967206368616e676564206279207468652060466f72636560206f726967696e2e54436f6c6c656374696f6e4d65746164617461536574080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400011064617461bd020178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e001004b44e6577206d6574616461746120686173206265656e2073657420666f7220612060636f6c6c656374696f6e602e64436f6c6c656374696f6e4d65746164617461436c6561726564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964001104b44d6574616461746120686173206265656e20636c656172656420666f7220612060636f6c6c656374696f6e602e3c4974656d4d657461646174615365740c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011064617461bd020178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e001204984e6577206d6574616461746120686173206265656e2073657420666f7220616e206974656d2e4c4974656d4d65746164617461436c6561726564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964001304984d6574616461746120686173206265656e20636c656172656420666f7220616e206974656d2e2c52656465706f7369746564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001407375636365737366756c5f6974656d73c10201385665633c543a3a4974656d49643e0014042101546865206465706f73697420666f72206120736574206f6620606974656d60732077697468696e20612060636f6c6c656374696f6e6020686173206265656e20757064617465642e30417474726962757465536574140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656d150201444f7074696f6e3c543a3a4974656d49643e00010c6b6579c502016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e00011476616c7565bd020174426f756e6465645665633c75382c20543a3a56616c75654c696d69743e0001246e616d657370616365c90201804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e00150405014e657720617474726962757465206d6574616461746120686173206265656e2073657420666f7220612060636f6c6c656374696f6e60206f7220606974656d602e40417474726962757465436c6561726564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656d150201444f7074696f6e3c543a3a4974656d49643e00010c6b6579c502016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e0001246e616d657370616365c90201804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e0016040501417474726962757465206d6574616461746120686173206265656e20636c656172656420666f7220612060636f6c6c656374696f6e60206f7220606974656d602e6c4974656d41747472696275746573417070726f76616c41646465640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465000130543a3a4163636f756e744964001704cc41206e657720617070726f76616c20746f206d6f64696679206974656d2061747472696275746573207761732061646465642e744974656d41747472696275746573417070726f76616c52656d6f7665640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465000130543a3a4163636f756e744964001804d441206e657720617070726f76616c20746f206d6f64696679206974656d2061747472696275746573207761732072656d6f7665642e684f776e657273686970416363657074616e63654368616e67656408010c77686f000130543a3a4163636f756e7449640001406d617962655f636f6c6c656374696f6e1502015c4f7074696f6e3c543a3a436f6c6c656374696f6e49643e001904c04f776e65727368697020616363657074616e636520686173206368616e67656420666f7220616e206163636f756e742e58436f6c6c656374696f6e4d6178537570706c79536574080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d61785f737570706c7910010c753332001a04a44d617820737570706c7920686173206265656e2073657420666f72206120636f6c6c656374696f6e2e74436f6c6c656374696f6e4d696e7453657474696e677355706461746564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964001b04ac4d696e742073657474696e677320666f72206120636f6c6c656374696f6e20686164206368616e6765642e6c4e657874436f6c6c656374696f6e4964496e6372656d656e74656404011c6e6578745f69641502015c4f7074696f6e3c543a3a436f6c6c656374696f6e49643e001c0401014576656e74206765747320656d6974746564207768656e2074686520604e657874436f6c6c656374696f6e496460206765747320696e6372656d656e7465642e304974656d5072696365536574100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964000114707269636518013c4974656d50726963653c542c20493e00014477686974656c69737465645f62757965729c01504f7074696f6e3c543a3a4163636f756e7449643e001d047c546865207072696365207761732073657420666f7220746865206974656d2e404974656d507269636552656d6f766564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964001e048c54686520707269636520666f7220746865206974656d207761732072656d6f7665642e284974656d426f75676874140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964000114707269636518013c4974656d50726963653c542c20493e00011873656c6c6572000130543a3a4163636f756e7449640001146275796572000130543a3a4163636f756e744964001f044c416e206974656d2077617320626f756768742e1c54697053656e74140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011873656e646572000130543a3a4163636f756e7449640001207265636569766572000130543a3a4163636f756e744964000118616d6f756e741801584465706f73697442616c616e63654f663c542c20493e0020043c4120746970207761732073656e742e2c53776170437265617465641801486f6666657265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001306f6666657265645f6974656d100124543a3a4974656d4964000148646573697265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000130646573697265645f6974656d150201444f7074696f6e3c543a3a4974656d49643e0001147072696365cd0201ac4f7074696f6e3c507269636557697468446972656374696f6e3c4974656d50726963653c542c20493e3e3e000120646561646c696e65100144426c6f636b4e756d626572466f723c543e00210488416e20606974656d60207377617020696e74656e742077617320637265617465642e345377617043616e63656c6c65641801486f6666657265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001306f6666657265645f6974656d100124543a3a4974656d4964000148646573697265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000130646573697265645f6974656d150201444f7074696f6e3c543a3a4974656d49643e0001147072696365cd0201ac4f7074696f6e3c507269636557697468446972656374696f6e3c4974656d50726963653c542c20493e3e3e000120646561646c696e65100144426c6f636b4e756d626572466f723c543e0022045c5468652073776170207761732063616e63656c6c65642e2c53776170436c61696d656420013c73656e745f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400012473656e745f6974656d100124543a3a4974656d496400013c73656e745f6974656d5f6f776e6572000130543a3a4163636f756e74496400014c72656365697665645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400013472656365697665645f6974656d100124543a3a4974656d496400014c72656365697665645f6974656d5f6f776e6572000130543a3a4163636f756e7449640001147072696365cd0201ac4f7074696f6e3c507269636557697468446972656374696f6e3c4974656d50726963653c542c20493e3e3e000120646561646c696e65100144426c6f636b4e756d626572466f723c543e00230468546865207377617020686173206265656e20636c61696d65642e585072655369676e6564417474726962757465735365740c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001246e616d657370616365c90201804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e002404fc4e657720617474726962757465732068617665206265656e2073657420666f7220616e20606974656d60206f66207468652060636f6c6c656374696f6e602e4850616c6c6574417474726962757465536574100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d150201444f7074696f6e3c543a3a4974656d49643e000124617474726962757465d902018450616c6c6574417474726962757465733c543a3a436f6c6c656374696f6e49643e00011476616c7565bd020174426f756e6465645665633c75382c20543a3a56616c75654c696d69743e0025084d0141206e65772061747472696275746520696e20746865206050616c6c657460206e616d657370616365207761732073657420666f72207468652060636f6c6c656374696f6e60206f7220616e20606974656d606477697468696e20746861742060636f6c6c656374696f6e602e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574bd020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000c1020000021000c5020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000c9020c2c70616c6c65745f6e667473147479706573484174747269627574654e616d65737061636504244163636f756e744964010001101850616c6c65740000003c436f6c6c656374696f6e4f776e6572000100244974656d4f776e65720002001c4163636f756e7404000001244163636f756e74496400030000cd0204184f7074696f6e04045401d1020108104e6f6e6500000010536f6d650400d1020000010000d1020c2c70616c6c65745f6e66747314747970657348507269636557697468446972656374696f6e0418416d6f756e74011800080118616d6f756e74180118416d6f756e74000124646972656374696f6ed50201385072696365446972656374696f6e0000d5020c2c70616c6c65745f6e667473147479706573385072696365446972656374696f6e0001081053656e640000001c5265636569766500010000d9020c2c70616c6c65745f6e6674731474797065734050616c6c6574417474726962757465730430436f6c6c656374696f6e4964011001082c55736564546f436c61696d0400100130436f6c6c656374696f6e4964000000405472616e7366657244697361626c656400010000dd020c4470616c6c65745f706172616d65746572731870616c6c6574144576656e740404540001041c557064617465640c010c6b6579e10201c43c543a3a52756e74696d65506172616d657465727320617320416767726567617465644b657956616c75653e3a3a4b65790464546865206b657920746861742077617320757064617465642e01246f6c645f76616c75652d0301ec4f7074696f6e3c3c543a3a52756e74696d65506172616d657465727320617320416767726567617465644b657956616c75653e3a3a56616c75653e047c546865206f6c642076616c7565206265666f726520746869732063616c6c2e01246e65775f76616c75652d0301ec4f7074696f6e3c3c543a3a52756e74696d65506172616d657465727320617320416767726567617465644b657956616c75653e3a3a56616c75653e0478546865206e65772076616c756520616674657220746869732063616c6c2e000c504120506172616d6574657220776173207365742e00bc497320616c736f20656d6974746564207768656e207468652076616c756520776173206e6f74206368616e6765642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574e102104c73746f726167655f6875625f72756e74696d651c636f6e666967733872756e74696d655f706172616d735052756e74696d65506172616d65746572734b65790001043452756e74696d65436f6e6669670400e50201bd013c64796e616d69635f706172616d733a3a72756e74696d655f636f6e6669673a3a506172616d6574657273206173206672616d655f737570706f72743a3a7472616974733a3a0a64796e616d69635f706172616d733a3a416767726567617465644b657956616c75653e3a3a4b657900000000e502184c73746f726167655f6875625f72756e74696d651c636f6e666967733872756e74696d655f706172616d733864796e616d69635f706172616d733872756e74696d655f636f6e66696734506172616d65746572734b657900014464536c617368416d6f756e745065724d617846696c6553697a650400e9020164536c617368416d6f756e745065724d617846696c6553697a65000000585374616b65546f4368616c6c656e6765506572696f640400ed0201585374616b65546f4368616c6c656e6765506572696f6400010064436865636b706f696e744368616c6c656e6765506572696f640400f1020164436865636b706f696e744368616c6c656e6765506572696f64000200484d696e4368616c6c656e6765506572696f640400f50201484d696e4368616c6c656e6765506572696f64000300a453797374656d5574696c69736174696f6e4c6f7765725468726573686f6c6450657263656e746167650400f90201a453797374656d5574696c69736174696f6e4c6f7765725468726573686f6c6450657263656e74616765000400a453797374656d5574696c69736174696f6e55707065725468726573686f6c6450657263656e746167650400fd0201a453797374656d5574696c69736174696f6e55707065725468726573686f6c6450657263656e74616765000500444d6f73746c79537461626c6550726963650400010301444d6f73746c79537461626c655072696365000600204d617850726963650400050301204d61785072696365000700204d696e50726963650400090301204d696e50726963650008004c55707065724578706f6e656e74466163746f7204000d03014c55707065724578706f6e656e74466163746f720009004c4c6f7765724578706f6e656e74466163746f7204001103014c4c6f7765724578706f6e656e74466163746f72000a005c5a65726f53697a654275636b657446697865645261746504001503015c5a65726f53697a654275636b6574466978656452617465000b0050496465616c5574696c69736174696f6e52617465040019030150496465616c5574696c69736174696f6e52617465000c002444656361795261746504001d030124446563617952617465000d00484d696e696d756d54726561737572794375740400210301484d696e696d756d5472656173757279437574000e00484d6178696d756d54726561737572794375740400250301484d6178696d756d5472656173757279437574000f006442737053746f7053746f72696e6746696c6550656e616c747904002903016442737053746f7053746f72696e6746696c6550656e616c747900100000e902184c73746f726167655f6875625f72756e74696d651c636f6e666967733872756e74696d655f706172616d733864796e616d69635f706172616d733872756e74696d655f636f6e66696764536c617368416d6f756e745065724d617846696c6553697a6500000000ed02184c73746f726167655f6875625f72756e74696d651c636f6e666967733872756e74696d655f706172616d733864796e616d69635f706172616d733872756e74696d655f636f6e666967585374616b65546f4368616c6c656e6765506572696f6400000000f102184c73746f726167655f6875625f72756e74696d651c636f6e666967733872756e74696d655f706172616d733864796e616d69635f706172616d733872756e74696d655f636f6e66696764436865636b706f696e744368616c6c656e6765506572696f6400000000f502184c73746f726167655f6875625f72756e74696d651c636f6e666967733872756e74696d655f706172616d733864796e616d69635f706172616d733872756e74696d655f636f6e666967484d696e4368616c6c656e6765506572696f6400000000f902184c73746f726167655f6875625f72756e74696d651c636f6e666967733872756e74696d655f706172616d733864796e616d69635f706172616d733872756e74696d655f636f6e666967a453797374656d5574696c69736174696f6e4c6f7765725468726573686f6c6450657263656e7461676500000000fd02184c73746f726167655f6875625f72756e74696d651c636f6e666967733872756e74696d655f706172616d733864796e616d69635f706172616d733872756e74696d655f636f6e666967a453797374656d5574696c69736174696f6e55707065725468726573686f6c6450657263656e74616765000000000103184c73746f726167655f6875625f72756e74696d651c636f6e666967733872756e74696d655f706172616d733864796e616d69635f706172616d733872756e74696d655f636f6e666967444d6f73746c79537461626c655072696365000000000503184c73746f726167655f6875625f72756e74696d651c636f6e666967733872756e74696d655f706172616d733864796e616d69635f706172616d733872756e74696d655f636f6e666967204d61785072696365000000000903184c73746f726167655f6875625f72756e74696d651c636f6e666967733872756e74696d655f706172616d733864796e616d69635f706172616d733872756e74696d655f636f6e666967204d696e5072696365000000000d03184c73746f726167655f6875625f72756e74696d651c636f6e666967733872756e74696d655f706172616d733864796e616d69635f706172616d733872756e74696d655f636f6e6669674c55707065724578706f6e656e74466163746f72000000001103184c73746f726167655f6875625f72756e74696d651c636f6e666967733872756e74696d655f706172616d733864796e616d69635f706172616d733872756e74696d655f636f6e6669674c4c6f7765724578706f6e656e74466163746f72000000001503184c73746f726167655f6875625f72756e74696d651c636f6e666967733872756e74696d655f706172616d733864796e616d69635f706172616d733872756e74696d655f636f6e6669675c5a65726f53697a654275636b6574466978656452617465000000001903184c73746f726167655f6875625f72756e74696d651c636f6e666967733872756e74696d655f706172616d733864796e616d69635f706172616d733872756e74696d655f636f6e66696750496465616c5574696c69736174696f6e52617465000000001d03184c73746f726167655f6875625f72756e74696d651c636f6e666967733872756e74696d655f706172616d733864796e616d69635f706172616d733872756e74696d655f636f6e66696724446563617952617465000000002103184c73746f726167655f6875625f72756e74696d651c636f6e666967733872756e74696d655f706172616d733864796e616d69635f706172616d733872756e74696d655f636f6e666967484d696e696d756d5472656173757279437574000000002503184c73746f726167655f6875625f72756e74696d651c636f6e666967733872756e74696d655f706172616d733864796e616d69635f706172616d733872756e74696d655f636f6e666967484d6178696d756d5472656173757279437574000000002903184c73746f726167655f6875625f72756e74696d651c636f6e666967733872756e74696d655f706172616d733864796e616d69635f706172616d733872756e74696d655f636f6e6669676442737053746f7053746f72696e6746696c6550656e616c7479000000002d0304184f7074696f6e0404540131030108104e6f6e6500000010536f6d650400310300000100003103104c73746f726167655f6875625f72756e74696d651c636f6e666967733872756e74696d655f706172616d735852756e74696d65506172616d657465727356616c75650001043452756e74696d65436f6e6669670400350301c5013c64796e616d69635f706172616d733a3a72756e74696d655f636f6e6669673a3a506172616d6574657273206173206672616d655f737570706f72743a3a7472616974733a3a0a64796e616d69635f706172616d733a3a416767726567617465644b657956616c75653e3a3a56616c7565000000003503184c73746f726167655f6875625f72756e74696d651c636f6e666967733872756e74696d655f706172616d733864796e616d69635f706172616d733872756e74696d655f636f6e6669673c506172616d657465727356616c756500014464536c617368416d6f756e745065724d617846696c6553697a65040018011c42616c616e6365000000585374616b65546f4368616c6c656e6765506572696f64040018011c42616c616e636500010064436865636b706f696e744368616c6c656e6765506572696f64040010012c426c6f636b4e756d626572000200484d696e4368616c6c656e6765506572696f64040010012c426c6f636b4e756d626572000300a453797374656d5574696c69736174696f6e4c6f7765725468726573686f6c6450657263656e7461676504003903011c50657262696c6c000400a453797374656d5574696c69736174696f6e55707065725468726573686f6c6450657263656e7461676504003903011c50657262696c6c000500444d6f73746c79537461626c655072696365040018011c42616c616e6365000600204d61785072696365040018011c42616c616e6365000700204d696e5072696365040018011c42616c616e63650008004c55707065724578706f6e656e74466163746f72040010010c7533320009004c4c6f7765724578706f6e656e74466163746f72040010010c753332000a005c5a65726f53697a654275636b6574466978656452617465040018011c42616c616e6365000b0050496465616c5574696c69736174696f6e5261746504003903011c50657262696c6c000c002444656361795261746504003903011c50657262696c6c000d00484d696e696d756d547265617375727943757404003903011c50657262696c6c000e00484d6178696d756d547265617375727943757404003903011c50657262696c6c000f006442737053746f7053746f72696e6746696c6550656e616c7479040018011c42616c616e63650010000039030c3473705f61726974686d65746963287065725f7468696e67731c50657262696c6c0000040010010c75333200003d0308306672616d655f73797374656d14506861736500010c384170706c7945787472696e736963040010010c7533320000003046696e616c697a6174696f6e00010038496e697469616c697a6174696f6e000200004103000002450300450300000408101000490308306672616d655f73797374656d584c61737452756e74696d6555706772616465496e666f0000080130737065635f76657273696f6ecc014c636f6465633a3a436f6d706163743c7533323e000124737065635f6e616d654d03016473705f72756e74696d653a3a52756e74696d65537472696e6700004d030000050200510308306672616d655f73797374656d60436f646555706772616465417574686f72697a6174696f6e0404540000080124636f64655f6861736834011c543a3a48617368000134636865636b5f76657273696f6e200110626f6f6c000055030c306672616d655f73797374656d1870616c6c65741043616c6c04045400012c1872656d61726b04011872656d61726b38011c5665633c75383e00000c684d616b6520736f6d65206f6e2d636861696e2072656d61726b2e008843616e20626520657865637574656420627920657665727920606f726967696e602e387365745f686561705f7061676573040114706167657330010c753634000104f853657420746865206e756d626572206f6620706167657320696e2074686520576562417373656d626c7920656e7669726f6e6d656e74277320686561702e207365745f636f6465040110636f646538011c5665633c75383e0002046453657420746865206e65772072756e74696d6520636f64652e5c7365745f636f64655f776974686f75745f636865636b73040110636f646538011c5665633c75383e000310190153657420746865206e65772072756e74696d6520636f646520776974686f757420646f696e6720616e7920636865636b73206f662074686520676976656e2060636f6465602e0051014e6f746520746861742072756e74696d652075706772616465732077696c6c206e6f742072756e20696620746869732069732063616c6c656420776974682061206e6f742d696e6372656173696e6720737065632076657273696f6e212c7365745f73746f726167650401146974656d73590301345665633c4b657956616c75653e0004046853657420736f6d65206974656d73206f662073746f726167652e306b696c6c5f73746f726167650401106b6579736d0201205665633c4b65793e000504744b696c6c20736f6d65206974656d732066726f6d2073746f726167652e2c6b696c6c5f70726566697808011870726566697838010c4b657900011c7375626b65797310010c75333200061011014b696c6c20616c6c2073746f72616765206974656d7320776974682061206b657920746861742073746172747320776974682074686520676976656e207072656669782e0039012a2a4e4f54453a2a2a2057652072656c79206f6e2074686520526f6f74206f726967696e20746f2070726f7669646520757320746865206e756d626572206f66207375626b65797320756e6465723d0174686520707265666978207765206172652072656d6f76696e6720746f2061636375726174656c792063616c63756c6174652074686520776569676874206f6620746869732066756e6374696f6e2e4472656d61726b5f776974685f6576656e7404011872656d61726b38011c5665633c75383e000704a44d616b6520736f6d65206f6e2d636861696e2072656d61726b20616e6420656d6974206576656e742e44617574686f72697a655f75706772616465040124636f64655f6861736834011c543a3a486173680009106101417574686f72697a6520616e207570677261646520746f206120676976656e2060636f64655f686173686020666f72207468652072756e74696d652e205468652072756e74696d652063616e20626520737570706c696564186c617465722e007c546869732063616c6c20726571756972657320526f6f74206f726967696e2e80617574686f72697a655f757067726164655f776974686f75745f636865636b73040124636f64655f6861736834011c543a3a48617368000a206101417574686f72697a6520616e207570677261646520746f206120676976656e2060636f64655f686173686020666f72207468652072756e74696d652e205468652072756e74696d652063616e20626520737570706c696564186c617465722e005d015741524e494e473a205468697320617574686f72697a657320616e207570677261646520746861742077696c6c2074616b6520706c61636520776974686f757420616e792073616665747920636865636b732c20666f7259016578616d706c652074686174207468652073706563206e616d652072656d61696e73207468652073616d6520616e642074686174207468652076657273696f6e206e756d62657220696e637265617365732e204e6f74f07265636f6d6d656e64656420666f72206e6f726d616c207573652e205573652060617574686f72697a655f757067726164656020696e73746561642e007c546869732063616c6c20726571756972657320526f6f74206f726967696e2e606170706c795f617574686f72697a65645f75706772616465040110636f646538011c5665633c75383e000b24550150726f766964652074686520707265696d616765202872756e74696d652062696e617279292060636f64656020666f7220616e2075706772616465207468617420686173206265656e20617574686f72697a65642e00490149662074686520617574686f72697a6174696f6e20726571756972656420612076657273696f6e20636865636b2c20746869732063616c6c2077696c6c20656e73757265207468652073706563206e616d65e872656d61696e7320756e6368616e67656420616e6420746861742074686520737065632076657273696f6e2068617320696e637265617365642e005901446570656e64696e67206f6e207468652072756e74696d65277320604f6e536574436f64656020636f6e66696775726174696f6e2c20746869732066756e6374696f6e206d6179206469726563746c79206170706c791101746865206e65772060636f64656020696e207468652073616d6520626c6f636b206f7220617474656d707420746f207363686564756c652074686520757067726164652e0060416c6c206f726967696e732061726520616c6c6f7765642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e59030000025d03005d030000040838380061030c306672616d655f73797374656d186c696d69747330426c6f636b5765696768747300000c0128626173655f626c6f636b2801185765696768740001246d61785f626c6f636b2801185765696768740001247065725f636c617373650301845065724469737061746368436c6173733c57656967687473506572436c6173733e000065030c346672616d655f737570706f7274206469737061746368405065724469737061746368436c617373040454016903000c01186e6f726d616c690301045400012c6f7065726174696f6e616c69030104540001246d616e6461746f72796903010454000069030c306672616d655f73797374656d186c696d6974733c57656967687473506572436c6173730000100138626173655f65787472696e7369632801185765696768740001346d61785f65787472696e7369636d0301384f7074696f6e3c5765696768743e0001246d61785f746f74616c6d0301384f7074696f6e3c5765696768743e00012072657365727665646d0301384f7074696f6e3c5765696768743e00006d0304184f7074696f6e04045401280108104e6f6e6500000010536f6d65040028000001000071030c306672616d655f73797374656d186c696d6974732c426c6f636b4c656e677468000004010c6d6178750301545065724469737061746368436c6173733c7533323e000075030c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540110000c01186e6f726d616c1001045400012c6f7065726174696f6e616c100104540001246d616e6461746f72791001045400007903082873705f776569676874733c52756e74696d65446257656967687400000801107265616430010c753634000114777269746530010c75363400007d03082873705f76657273696f6e3852756e74696d6556657273696f6e0000200124737065635f6e616d654d03013452756e74696d65537472696e67000124696d706c5f6e616d654d03013452756e74696d65537472696e67000144617574686f72696e675f76657273696f6e10010c753332000130737065635f76657273696f6e10010c753332000130696d706c5f76657273696f6e10010c753332000110617069738103011c4170697356656300014c7472616e73616374696f6e5f76657273696f6e10010c75333200013473746174655f76657273696f6e080108753800008103040c436f7704045401850300040085030000008503000002890300890300000408290110008d03000005040091030c306672616d655f73797374656d1870616c6c6574144572726f720404540001243c496e76616c6964537065634e616d650000081101546865206e616d65206f662073706563696669636174696f6e20646f6573206e6f74206d61746368206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e685370656356657273696f6e4e65656473546f496e63726561736500010841015468652073706563696669636174696f6e2076657273696f6e206973206e6f7420616c6c6f77656420746f206465637265617365206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e744661696c6564546f4578747261637452756e74696d6556657273696f6e00020cec4661696c656420746f2065787472616374207468652072756e74696d652076657273696f6e2066726f6d20746865206e65772072756e74696d652e0009014569746865722063616c6c696e672060436f72655f76657273696f6e60206f72206465636f64696e67206052756e74696d6556657273696f6e60206661696c65642e4c4e6f6e44656661756c74436f6d706f73697465000304fc537569636964652063616c6c6564207768656e20746865206163636f756e7420686173206e6f6e2d64656661756c7420636f6d706f7369746520646174612e3c4e6f6e5a65726f526566436f756e74000404350154686572652069732061206e6f6e2d7a65726f207265666572656e636520636f756e742070726576656e74696e6720746865206163636f756e742066726f6d206265696e67207075726765642e3043616c6c46696c7465726564000504d0546865206f726967696e2066696c7465722070726576656e74207468652063616c6c20746f20626520646973706174636865642e6c4d756c7469426c6f636b4d6967726174696f6e734f6e676f696e67000604550141206d756c74692d626c6f636b206d6967726174696f6e206973206f6e676f696e6720616e642070726576656e7473207468652063757272656e7420636f64652066726f6d206265696e67207265706c616365642e444e6f7468696e67417574686f72697a6564000704584e6f207570677261646520617574686f72697a65642e30556e617574686f72697a656400080494546865207375626d697474656420636f6465206973206e6f7420617574686f72697a65642e046c4572726f7220666f72207468652053797374656d2070616c6c6574950300000299030099030c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d48756e696e636c756465645f7365676d656e7420416e636573746f720404480134000c0138757365645f62616e6477696474689d0301345573656442616e647769647468000138706172615f686561645f68617368b10301244f7074696f6e3c483e000160636f6e73756d65645f676f5f61686561645f7369676e616cb503018c4f7074696f6e3c72656c61795f636861696e3a3a55706772616465476f41686561643e00009d030c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d48756e696e636c756465645f7365676d656e74345573656442616e64776964746800000c0134756d705f6d73675f636f756e7410010c75333200013c756d705f746f74616c5f627974657310010c75333200013468726d705f6f7574676f696e67a103018c42547265654d61703c5061726149642c2048726d704368616e6e656c5570646174653e0000a103042042547265654d617008044b01e901045601a503000400a903000000a5030c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d48756e696e636c756465645f7365676d656e744448726d704368616e6e656c55706461746500000801246d73675f636f756e7410010c75333200012c746f74616c5f627974657310010c7533320000a903000002ad0300ad0300000408e901a50300b10304184f7074696f6e04045401340108104e6f6e6500000010536f6d650400340000010000b50304184f7074696f6e04045401b9030108104e6f6e6500000010536f6d650400b9030000010000b9030c4c706f6c6b61646f745f7072696d6974697665730876383855706772616465476f41686561640001081441626f72740000001c476f416865616400010000bd030c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d48756e696e636c756465645f7365676d656e74385365676d656e74547261636b65720404480134000c0138757365645f62616e6477696474689d0301345573656442616e64776964746800013868726d705f77617465726d61726b150201804f7074696f6e3c72656c61795f636861696e3a3a426c6f636b4e756d6265723e000160636f6e73756d65645f676f5f61686561645f7369676e616cb503018c4f7074696f6e3c72656c61795f636861696e3a3a55706772616465476f41686561643e0000c1030c4c706f6c6b61646f745f7072696d6974697665730876385c50657273697374656456616c69646174696f6e446174610804480134044e01100010012c706172656e745f68656164c5030120486561644461746100014c72656c61795f706172656e745f6e756d6265721001044e00016472656c61795f706172656e745f73746f726167655f726f6f74340104480001306d61785f706f765f73697a6510010c7533320000c5030c74706f6c6b61646f745f70617261636861696e5f7072696d697469766573287072696d6974697665732048656164446174610000040038011c5665633c75383e0000c90304184f7074696f6e04045401cd030108104e6f6e6500000010536f6d650400cd030000010000cd030c4c706f6c6b61646f745f7072696d69746976657308763848557067726164655265737472696374696f6e0001041c50726573656e7400000000d1030c1c73705f747269653473746f726167655f70726f6f663053746f7261676550726f6f660000040128747269655f6e6f646573d503014442547265655365743c5665633c75383e3e0000d5030420425472656553657404045401380004006d02000000d9030c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d5072656c61795f73746174655f736e617073686f74584d6573736167696e675374617465536e617073686f740000100130646d715f6d71635f6865616434014472656c61795f636861696e3a3a4861736800019c72656c61795f64697370617463685f71756575655f72656d61696e696e675f6361706163697479dd03018c52656c61794469737061746368517565756552656d61696e696e674361706163697479000140696e67726573735f6368616e6e656c73e10301885665633c285061726149642c20416272696467656448726d704368616e6e656c293e00013c6567726573735f6368616e6e656c73e10301885665633c285061726149642c20416272696467656448726d704368616e6e656c293e0000dd030c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d5072656c61795f73746174655f736e617073686f748c52656c61794469737061746368517565756552656d61696e696e674361706163697479000008013c72656d61696e696e675f636f756e7410010c75333200013872656d61696e696e675f73697a6510010c7533320000e103000002e50300e50300000408e901e90300e9030c4c706f6c6b61646f745f7072696d6974697665730876384c416272696467656448726d704368616e6e656c00001801306d61785f636170616369747910010c7533320001386d61785f746f74616c5f73697a6510010c7533320001406d61785f6d6573736167655f73697a6510010c7533320001246d73675f636f756e7410010c753332000128746f74616c5f73697a6510010c7533320001206d71635f68656164b10301304f7074696f6e3c486173683e0000ed030c4c706f6c6b61646f745f7072696d697469766573087638644162726964676564486f7374436f6e66696775726174696f6e00002801346d61785f636f64655f73697a6510010c7533320001486d61785f686561645f646174615f73697a6510010c7533320001586d61785f7570776172645f71756575655f636f756e7410010c7533320001546d61785f7570776172645f71756575655f73697a6510010c75333200015c6d61785f7570776172645f6d6573736167655f73697a6510010c7533320001906d61785f7570776172645f6d6573736167655f6e756d5f7065725f63616e64696461746510010c75333200018868726d705f6d61785f6d6573736167655f6e756d5f7065725f63616e64696461746510010c75333200016c76616c69646174696f6e5f757067726164655f636f6f6c646f776e10012c426c6f636b4e756d62657200016076616c69646174696f6e5f757067726164655f64656c617910012c426c6f636b4e756d6265720001506173796e635f6261636b696e675f706172616d73f10301484173796e634261636b696e67506172616d730000f103104c706f6c6b61646f745f7072696d697469766573087638346173796e635f6261636b696e67484173796e634261636b696e67506172616d73000008014c6d61785f63616e6469646174655f646570746810010c753332000150616c6c6f7765645f616e6365737472795f6c656e10010c7533320000f503089463756d756c75735f7072696d6974697665735f70617261636861696e5f696e686572656e74444d6573736167655175657565436861696e0000040034012452656c6179486173680000f903042042547265654d617008044b01e901045601f503000400fd03000000fd03000002010400010400000408e901f50300050400000209040009040860706f6c6b61646f745f636f72655f7072696d6974697665734c4f7574626f756e6448726d704d6573736167650408496401e90100080124726563697069656e74e901010849640001106461746138014c616c6c6f633a3a7665633a3a5665633c75383e00000d040c3473705f61726974686d657469632c66697865645f706f696e74244669786564553132380000040018011075313238000011040c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d1870616c6c65741043616c6c0404540001084c7365745f76616c69646174696f6e5f64617461040110646174611504015450617261636861696e496e686572656e744461746100002480536574207468652063757272656e742076616c69646174696f6e20646174612e004101546869732073686f756c6420626520696e766f6b65642065786163746c79206f6e63652070657220626c6f636b2e2049742077696c6c2070616e6963206174207468652066696e616c697a6174696f6e887068617365206966207468652063616c6c20776173206e6f7420696e766f6b65642e00d0546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652060496e686572656e7460002101417320612073696465206566666563742c20746869732066756e6374696f6e207570677261646573207468652063757272656e742076616c69646174696f6e2066756e6374696f6e8469662074686520617070726f7072696174652074696d652068617320636f6d652e607375646f5f73656e645f7570776172645f6d65737361676504011c6d6573736167653801345570776172644d657373616765000100040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e1504089463756d756c75735f7072696d6974697665735f70617261636861696e5f696e686572656e745450617261636861696e496e686572656e7444617461000010013c76616c69646174696f6e5f64617461c103015c50657273697374656456616c69646174696f6e4461746100014472656c61795f636861696e5f7374617465d103015473705f747269653a3a53746f7261676550726f6f66000144646f776e776172645f6d657373616765731904016c5665633c496e626f756e64446f776e776172644d6573736167653e00014c686f72697a6f6e74616c5f6d65737361676573210401a442547265654d61703c5061726149642c205665633c496e626f756e6448726d704d6573736167653e3e000019040000021d04001d040860706f6c6b61646f745f636f72655f7072696d69746976657358496e626f756e64446f776e776172644d657373616765042c426c6f636b4e756d62657201100008011c73656e745f617410012c426c6f636b4e756d62657200010c6d736738013c446f776e776172644d65737361676500002104042042547265654d617008044b01e90104560125040004002d04000000250400000229040029040860706f6c6b61646f745f636f72655f7072696d69746976657348496e626f756e6448726d704d657373616765042c426c6f636b4e756d62657201100008011c73656e745f617410012c426c6f636b4e756d6265720001106461746138014c616c6c6f633a3a7665633a3a5665633c75383e00002d04000002310400310400000408e90125040035040c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d1870616c6c6574144572726f720404540001204c4f7665726c617070696e6755706772616465730000041901417474656d707420746f20757067726164652076616c69646174696f6e2066756e6374696f6e207768696c65206578697374696e6720757067726164652070656e64696e672e5050726f686962697465644279506f6c6b61646f740001044d01506f6c6b61646f742063757272656e746c792070726f68696269747320746869732070617261636861696e2066726f6d20757067726164696e67206974732076616c69646174696f6e2066756e6374696f6e2e18546f6f426967000208450154686520737570706c6965642076616c69646174696f6e2066756e6374696f6e2068617320636f6d70696c656420696e746f206120626c6f62206c6172676572207468616e20506f6c6b61646f742069733c77696c6c696e6720746f2072756e2e6856616c69646174696f6e446174614e6f74417661696c61626c650003041d0154686520696e686572656e7420776869636820737570706c696573207468652076616c69646174696f6e206461746120646964206e6f742072756e207468697320626c6f636b2e74486f7374436f6e66696775726174696f6e4e6f74417661696c61626c65000404290154686520696e686572656e7420776869636820737570706c6965732074686520686f737420636f6e66696775726174696f6e20646964206e6f742072756e207468697320626c6f636b2e304e6f745363686564756c6564000504d84e6f2076616c69646174696f6e2066756e6374696f6e20757067726164652069732063757272656e746c79207363686564756c65642e444e6f7468696e67417574686f72697a6564000604904e6f20636f6465207570677261646520686173206265656e20617574686f72697a65642e30556e617574686f72697a6564000704bc54686520676976656e20636f6465207570677261646520686173206e6f74206265656e20617574686f72697a65642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e39040c4070616c6c65745f74696d657374616d701870616c6c65741043616c6c0404540001040c73657404010c6e6f772c0124543a3a4d6f6d656e7400004c54536574207468652063757272656e742074696d652e005501546869732063616c6c2073686f756c6420626520696e766f6b65642065786163746c79206f6e63652070657220626c6f636b2e2049742077696c6c2070616e6963206174207468652066696e616c697a6174696f6ed470686173652c20696620746869732063616c6c206861736e2774206265656e20696e766f6b656420627920746861742074696d652e0041015468652074696d657374616d702073686f756c642062652067726561746572207468616e207468652070726576696f7573206f6e652062792074686520616d6f756e7420737065636966696564206279685b60436f6e6669673a3a4d696e696d756d506572696f64605d2e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f4e6f6e655f2e0051015468697320646973706174636820636c617373206973205f4d616e6461746f72795f20746f20656e73757265206974206765747320657865637574656420696e2074686520626c6f636b2e204265206177617265510174686174206368616e67696e672074686520636f6d706c6578697479206f6620746869732063616c6c20636f756c6420726573756c742065786861757374696e6720746865207265736f757263657320696e206184626c6f636b20746f206578656375746520616e79206f746865722063616c6c732e0034232320436f6d706c657869747931012d20604f2831296020284e6f7465207468617420696d706c656d656e746174696f6e73206f6620604f6e54696d657374616d7053657460206d75737420616c736f20626520604f283129602955012d20312073746f72616765207265616420616e6420312073746f72616765206d75746174696f6e2028636f64656320604f283129602062656361757365206f6620604469645570646174653a3a74616b656020696e402020606f6e5f66696e616c697a656029d42d2031206576656e742068616e646c657220606f6e5f74696d657374616d705f736574602e204d75737420626520604f283129602e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e3d040c5873746167696e675f70617261636861696e5f696e666f1870616c6c65741043616c6c040454000100040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e41040c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e6465645665630804540145040453000004004d0401185665633c543e000045040c3c70616c6c65745f62616c616e6365731474797065732c42616c616e63654c6f636b041c42616c616e63650118000c01086964290101384c6f636b4964656e746966696572000118616d6f756e7418011c42616c616e636500011c726561736f6e734904011c526561736f6e73000049040c3c70616c6c65745f62616c616e6365731474797065731c526561736f6e7300010c0c466565000000104d6973630001000c416c6c000200004d0400000245040051040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454015504045300000400590401185665633c543e000055040c3c70616c6c65745f62616c616e6365731474797065732c52657365727665446174610844526573657276654964656e7469666965720129011c42616c616e6365011800080108696429010144526573657276654964656e746966696572000118616d6f756e7418011c42616c616e6365000059040000025504005d040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454016104045300000400750401185665633c543e0000610414346672616d655f737570706f72741874726169747318746f6b656e73106d697363204964416d6f756e74080849640165041c42616c616e63650118000801086964650401084964000118616d6f756e7418011c42616c616e636500006504084c73746f726167655f6875625f72756e74696d654452756e74696d65486f6c64526561736f6e00010c2450726f76696465727304006904019070616c6c65745f73746f726167655f70726f7669646572733a3a486f6c64526561736f6e0028002846696c6553797374656d04006d04017870616c6c65745f66696c655f73797374656d3a3a486f6c64526561736f6e002900385061796d656e7453747265616d7304007104018870616c6c65745f7061796d656e745f73747265616d733a3a486f6c64526561736f6e002c000069040c6070616c6c65745f73746f726167655f70726f7669646572731870616c6c657428486f6c64526561736f6e0001085853746f7261676550726f76696465724465706f736974000000344275636b65744465706f736974000100006d040c4870616c6c65745f66696c655f73797374656d1870616c6c657428486f6c64526561736f6e0001046853746f72616765526571756573744372656174696f6e486f6c640000000071040c5870616c6c65745f7061796d656e745f73747265616d731870616c6c657428486f6c64526561736f6e000104505061796d656e7453747265616d4465706f73697400000000750400000261040079040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454017d04045300000400810401185665633c543e00007d0414346672616d655f737570706f72741874726169747318746f6b656e73106d697363204964416d6f756e740808496401981c42616c616e636501180008010869649801084964000118616d6f756e7418011c42616c616e6365000081040000027d040085040c3c70616c6c65745f62616c616e6365731870616c6c65741043616c6c080454000449000124507472616e736665725f616c6c6f775f646561746808011064657374890401504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565dc0128543a3a42616c616e636500001cd45472616e7366657220736f6d65206c697175696420667265652062616c616e636520746f20616e6f74686572206163636f756e742e003501607472616e736665725f616c6c6f775f6465617468602077696c6c207365742074686520604672656542616c616e636560206f66207468652073656e64657220616e642072656365697665722e11014966207468652073656e6465722773206163636f756e742069732062656c6f7720746865206578697374656e7469616c206465706f736974206173206120726573756c74b06f6620746865207472616e736665722c20746865206163636f756e742077696c6c206265207265617065642e001501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520605369676e65646020627920746865207472616e736163746f722e38666f7263655f7472616e736665720c0118736f75726365890401504163636f756e7449644c6f6f6b75704f663c543e00011064657374890401504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565dc0128543a3a42616c616e6365000208610145786163746c7920617320607472616e736665725f616c6c6f775f6465617468602c2065786365707420746865206f726967696e206d75737420626520726f6f7420616e642074686520736f75726365206163636f756e74446d6179206265207370656369666965642e4c7472616e736665725f6b6565705f616c69766508011064657374890401504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565dc0128543a3a42616c616e6365000318590153616d6520617320746865205b607472616e736665725f616c6c6f775f6465617468605d2063616c6c2c206275742077697468206120636865636b207468617420746865207472616e736665722077696c6c206e6f74606b696c6c20746865206f726967696e206163636f756e742e00e8393925206f66207468652074696d6520796f752077616e74205b607472616e736665725f616c6c6f775f6465617468605d20696e73746561642e00f05b607472616e736665725f616c6c6f775f6465617468605d3a207374727563742e50616c6c65742e68746d6c236d6574686f642e7472616e73666572307472616e736665725f616c6c08011064657374890401504163636f756e7449644c6f6f6b75704f663c543e0001286b6565705f616c697665200110626f6f6c00043c05015472616e736665722074686520656e74697265207472616e7366657261626c652062616c616e63652066726f6d207468652063616c6c6572206163636f756e742e0059014e4f54453a20546869732066756e6374696f6e206f6e6c7920617474656d70747320746f207472616e73666572205f7472616e7366657261626c655f2062616c616e6365732e2054686973206d65616e7320746861746101616e79206c6f636b65642c2072657365727665642c206f72206578697374656e7469616c206465706f7369747320287768656e20606b6565705f616c6976656020697320607472756560292c2077696c6c206e6f742062655d017472616e7366657272656420627920746869732066756e6374696f6e2e20546f20656e73757265207468617420746869732066756e6374696f6e20726573756c747320696e2061206b696c6c6564206163636f756e742c4501796f75206d69676874206e65656420746f207072657061726520746865206163636f756e742062792072656d6f76696e6720616e79207265666572656e636520636f756e746572732c2073746f72616765406465706f736974732c206574632e2e2e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205369676e65642e00a02d206064657374603a2054686520726563697069656e74206f6620746865207472616e736665722e59012d20606b6565705f616c697665603a204120626f6f6c65616e20746f2064657465726d696e652069662074686520607472616e736665725f616c6c60206f7065726174696f6e2073686f756c642073656e6420616c6c4d0120206f66207468652066756e647320746865206163636f756e74206861732c2063617573696e67207468652073656e646572206163636f756e7420746f206265206b696c6c6564202866616c7365292c206f72590120207472616e736665722065766572797468696e6720657863657074206174206c6561737420746865206578697374656e7469616c206465706f7369742c2077686963682077696c6c2067756172616e74656520746f9c20206b656570207468652073656e646572206163636f756e7420616c697665202874727565292e3c666f7263655f756e7265736572766508010c77686f890401504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e74180128543a3a42616c616e636500050cb0556e7265736572766520736f6d652062616c616e63652066726f6d2061207573657220627920666f7263652e006c43616e206f6e6c792062652063616c6c656420627920524f4f542e40757067726164655f6163636f756e747304010c77686fa401445665633c543a3a4163636f756e7449643e0006207055706772616465206120737065636966696564206163636f756e742e00742d20606f726967696e603a204d75737420626520605369676e6564602e902d206077686f603a20546865206163636f756e7420746f2062652075706772616465642e005501546869732077696c6c20776169766520746865207472616e73616374696f6e20666565206966206174206c6561737420616c6c2062757420313025206f6620746865206163636f756e7473206e656564656420746f410162652075706772616465642e20285765206c657420736f6d65206e6f74206861766520746f206265207570677261646564206a75737420696e206f7264657220746f20616c6c6f7720666f722074686558706f73736962696c697479206f6620636875726e292e44666f7263655f7365745f62616c616e636508010c77686f890401504163636f756e7449644c6f6f6b75704f663c543e0001206e65775f66726565dc0128543a3a42616c616e636500080cac5365742074686520726567756c61722062616c616e6365206f66206120676976656e206163636f756e742e00b0546865206469737061746368206f726967696e20666f7220746869732063616c6c2069732060726f6f74602e6c666f7263655f61646a7573745f746f74616c5f69737375616e6365080124646972656374696f6e9104014c41646a7573746d656e74446972656374696f6e00011464656c7461dc0128543a3a42616c616e6365000914b841646a7573742074686520746f74616c2069737375616e636520696e20612073617475726174696e67207761792e00fc43616e206f6e6c792062652063616c6c656420627920726f6f7420616e6420616c77617973206e65656473206120706f736974697665206064656c7461602e002423204578616d706c65106275726e08011476616c7565dc0128543a3a42616c616e63650001286b6565705f616c697665200110626f6f6c000a1cfc4275726e2074686520737065636966696564206c697175696420667265652062616c616e63652066726f6d20746865206f726967696e206163636f756e742e002501496620746865206f726967696e2773206163636f756e7420656e64732075702062656c6f7720746865206578697374656e7469616c206465706f736974206173206120726573756c7409016f6620746865206275726e20616e6420606b6565705f616c697665602069732066616c73652c20746865206163636f756e742077696c6c206265207265617065642e005101556e6c696b652073656e64696e672066756e647320746f2061205f6275726e5f20616464726573732c207768696368206d6572656c79206d616b6573207468652066756e647320696e61636365737369626c652c21017468697320606275726e60206f7065726174696f6e2077696c6c2072656475636520746f74616c2069737375616e63652062792074686520616d6f756e74205f6275726e65645f2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e89040c2873705f72756e74696d65306d756c746961646472657373304d756c74694164647265737308244163636f756e7449640100304163636f756e74496e6465780198011408496404000001244163636f756e74496400000014496e64657804008d0401304163636f756e74496e6465780001000c526177040038011c5665633c75383e0002002441646472657373333204000401205b75383b2033325d000300244164647265737332300400d801205b75383b2032305d000400008d04000006980091040c3c70616c6c65745f62616c616e6365731474797065734c41646a7573746d656e74446972656374696f6e00010820496e6372656173650000002044656372656173650001000095040c3c70616c6c65745f62616c616e6365731870616c6c6574144572726f720804540004490001303856657374696e6742616c616e63650000049c56657374696e672062616c616e636520746f6f206869676820746f2073656e642076616c75652e544c69717569646974795265737472696374696f6e73000104c84163636f756e74206c6971756964697479207265737472696374696f6e732070726576656e74207769746864726177616c2e4c496e73756666696369656e7442616c616e63650002047842616c616e636520746f6f206c6f7720746f2073656e642076616c75652e484578697374656e7469616c4465706f736974000304ec56616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f7369742e34457870656e646162696c697479000404905472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e742e5c4578697374696e6756657374696e675363686564756c65000504cc412076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e742e2c446561644163636f756e740006048c42656e6566696369617279206163636f756e74206d757374207072652d65786973742e3c546f6f4d616e795265736572766573000704b84e756d626572206f66206e616d65642072657365727665732065786365656420604d61785265736572766573602e30546f6f4d616e79486f6c6473000804f84e756d626572206f6620686f6c647320657863656564206056617269616e74436f756e744f663c543a3a52756e74696d65486f6c64526561736f6e3e602e38546f6f4d616e79467265657a6573000904984e756d626572206f6620667265657a65732065786365656420604d6178467265657a6573602e4c49737375616e63654465616374697661746564000a0401015468652069737375616e63652063616e6e6f74206265206d6f6469666965642073696e636520697420697320616c72656164792064656163746976617465642e2444656c74615a65726f000b04645468652064656c74612063616e6e6f74206265207a65726f2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e9904086870616c6c65745f7472616e73616374696f6e5f7061796d656e742052656c6561736573000108245631416e6369656e74000000085632000100009d040c2c70616c6c65745f7375646f1870616c6c65741043616c6c040454000114107375646f04011063616c6ca104017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000004350141757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c20776974682060526f6f7460206f726967696e2e547375646f5f756e636865636b65645f77656967687408011063616c6ca104017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000118776569676874280118576569676874000114350141757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c20776974682060526f6f7460206f726967696e2e2d01546869732066756e6374696f6e20646f6573206e6f7420636865636b2074686520776569676874206f66207468652063616c6c2c20616e6420696e737465616420616c6c6f777320746865b05375646f207573657220746f20737065636966792074686520776569676874206f66207468652063616c6c2e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e1c7365745f6b657904010c6e6577890401504163636f756e7449644c6f6f6b75704f663c543e0002085d0141757468656e74696361746573207468652063757272656e74207375646f206b657920616e6420736574732074686520676976656e204163636f756e7449642028606e6577602920617320746865206e6577207375646f106b65792e1c7375646f5f617308010c77686f890401504163636f756e7449644c6f6f6b75704f663c543e00011063616c6ca104017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0003104d0141757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c207769746820605369676e656460206f726967696e2066726f6d406120676976656e206163636f756e742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e2872656d6f76655f6b657900040c845065726d616e656e746c792072656d6f76657320746865207375646f206b65792e006c2a2a546869732063616e6e6f7420626520756e2d646f6e652e2a2a040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ea104084c73746f726167655f6875625f72756e74696d652c52756e74696d6543616c6c0001501853797374656d0400550301ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53797374656d2c2052756e74696d653e0000003c50617261636861696e53797374656d0400110401d10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50617261636861696e53797374656d2c2052756e74696d653e0001002454696d657374616d700400390401b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c54696d657374616d702c2052756e74696d653e0002003450617261636861696e496e666f04003d0401c90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50617261636861696e496e666f2c2052756e74696d653e0003002042616c616e6365730400850401b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c42616c616e6365732c2052756e74696d653e000a00105375646f04009d0401a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5375646f2c2052756e74696d653e000f0044436f6c6c61746f7253656c656374696f6e0400a50401d90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c436f6c6c61746f7253656c656374696f6e2c2052756e74696d653e0015001c53657373696f6e0400a90401b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53657373696f6e2c2052756e74696d653e0016002458636d7051756575650400b50401b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c58636d7051756575652c2052756e74696d653e001e002c506f6c6b61646f7458636d0400b90401c10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c506f6c6b61646f7458636d2c2052756e74696d653e001f002843756d756c757358636d0400590501bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c43756d756c757358636d2c2052756e74696d653e002000304d657373616765517565756504005d0501c50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d65737361676551756575652c2052756e74696d653e0021002450726f7669646572730400610501b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50726f7669646572732c2052756e74696d653e0028002846696c6553797374656d0400650501bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c46696c6553797374656d2c2052756e74696d653e0029003050726f6f66734465616c65720400990501c50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50726f6f66734465616c65722c2052756e74696d653e002a002852616e646f6d6e65737304009d0501bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c52616e646f6d6e6573732c2052756e74696d653e002b00385061796d656e7453747265616d730400a10501cd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5061796d656e7453747265616d732c2052756e74696d653e002c00284275636b65744e6674730400a50501bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4275636b65744e6674732c2052756e74696d653e002d00104e6674730400ad0501a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4e6674732c2052756e74696d653e00320028506172616d65746572730400090601bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c506172616d65746572732c2052756e74696d653e00330000a5040c6470616c6c65745f636f6c6c61746f725f73656c656374696f6e1870616c6c65741043616c6c040454000124447365745f696e76756c6e657261626c657304010c6e6577a401445665633c543a3a4163636f756e7449643e000034310153657420746865206c697374206f6620696e76756c6e657261626c65202866697865642920636f6c6c61746f72732e20546865736520636f6c6c61746f7273206d75737420646f20736f6d65d07072657061726174696f6e2c206e616d656c7920746f206861766520726567697374657265642073657373696f6e206b6579732e0059015468652063616c6c2077696c6c2072656d6f766520616e79206163636f756e747320746861742068617665206e6f742072656769737465726564206b6579732066726f6d20746865207365742e20546861742069732c5d016974206973206e6f6e2d61746f6d69633b207468652063616c6c6572206163636570747320616c6c20604163636f756e74496460732070617373656420696e20606e657760205f696e646976696475616c6c795f206173310161636365707461626c6520496e76756c6e657261626c65732c20616e64206973206e6f742070726f706f73696e672061205f7365745f206f66206e657720496e76756c6e657261626c65732e005901546869732063616c6c20646f6573206e6f74206d61696e7461696e206d757475616c206578636c75736976697479206f662060496e76756c6e657261626c65736020616e64206043616e64696461746573602e20497461016973207265636f6d6d656e64656420746f207573652061206261746368206f6620606164645f696e76756c6e657261626c656020616e64206072656d6f76655f696e76756c6e657261626c656020696e73746561642e204151016062617463685f616c6c602063616e20616c736f206265207573656420746f20656e666f7263652061746f6d69636974792e20496620616e792063616e646964617465732061726520696e636c7564656420696e4d01606e6577602c20746865792073686f756c642062652072656d6f7665642077697468206072656d6f76655f696e76756c6e657261626c655f63616e6469646174656020616674657220657865637574696f6e2e00944d7573742062652063616c6c65642062792074686520605570646174654f726967696e602e587365745f646573697265645f63616e6469646174657304010c6d617810010c75333200011455015365742074686520696465616c206e756d626572206f66206e6f6e2d696e76756c6e657261626c6520636f6c6c61746f72732e204966206c6f776572696e672074686973206e756d6265722c207468656e2074686561016e756d626572206f662072756e6e696e6720636f6c6c61746f727320636f756c6420626520686967686572207468616e2074686973206669677572652e2041736964652066726f6d2074686174206564676520636173652c350174686572652073686f756c64206265206e6f206f746865722077617920746f2068617665206d6f72652063616e64696461746573207468616e207468652064657369726564206e756d6265722e00d0546865206f726967696e20666f7220746869732063616c6c206d7573742062652074686520605570646174654f726967696e602e487365745f63616e6469646163795f626f6e64040110626f6e6418013042616c616e63654f663c543e00021c78536574207468652063616e64696461637920626f6e6420616d6f756e742e0051014966207468652063616e64696461637920626f6e6420697320696e6372656173656420627920746869732063616c6c2c20616c6c2063757272656e742063616e64696461746573207768696368206861766520614d016465706f736974206c6f776572207468616e20746865206e657720626f6e642077696c6c206265206b69636b65642066726f6d20746865206c69737420616e6420676574207468656972206465706f73697473146261636b2e00d0546865206f726967696e20666f7220746869732063616c6c206d7573742062652074686520605570646174654f726967696e602e5472656769737465725f61735f63616e646964617465000310410152656769737465722074686973206163636f756e74206173206120636f6c6c61746f722063616e6469646174652e20546865206163636f756e74206d7573742028612920616c726561647920686176651d01726567697374657265642073657373696f6e206b65797320616e64202862292062652061626c6520746f207265736572766520746865206043616e646964616379426f6e64602e00dc546869732063616c6c206973206e6f7420617661696c61626c6520746f2060496e76756c6e657261626c656020636f6c6c61746f72732e306c656176655f696e74656e7400041455014465726567697374657220606f726967696e60206173206120636f6c6c61746f722063616e6469646174652e204e6f746520746861742074686520636f6c6c61746f722063616e206f6e6c79206c65617665206f6e0d0173657373696f6e206368616e67652e20546865206043616e646964616379426f6e64602077696c6c20626520756e726573657276656420696d6d6564696174656c792e001901546869732063616c6c2077696c6c206661696c2069662074686520746f74616c206e756d626572206f662063616e6469646174657320776f756c642064726f702062656c6f775c604d696e456c696769626c65436f6c6c61746f7273602e406164645f696e76756c6e657261626c6504010c77686f000130543a3a4163636f756e74496400051045014164642061206e6577206163636f756e74206077686f6020746f20746865206c697374206f662060496e76756c6e657261626c65736020636f6c6c61746f72732e206077686f60206d75737420686176651d01726567697374657265642073657373696f6e206b6579732e204966206077686f6020697320612063616e6469646174652c20746865792077696c6c2062652072656d6f7665642e00d0546865206f726967696e20666f7220746869732063616c6c206d7573742062652074686520605570646174654f726967696e602e4c72656d6f76655f696e76756c6e657261626c6504010c77686f000130543a3a4163636f756e744964000610610152656d6f766520616e206163636f756e74206077686f602066726f6d20746865206c697374206f662060496e76756c6e657261626c65736020636f6c6c61746f72732e2060496e76756c6e657261626c657360206d75737428626520736f727465642e00d0546865206f726967696e20666f7220746869732063616c6c206d7573742062652074686520605570646174654f726967696e602e2c7570646174655f626f6e6404012c6e65775f6465706f73697418013042616c616e63654f663c543e00071c5d01557064617465207468652063616e64696461637920626f6e64206f6620636f6c6c61746f722063616e64696461746520606f726967696e6020746f2061206e657720616d6f756e7420606e65775f6465706f736974602e00410153657474696e67206120606e65775f6465706f736974602074686174206973206c6f776572207468616e207468652063757272656e74206465706f736974207768696c6520606f726967696e60206973e06f6363757079696e67206120746f702d604465736972656443616e646964617465736020736c6f74206973206e6f7420616c6c6f7765642e005901546869732063616c6c2077696c6c206661696c20696620606f726967696e60206973206e6f74206120636f6c6c61746f722063616e6469646174652c20746865207570646174656420626f6e64206973206c6f77657219017468616e20746865206d696e696d756d2063616e64696461637920626f6e642c20616e642f6f722074686520616d6f756e742063616e6e6f742062652072657365727665642e4c74616b655f63616e6469646174655f736c6f7408011c6465706f73697418013042616c616e63654f663c543e000118746172676574000130543a3a4163636f756e74496400081c4d015468652063616c6c657220606f726967696e60207265706c6163657320612063616e64696461746520607461726765746020696e2074686520636f6c6c61746f722063616e646964617465206c6973742062795501726573657276696e6720606465706f736974602e2054686520616d6f756e7420606465706f73697460207265736572766564206279207468652063616c6c6572206d7573742062652067726561746572207468616ee0746865206578697374696e6720626f6e64206f66207468652074617267657420697420697320747279696e6720746f207265706c6163652e005901546869732063616c6c2077696c6c206661696c206966207468652063616c6c657220697320616c7265616479206120636f6c6c61746f722063616e646964617465206f7220696e76756c6e657261626c652c20746865550163616c6c657220646f6573206e6f74206861766520726567697374657265642073657373696f6e206b6579732c2074686520746172676574206973206e6f74206120636f6c6c61746f722063616e6469646174652cbc616e642f6f722074686520606465706f7369746020616d6f756e742063616e6e6f742062652072657365727665642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ea9040c3870616c6c65745f73657373696f6e1870616c6c65741043616c6c040454000108207365745f6b6579730801106b657973ad04011c543a3a4b65797300011470726f6f6638011c5665633c75383e000024e453657473207468652073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c657220746f20606b657973602e1d01416c6c6f777320616e206163636f756e7420746f20736574206974732073657373696f6e206b6579207072696f7220746f206265636f6d696e6720612076616c696461746f722ec05468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e00d0546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265207369676e65642e0034232320436f6d706c657869747959012d20604f283129602e2041637475616c20636f737420646570656e6473206f6e20746865206e756d626572206f66206c656e677468206f662060543a3a4b6579733a3a6b65795f69647328296020776869636820697320202066697865642e2870757267655f6b657973000130c852656d6f76657320616e792073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c65722e00c05468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e005501546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265205369676e656420616e6420746865206163636f756e74206d757374206265206569746865722062655d01636f6e7665727469626c6520746f20612076616c696461746f72204944207573696e672074686520636861696e2773207479706963616c2061646472657373696e672073797374656d20287468697320757375616c6c7951016d65616e73206265696e67206120636f6e74726f6c6c6572206163636f756e7429206f72206469726563746c7920636f6e7665727469626c6520696e746f20612076616c696461746f722049442028776869636894757375616c6c79206d65616e73206265696e672061207374617368206163636f756e74292e0034232320436f6d706c65786974793d012d20604f2831296020696e206e756d626572206f66206b65792074797065732e2041637475616c20636f737420646570656e6473206f6e20746865206e756d626572206f66206c656e677468206f6698202060543a3a4b6579733a3a6b65795f6964732829602077686963682069732066697865642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ead04084c73746f726167655f6875625f72756e74696d652c53657373696f6e4b657973000004011061757261b10401c43c41757261206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c69630000b104104473705f636f6e73656e7375735f617572611c737232353531392c6170705f73723235353139185075626c69630000040004013c737232353531393a3a5075626c69630000b5040c6463756d756c75735f70616c6c65745f78636d705f71756575651870616c6c65741043616c6c0404540001145473757370656e645f78636d5f657865637574696f6e00010c490153757370656e647320616c6c2058434d20657865637574696f6e7320666f72207468652058434d502071756575652c207265676172646c657373206f66207468652073656e6465722773206f726967696e2e00a42d20606f726967696e603a204d75737420706173732060436f6e74726f6c6c65724f726967696e602e50726573756d655f78636d5f657865637574696f6e000214b8526573756d657320616c6c2058434d20657865637574696f6e7320666f72207468652058434d502071756575652e003d014e6f7465207468617420746869732066756e6374696f6e20646f65736e2774206368616e67652074686520737461747573206f662074686520696e2f6f757420626f756e64206368616e6e656c732e00a42d20606f726967696e603a204d75737420706173732060436f6e74726f6c6c65724f726967696e602e607570646174655f73757370656e645f7468726573686f6c6404010c6e657710010c75333200031449014f76657277726974657320746865206e756d626572206f66207061676573207768696368206d75737420626520696e2074686520717565756520666f7220746865206f74686572207369646520746f20626578746f6c6420746f2073757370656e642074686569722073656e64696e672e00742d20606f726967696e603a204d75737420706173732060526f6f74602ee82d20606e6577603a20446573697265642076616c756520666f7220605175657565436f6e666967446174612e73757370656e645f76616c756560547570646174655f64726f705f7468726573686f6c6404010c6e657710010c75333200041445014f76657277726974657320746865206e756d626572206f66207061676573207768696368206d75737420626520696e207468652071756575652061667465722077686963682077652064726f7020616e798866757274686572206d657373616765732066726f6d20746865206368616e6e656c2e00742d20606f726967696e603a204d75737420706173732060526f6f74602eec2d20606e6577603a20446573697265642076616c756520666f7220605175657565436f6e666967446174612e64726f705f7468726573686f6c64605c7570646174655f726573756d655f7468726573686f6c6404010c6e657710010c7533320005144d014f76657277726974657320746865206e756d626572206f6620706167657320776869636820746865207175657565206d757374206265207265647563656420746f206265666f7265206974207369676e616c73010174686174206d6573736167652073656e64696e67206d6179207265636f6d6d656e636520616674657220697420686173206265656e2073757370656e6465642e00742d20606f726967696e603a204d75737420706173732060526f6f74602ef42d20606e6577603a20446573697265642076616c756520666f7220605175657565436f6e666967446174612e726573756d655f7468726573686f6c6460040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732eb9040c2870616c6c65745f78636d1870616c6c65741043616c6c0404540001381073656e6408011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011c6d657373616765bd040154426f783c56657273696f6e656458636d3c28293e3e0000003c74656c65706f72745f61737365747310011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e6566696369617279d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747375010150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c753332000148110154656c65706f727420736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f20736f6d652064657374696e6174696f6e20636861696e2e001d012a2a546869732066756e6374696f6e20697320646570726563617465643a2055736520606c696d697465645f74656c65706f72745f6173736574736020696e73746561642e2a2a005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f666101696e64657820606665655f61737365745f6974656d602e2054686520776569676874206c696d697420666f722066656573206973206e6f742070726f766964656420616e64207468757320697320756e6c696d697465642cb47769746820616c6c20666565732074616b656e206173206e65656465642066726f6d207468652061737365742e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e25012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c7920626520605b506172656e742c6101202050617261636861696e282e2e295d6020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f7220605b50617261636861696e282e2e295d6020746f2073656e642066726f6d54202072656c617920746f2070617261636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865682020666565206f6e207468652060646573746020636861696e2e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e5c726573657276655f7472616e736665725f61737365747310011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e6566696369617279d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747375010150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c7533320002785d015472616e7366657220736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f207468652064657374696e6174696f6e20636861696e207468726f756768207468656972206c6f63616c2c7864657374696e6174696f6e206f722072656d6f746520726573657276652e003d016061737365747360206d75737420686176652073616d652072657365727665206c6f636174696f6e20616e64206d6179206e6f742062652074656c65706f727461626c6520746f206064657374602e4d01202d2060617373657473602068617665206c6f63616c20726573657276653a207472616e736665722061737365747320746f20736f7665726569676e206163636f756e74206f662064657374696e6174696f6e4d01202020636861696e20616e6420666f72776172642061206e6f74696669636174696f6e2058434d20746f2060646573746020746f206d696e7420616e64206465706f73697420726573657276652d62617365646c20202061737365747320746f206062656e6566696369617279602e5501202d20606173736574736020686176652064657374696e6174696f6e20726573657276653a206275726e206c6f63616c2061737365747320616e6420666f72776172642061206e6f74696669636174696f6e20746f590120202060646573746020636861696e20746f207769746864726177207468652072657365727665206173736574732066726f6d207468697320636861696e277320736f7665726569676e206163636f756e7420616e64842020206465706f736974207468656d20746f206062656e6566696369617279602e6101202d20606173736574736020686176652072656d6f746520726573657276653a206275726e206c6f63616c206173736574732c20666f72776172642058434d20746f207265736572766520636861696e20746f206d6f7665610120202072657365727665732066726f6d207468697320636861696e277320534120746f2060646573746020636861696e27732053412c20616e6420666f727761726420616e6f746865722058434d20746f20606465737460f4202020746f206d696e7420616e64206465706f73697420726573657276652d62617365642061737365747320746f206062656e6566696369617279602e003d012a2a546869732066756e6374696f6e20697320646570726563617465643a2055736520606c696d697465645f726573657276655f7472616e736665725f6173736574736020696e73746561642e2a2a005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f666101696e64657820606665655f61737365745f6974656d602e2054686520776569676874206c696d697420666f722066656573206973206e6f742070726f766964656420616e64207468757320697320756e6c696d697465642cb47769746820616c6c20666565732074616b656e206173206e65656465642066726f6d207468652061737365742e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e25012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c7920626520605b506172656e742c6101202050617261636861696e282e2e295d6020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f7220605b50617261636861696e282e2e295d6020746f2073656e642066726f6d54202072656c617920746f2070617261636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865c82020666565206f6e20746865206064657374602028616e6420706f737369626c7920726573657276652920636861696e732e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e1c6578656375746508011c6d657373616765250501b4426f783c56657273696f6e656458636d3c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e3e0001286d61785f776569676874280118576569676874000320d04578656375746520616e2058434d206d6573736167652066726f6d2061206c6f63616c2c207369676e65642c206f726967696e2e004d01416e206576656e74206973206465706f736974656420696e6469636174696e67207768657468657220606d73676020636f756c6420626520657865637574656420636f6d706c6574656c79206f72206f6e6c79287061727469616c6c792e005d014e6f206d6f7265207468616e20606d61785f776569676874602077696c6c206265207573656420696e2069747320617474656d7074656420657865637574696f6e2e2049662074686973206973206c657373207468616e4101746865206d6178696d756d20616d6f756e74206f6620776569676874207468617420746865206d65737361676520636f756c642074616b6520746f2062652065786563757465642c207468656e206e6f7c657865637574696f6e20617474656d70742077696c6c206265206d6164652e44666f7263655f78636d5f76657273696f6e0801206c6f636174696f6ebc0134426f783c4c6f636174696f6e3e00011c76657273696f6e10012858636d56657273696f6e00041849014578746f6c6c2074686174206120706172746963756c61722064657374696e6174696f6e2063616e20626520636f6d6d756e6963617465642077697468207468726f756768206120706172746963756c61723c76657273696f6e206f662058434d2e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2ed82d20606c6f636174696f6e603a205468652064657374696e6174696f6e2074686174206973206265696e67206465736372696265642e11012d206078636d5f76657273696f6e603a20546865206c61746573742076657273696f6e206f662058434d207468617420606c6f636174696f6e6020737570706f7274732e64666f7263655f64656661756c745f78636d5f76657273696f6e0401446d617962655f78636d5f76657273696f6e150201484f7074696f6e3c58636d56657273696f6e3e0005145901536574206120736166652058434d2076657273696f6e20287468652076657273696f6e20746861742058434d2073686f756c6420626520656e636f646564207769746820696620746865206d6f737420726563656e74b476657273696f6e20612064657374696e6174696f6e2063616e2061636365707420697320756e6b6e6f776e292e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2e39012d20606d617962655f78636d5f76657273696f6e603a205468652064656661756c742058434d20656e636f64696e672076657273696f6e2c206f7220604e6f6e656020746f2064697361626c652e78666f7263655f7375627363726962655f76657273696f6e5f6e6f746966790401206c6f636174696f6ed9010158426f783c56657273696f6e65644c6f636174696f6e3e000610390141736b2061206c6f636174696f6e20746f206e6f7469667920757320726567617264696e672074686569722058434d2076657273696f6e20616e6420616e79206368616e67657320746f2069742e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2e59012d20606c6f636174696f6e603a20546865206c6f636174696f6e20746f2077686963682077652073686f756c642073756273637269626520666f722058434d2076657273696f6e206e6f74696669636174696f6e732e80666f7263655f756e7375627363726962655f76657273696f6e5f6e6f746966790401206c6f636174696f6ed9010158426f783c56657273696f6e65644c6f636174696f6e3e0007184901526571756972652074686174206120706172746963756c61722064657374696e6174696f6e2073686f756c64206e6f206c6f6e676572206e6f7469667920757320726567617264696e6720616e792058434d4076657273696f6e206368616e6765732e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2e3d012d20606c6f636174696f6e603a20546865206c6f636174696f6e20746f207768696368207765206172652063757272656e746c79207375627363726962656420666f722058434d2076657273696f6ea820206e6f74696669636174696f6e73207768696368207765206e6f206c6f6e676572206465736972652e7c6c696d697465645f726573657276655f7472616e736665725f61737365747314011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e6566696369617279d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747375010150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c7533320001307765696768745f6c696d69747101012c5765696768744c696d69740008785d015472616e7366657220736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f207468652064657374696e6174696f6e20636861696e207468726f756768207468656972206c6f63616c2c7864657374696e6174696f6e206f722072656d6f746520726573657276652e003d016061737365747360206d75737420686176652073616d652072657365727665206c6f636174696f6e20616e64206d6179206e6f742062652074656c65706f727461626c6520746f206064657374602e4d01202d2060617373657473602068617665206c6f63616c20726573657276653a207472616e736665722061737365747320746f20736f7665726569676e206163636f756e74206f662064657374696e6174696f6e4d01202020636861696e20616e6420666f72776172642061206e6f74696669636174696f6e2058434d20746f2060646573746020746f206d696e7420616e64206465706f73697420726573657276652d62617365646c20202061737365747320746f206062656e6566696369617279602e5501202d20606173736574736020686176652064657374696e6174696f6e20726573657276653a206275726e206c6f63616c2061737365747320616e6420666f72776172642061206e6f74696669636174696f6e20746f590120202060646573746020636861696e20746f207769746864726177207468652072657365727665206173736574732066726f6d207468697320636861696e277320736f7665726569676e206163636f756e7420616e64842020206465706f736974207468656d20746f206062656e6566696369617279602e6101202d20606173736574736020686176652072656d6f746520726573657276653a206275726e206c6f63616c206173736574732c20666f72776172642058434d20746f207265736572766520636861696e20746f206d6f7665610120202072657365727665732066726f6d207468697320636861696e277320534120746f2060646573746020636861696e27732053412c20616e6420666f727761726420616e6f746865722058434d20746f20606465737460f4202020746f206d696e7420616e64206465706f73697420726573657276652d62617365642061737365747320746f206062656e6566696369617279602e005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f666101696e64657820606665655f61737365745f6974656d602c20757020746f20656e6f75676820746f2070617920666f7220607765696768745f6c696d697460206f66207765696768742e204966206d6f72652077656967687459016973206e6565646564207468616e20607765696768745f6c696d6974602c207468656e20746865206f7065726174696f6e2077696c6c206661696c20616e64207468652073656e7420617373657473206d6179206265206174207269736b2e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e25012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c7920626520605b506172656e742c6101202050617261636861696e282e2e295d6020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f7220605b50617261636861696e282e2e295d6020746f2073656e642066726f6d54202072656c617920746f2070617261636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865c82020666565206f6e20746865206064657374602028616e6420706f737369626c7920726573657276652920636861696e732e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e45012d20607765696768745f6c696d6974603a205468652072656d6f74652d7369646520776569676874206c696d69742c20696620616e792c20666f72207468652058434d206665652070757263686173652e5c6c696d697465645f74656c65706f72745f61737365747314011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e6566696369617279d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747375010150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c7533320001307765696768745f6c696d69747101012c5765696768744c696d6974000948110154656c65706f727420736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f20736f6d652064657374696e6174696f6e20636861696e2e005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f666101696e64657820606665655f61737365745f6974656d602c20757020746f20656e6f75676820746f2070617920666f7220607765696768745f6c696d697460206f66207765696768742e204966206d6f72652077656967687459016973206e6565646564207468616e20607765696768745f6c696d6974602c207468656e20746865206f7065726174696f6e2077696c6c206661696c20616e64207468652073656e7420617373657473206d6179206265206174207269736b2e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e25012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c7920626520605b506172656e742c6101202050617261636861696e282e2e295d6020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f7220605b50617261636861696e282e2e295d6020746f2073656e642066726f6d54202072656c617920746f2070617261636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865682020666565206f6e207468652060646573746020636861696e2e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e45012d20607765696768745f6c696d6974603a205468652072656d6f74652d7369646520776569676874206c696d69742c20696620616e792c20666f72207468652058434d206665652070757263686173652e40666f7263655f73757370656e73696f6e04012473757370656e646564200110626f6f6c000a10f4536574206f7220756e7365742074686520676c6f62616c2073757370656e73696f6e207374617465206f66207468652058434d206578656375746f722e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2ed02d206073757370656e646564603a2060747275656020746f2073757370656e642c206066616c73656020746f20726573756d652e3c7472616e736665725f61737365747314011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e6566696369617279d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747375010150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c7533320001307765696768745f6c696d69747101012c5765696768744c696d6974000b845d015472616e7366657220736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f207468652064657374696e6174696f6e20636861696e207468726f756768207468656972206c6f63616c2cd064657374696e6174696f6e206f722072656d6f746520726573657276652c206f72207468726f7567682074656c65706f7274732e005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f663501696e64657820606665655f61737365745f6974656d60202868656e636520726566657272656420746f20617320606665657360292c20757020746f20656e6f75676820746f2070617920666f724101607765696768745f6c696d697460206f66207765696768742e204966206d6f726520776569676874206973206e6565646564207468616e20607765696768745f6c696d6974602c207468656e20746865dc6f7065726174696f6e2077696c6c206661696c20616e64207468652073656e7420617373657473206d6179206265206174207269736b2e006101606173736574736020286578636c7564696e672060666565736029206d75737420686176652073616d652072657365727665206c6f636174696f6e206f72206f74686572776973652062652074656c65706f727461626c65b0746f206064657374602c206e6f206c696d69746174696f6e7320696d706f736564206f6e206066656573602e4d01202d20666f72206c6f63616c20726573657276653a207472616e736665722061737365747320746f20736f7665726569676e206163636f756e74206f662064657374696e6174696f6e20636861696e20616e644d01202020666f72776172642061206e6f74696669636174696f6e2058434d20746f2060646573746020746f206d696e7420616e64206465706f73697420726573657276652d62617365642061737365747320746f442020206062656e6566696369617279602e6101202d20666f722064657374696e6174696f6e20726573657276653a206275726e206c6f63616c2061737365747320616e6420666f72776172642061206e6f74696669636174696f6e20746f2060646573746020636861696e5901202020746f207769746864726177207468652072657365727665206173736574732066726f6d207468697320636861696e277320736f7665726569676e206163636f756e7420616e64206465706f736974207468656d50202020746f206062656e6566696369617279602e5d01202d20666f722072656d6f746520726573657276653a206275726e206c6f63616c206173736574732c20666f72776172642058434d20746f207265736572766520636861696e20746f206d6f76652072657365727665735d0120202066726f6d207468697320636861696e277320534120746f2060646573746020636861696e27732053412c20616e6420666f727761726420616e6f746865722058434d20746f2060646573746020746f206d696e74d4202020616e64206465706f73697420726573657276652d62617365642061737365747320746f206062656e6566696369617279602e5101202d20666f722074656c65706f7274733a206275726e206c6f63616c2061737365747320616e6420666f72776172642058434d20746f2060646573746020636861696e20746f206d696e742f74656c65706f7274b020202061737365747320616e64206465706f736974207468656d20746f206062656e6566696369617279602e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e2d012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c792062652060583228506172656e742c5501202050617261636861696e282e2e29296020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f72206058312850617261636861696e282e2e29296020746f2073656e6468202066726f6d2072656c617920746f2070617261636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865c82020666565206f6e20746865206064657374602028616e6420706f737369626c7920726573657276652920636861696e732e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e45012d20607765696768745f6c696d6974603a205468652072656d6f74652d7369646520776569676874206c696d69742c20696620616e792c20666f72207468652058434d206665652070757263686173652e30636c61696d5f61737365747308011861737365747375010150426f783c56657273696f6e65644173736574733e00012c62656e6566696369617279d9010158426f783c56657273696f6e65644c6f636174696f6e3e000c185501436c61696d73206173736574732074726170706564206f6e20746869732070616c6c65742062656361757365206f66206c6566746f7665722061737365747320647572696e672058434d20657865637574696f6e2e00ac2d20606f726967696e603a20416e796f6e652063616e2063616c6c20746869732065787472696e7369632e5d012d2060617373657473603a20546865206578616374206173736574732074686174207765726520747261707065642e20557365207468652076657273696f6e20746f207370656369667920776861742076657273696f6e9877617320746865206c6174657374207768656e2074686579207765726520747261707065642e45012d206062656e6566696369617279603a20546865206c6f636174696f6e2f6163636f756e742077686572652074686520636c61696d6564206173736574732077696c6c206265206465706f73697465642e8c7472616e736665725f6173736574735f7573696e675f747970655f616e645f7468656e1c011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747375010150426f783c56657273696f6e65644173736574733e0001506173736574735f7472616e736665725f7479706551050144426f783c5472616e73666572547970653e00013872656d6f74655f666565735f696455050154426f783c56657273696f6e6564417373657449643e000148666565735f7472616e736665725f7479706551050144426f783c5472616e73666572547970653e000148637573746f6d5f78636d5f6f6e5f64657374bd040154426f783c56657273696f6e656458636d3c28293e3e0001307765696768745f6c696d69747101012c5765696768744c696d6974000dc055015472616e73666572206173736574732066726f6d20746865206c6f63616c20636861696e20746f207468652064657374696e6174696f6e20636861696e207573696e67206578706c69636974207472616e7366657268747970657320666f722061737365747320616e6420666565732e0059016061737365747360206d75737420686176652073616d652072657365727665206c6f636174696f6e206f72206d61792062652074656c65706f727461626c6520746f206064657374602e2043616c6c6572206d757374ec70726f766964652074686520606173736574735f7472616e736665725f747970656020746f206265207573656420666f722060617373657473603a5101202d20605472616e73666572547970653a3a4c6f63616c52657365727665603a207472616e736665722061737365747320746f20736f7665726569676e206163636f756e74206f662064657374696e6174696f6e4d01202020636861696e20616e6420666f72776172642061206e6f74696669636174696f6e2058434d20746f2060646573746020746f206d696e7420616e64206465706f73697420726573657276652d62617365646c20202061737365747320746f206062656e6566696369617279602e5901202d20605472616e73666572547970653a3a44657374696e6174696f6e52657365727665603a206275726e206c6f63616c2061737365747320616e6420666f72776172642061206e6f74696669636174696f6e20746f590120202060646573746020636861696e20746f207769746864726177207468652072657365727665206173736574732066726f6d207468697320636861696e277320736f7665726569676e206163636f756e7420616e64842020206465706f736974207468656d20746f206062656e6566696369617279602e5901202d20605472616e73666572547970653a3a52656d6f746552657365727665287265736572766529603a206275726e206c6f63616c206173736574732c20666f72776172642058434d20746f206072657365727665606101202020636861696e20746f206d6f76652072657365727665732066726f6d207468697320636861696e277320534120746f2060646573746020636861696e27732053412c20616e6420666f727761726420616e6f74686572550120202058434d20746f2060646573746020746f206d696e7420616e64206465706f73697420726573657276652d62617365642061737365747320746f206062656e6566696369617279602e205479706963616c6c79942020207468652072656d6f746520607265736572766560206973204173736574204875622e4501202d20605472616e73666572547970653a3a54656c65706f7274603a206275726e206c6f63616c2061737365747320616e6420666f72776172642058434d20746f2060646573746020636861696e20746fe82020206d696e742f74656c65706f72742061737365747320616e64206465706f736974207468656d20746f206062656e6566696369617279602e0055014f6e207468652064657374696e6174696f6e20636861696e2c2061732077656c6c20617320616e7920696e7465726d65646961727920686f70732c2060427579457865637574696f6e60206973207573656420746f210162757920657865637574696f6e207573696e67207472616e73666572726564206061737365747360206964656e746966696564206279206072656d6f74655f666565735f6964602e59014d616b65207375726520656e6f756768206f662074686520737065636966696564206072656d6f74655f666565735f69646020617373657420697320696e636c7564656420696e2074686520676976656e206c69737461016f662060617373657473602e206072656d6f74655f666565735f6964602073686f756c6420626520656e6f75676820746f2070617920666f7220607765696768745f6c696d6974602e204966206d6f72652077656967687459016973206e6565646564207468616e20607765696768745f6c696d6974602c207468656e20746865206f7065726174696f6e2077696c6c206661696c20616e64207468652073656e7420617373657473206d6179206265206174207269736b2e0045016072656d6f74655f666565735f696460206d61792075736520646966666572656e74207472616e736665722074797065207468616e2072657374206f6620606173736574736020616e642063616e2062659c737065636966696564207468726f7567682060666565735f7472616e736665725f74797065602e0061015468652063616c6c6572206e6565647320746f207370656369667920776861742073686f756c642068617070656e20746f20746865207472616e7366657272656420617373657473206f6e6365207468657920726561636841017468652060646573746020636861696e2e205468697320697320646f6e65207468726f756768207468652060637573746f6d5f78636d5f6f6e5f646573746020706172616d657465722c207768696368fc636f6e7461696e732074686520696e737472756374696f6e7320746f2065786563757465206f6e2060646573746020617320612066696e616c20737465702e7c20205468697320697320757375616c6c792061732073696d706c652061733a510120206058636d28766563215b4465706f7369744173736574207b206173736574733a2057696c6428416c6c436f756e746564286173736574732e6c656e282929292c2062656e6566696369617279207d5d29602c3101202062757420636f756c6420626520736f6d657468696e67206d6f72652065786f746963206c696b652073656e64696e6720746865206061737365747360206576656e20667572746865722e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e25012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c7920626520605b506172656e742c6101202050617261636861696e282e2e295d6020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f7220605b50617261636861696e282e2e295d6020746f2073656e642066726f6d3d01202072656c617920746f2070617261636861696e2c206f72206028706172656e74733a20322c2028476c6f62616c436f6e73656e737573282e2e292c202e2e29296020746f2073656e642066726f6df4202070617261636861696e206163726f737320612062726964676520746f20616e6f746865722065636f73797374656d2064657374696e6174696f6e2e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865c82020666565206f6e20746865206064657374602028616e6420706f737369626c7920726573657276652920636861696e732e3d012d20606173736574735f7472616e736665725f74797065603a205468652058434d20605472616e736665725479706560207573656420746f207472616e73666572207468652060617373657473602e21012d206072656d6f74655f666565735f6964603a204f6e65206f662074686520696e636c7564656420606173736574736020746f206265207573656420746f2070617920666565732e49012d2060666565735f7472616e736665725f74797065603a205468652058434d20605472616e736665725479706560207573656420746f207472616e736665722074686520606665657360206173736574732e59012d2060637573746f6d5f78636d5f6f6e5f64657374603a205468652058434d20746f206265206578656375746564206f6e2060646573746020636861696e20617320746865206c6173742073746570206f6620746865590120207472616e736665722c20776869636820616c736f2064657465726d696e657320776861742068617070656e7320746f2074686520617373657473206f6e207468652064657374696e6174696f6e20636861696e2e45012d20607765696768745f6c696d6974603a205468652072656d6f74652d7369646520776569676874206c696d69742c20696620616e792c20666f72207468652058434d206665652070757263686173652e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ebd04080c78636d3056657273696f6e656458636d042c52756e74696d6543616c6c00010c0856320400c104015076323a3a58636d3c52756e74696d6543616c6c3e0002000856330400f104015076333a3a58636d3c52756e74696d6543616c6c3e00030008563404000501015076343a3a58636d3c52756e74696d6543616c6c3e00040000c1040c0c78636d0876320c58636d042c52756e74696d6543616c6c00000400c50401745665633c496e737472756374696f6e3c52756e74696d6543616c6c3e3e0000c504000002c90400c9040c0c78636d0876322c496e737472756374696f6e042c52756e74696d6543616c6c000170345769746864726177417373657404007901012c4d756c7469417373657473000000545265736572766541737365744465706f736974656404007901012c4d756c7469417373657473000100585265636569766554656c65706f72746564417373657404007901012c4d756c7469417373657473000200345175657279526573706f6e73650c012071756572795f69642c011c51756572794964000120726573706f6e7365cd040120526573706f6e73650001286d61785f7765696768742c010c753634000300345472616e7366657241737365740801186173736574737901012c4d756c746941737365747300012c62656e6566696369617279890101344d756c74694c6f636174696f6e000400505472616e736665725265736572766541737365740c01186173736574737901012c4d756c746941737365747300011064657374890101344d756c74694c6f636174696f6e00010c78636dc104011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f74797065dd0401284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f73742c010c75363400011063616c6c5d010168446f75626c65456e636f6465643c52756e74696d6543616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572cc010c7533320001406d61785f6d6573736167655f73697a65cc010c7533320001306d61785f6361706163697479cc010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74cc010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72cc010c75333200011873656e646572cc010c753332000124726563697069656e74cc010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e04008d010154496e746572696f724d756c74694c6f636174696f6e000b002c5265706f72744572726f720c012071756572795f69642c011c5175657279496400011064657374890101344d756c74694c6f636174696f6e00014c6d61785f726573706f6e73655f7765696768742c010c753634000c00304465706f73697441737365740c0118617373657473e10401404d756c7469417373657446696c7465720001286d61785f617373657473cc010c75333200012c62656e6566696369617279890101344d756c74694c6f636174696f6e000d004c4465706f736974526573657276654173736574100118617373657473e10401404d756c7469417373657446696c7465720001286d61785f617373657473cc010c75333200011064657374890101344d756c74694c6f636174696f6e00010c78636dc104011c58636d3c28293e000e003445786368616e6765417373657408011067697665e10401404d756c7469417373657446696c74657200011c726563656976657901012c4d756c7469417373657473000f005c496e6974696174655265736572766557697468647261770c0118617373657473e10401404d756c7469417373657446696c74657200011c72657365727665890101344d756c74694c6f636174696f6e00010c78636dc104011c58636d3c28293e00100040496e69746961746554656c65706f72740c0118617373657473e10401404d756c7469417373657446696c74657200011064657374890101344d756c74694c6f636174696f6e00010c78636dc104011c58636d3c28293e001100305175657279486f6c64696e6710012071756572795f69642c011c5175657279496400011064657374890101344d756c74694c6f636174696f6e000118617373657473e10401404d756c7469417373657446696c74657200014c6d61785f726573706f6e73655f7765696768742c010c75363400120030427579457865637574696f6e08011066656573810101284d756c746941737365740001307765696768745f6c696d6974ed04012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c65720400c104014058636d3c52756e74696d6543616c6c3e0015002c536574417070656e6469780400c104014058636d3c52756e74696d6543616c6c3e00160028436c6561724572726f7200170028436c61696d41737365740801186173736574737901012c4d756c74694173736574730001187469636b6574890101344d756c74694c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f7765696768742c010c753634001a0048556e73756273637269626556657273696f6e001b0000cd040c0c78636d08763220526573706f6e7365000110104e756c6c0000001841737365747304007901012c4d756c74694173736574730001003c457865637574696f6e526573756c740400d10401504f7074696f6e3c287533322c204572726f72293e0002001c56657273696f6e040010013873757065723a3a56657273696f6e00030000d10404184f7074696f6e04045401d5040108104e6f6e6500000010536f6d650400d5040000010000d5040000040810d90400d904100c78636d08763218747261697473144572726f72000168204f766572666c6f7700000034556e696d706c656d656e74656400010060556e74727573746564526573657276654c6f636174696f6e00020064556e7472757374656454656c65706f72744c6f636174696f6e000300444d756c74694c6f636174696f6e46756c6c000400684d756c74694c6f636174696f6e4e6f74496e7665727469626c65000500244261644f726967696e0006003c496e76616c69644c6f636174696f6e0007003441737365744e6f74466f756e64000800544661696c6564546f5472616e7361637441737365740009003c4e6f74576974686472617761626c65000a00484c6f636174696f6e43616e6e6f74486f6c64000b0054457863656564734d61784d65737361676553697a65000c005844657374696e6174696f6e556e737570706f72746564000d00245472616e73706f7274000e0028556e726f757461626c65000f0030556e6b6e6f776e436c61696d001000384661696c6564546f4465636f6465001100404d6178576569676874496e76616c6964001200384e6f74486f6c64696e674665657300130030546f6f457870656e736976650014001054726170040030010c7536340015004c556e68616e646c656458636d56657273696f6e001600485765696768744c696d69745265616368656404003001185765696768740017001c426172726965720018004c5765696768744e6f74436f6d70757461626c6500190000dd040c0c78636d087632284f726967696e4b696e64000110184e617469766500000040536f7665726569676e4163636f756e74000100245375706572757365720002000c58636d00030000e104100c78636d087632286d756c74696173736574404d756c7469417373657446696c74657200010820446566696e69746504007901012c4d756c74694173736574730000001057696c640400e504013857696c644d756c7469417373657400010000e504100c78636d087632286d756c746961737365743857696c644d756c746941737365740001080c416c6c00000014416c6c4f6608010869648501011c4173736574496400010c66756ee904013c57696c6446756e676962696c69747900010000e904100c78636d087632286d756c746961737365743c57696c6446756e676962696c6974790001082046756e6769626c650000002c4e6f6e46756e6769626c6500010000ed040c0c78636d0876322c5765696768744c696d697400010824556e6c696d697465640000001c4c696d6974656404002c010c75363400010000f1040c0c78636d0876330c58636d041043616c6c00000400f50401585665633c496e737472756374696f6e3c43616c6c3e3e0000f504000002f90400f9040c0c78636d0876332c496e737472756374696f6e041043616c6c0001c034576974686472617741737365740400ad01012c4d756c7469417373657473000000545265736572766541737365744465706f73697465640400ad01012c4d756c7469417373657473000100585265636569766554656c65706f7274656441737365740400ad01012c4d756c7469417373657473000200345175657279526573706f6e736510012071756572795f69642c011c51756572794964000120726573706f6e7365fd040120526573706f6e73650001286d61785f77656967687428011857656967687400011c71756572696572110501544f7074696f6e3c4d756c74694c6f636174696f6e3e000300345472616e736665724173736574080118617373657473ad01012c4d756c746941737365747300012c62656e6566696369617279bd0101344d756c74694c6f636174696f6e000400505472616e736665725265736572766541737365740c0118617373657473ad01012c4d756c746941737365747300011064657374bd0101344d756c74694c6f636174696f6e00010c78636df104011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f6b696e64590101284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737428011857656967687400011063616c6c5d01014c446f75626c65456e636f6465643c43616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572cc010c7533320001406d61785f6d6573736167655f73697a65cc010c7533320001306d61785f6361706163697479cc010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74cc010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72cc010c75333200011873656e646572cc010c753332000124726563697069656e74cc010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e0400c1010154496e746572696f724d756c74694c6f636174696f6e000b002c5265706f72744572726f720400150501445175657279526573706f6e7365496e666f000c00304465706f7369744173736574080118617373657473190501404d756c7469417373657446696c74657200012c62656e6566696369617279bd0101344d756c74694c6f636174696f6e000d004c4465706f7369745265736572766541737365740c0118617373657473190501404d756c7469417373657446696c74657200011064657374bd0101344d756c74694c6f636174696f6e00010c78636df104011c58636d3c28293e000e003445786368616e676541737365740c011067697665190501404d756c7469417373657446696c74657200011077616e74ad01012c4d756c746941737365747300011c6d6178696d616c200110626f6f6c000f005c496e6974696174655265736572766557697468647261770c0118617373657473190501404d756c7469417373657446696c74657200011c72657365727665bd0101344d756c74694c6f636174696f6e00010c78636df104011c58636d3c28293e00100040496e69746961746554656c65706f72740c0118617373657473190501404d756c7469417373657446696c74657200011064657374bd0101344d756c74694c6f636174696f6e00010c78636df104011c58636d3c28293e001100345265706f7274486f6c64696e67080134726573706f6e73655f696e666f150501445175657279526573706f6e7365496e666f000118617373657473190501404d756c7469417373657446696c74657200120030427579457865637574696f6e08011066656573b50101284d756c746941737365740001307765696768745f6c696d69747101012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c65720400f104012458636d3c43616c6c3e0015002c536574417070656e6469780400f104012458636d3c43616c6c3e00160028436c6561724572726f7200170028436c61696d4173736574080118617373657473ad01012c4d756c74694173736574730001187469636b6574bd0101344d756c74694c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f776569676874280118576569676874001a0048556e73756273637269626556657273696f6e001b00244275726e41737365740400ad01012c4d756c7469417373657473001c002c45787065637441737365740400ad01012c4d756c7469417373657473001d00304578706563744f726967696e0400110501544f7074696f6e3c4d756c74694c6f636174696f6e3e001e002c4578706563744572726f720400350101504f7074696f6e3c287533322c204572726f72293e001f00504578706563745472616e7361637453746174757304004d0101384d617962654572726f72436f64650020002c517565727950616c6c657408012c6d6f64756c655f6e616d6538011c5665633c75383e000134726573706f6e73655f696e666f150501445175657279526573706f6e7365496e666f0021003045787065637450616c6c6574140114696e646578cc010c7533320001106e616d6538011c5665633c75383e00012c6d6f64756c655f6e616d6538011c5665633c75383e00012c63726174655f6d616a6f72cc010c75333200013c6d696e5f63726174655f6d696e6f72cc010c753332002200505265706f72745472616e736163745374617475730400150501445175657279526573706f6e7365496e666f0023004c436c6561725472616e736163745374617475730024003c556e6976657273616c4f726967696e0400c50101204a756e6374696f6e002500344578706f72744d6573736167650c011c6e6574776f726bcd0101244e6574776f726b496400012c64657374696e6174696f6ec1010154496e746572696f724d756c74694c6f636174696f6e00010c78636df104011c58636d3c28293e002600244c6f636b41737365740801146173736574b50101284d756c74694173736574000120756e6c6f636b6572bd0101344d756c74694c6f636174696f6e0027002c556e6c6f636b41737365740801146173736574b50101284d756c74694173736574000118746172676574bd0101344d756c74694c6f636174696f6e002800384e6f7465556e6c6f636b61626c650801146173736574b50101284d756c746941737365740001146f776e6572bd0101344d756c74694c6f636174696f6e0029003452657175657374556e6c6f636b0801146173736574b50101284d756c746941737365740001186c6f636b6572bd0101344d756c74694c6f636174696f6e002a002c536574466565734d6f64650401306a69745f7769746864726177200110626f6f6c002b0020536574546f70696304000401205b75383b2033325d002c0028436c656172546f706963002d002c416c6961734f726967696e0400bd0101344d756c74694c6f636174696f6e002e003c556e70616964457865637574696f6e0801307765696768745f6c696d69747101012c5765696768744c696d6974000130636865636b5f6f726967696e110501544f7074696f6e3c4d756c74694c6f636174696f6e3e002f0000fd040c0c78636d08763320526573706f6e7365000118104e756c6c000000184173736574730400ad01012c4d756c74694173736574730001003c457865637574696f6e526573756c740400350101504f7074696f6e3c287533322c204572726f72293e0002001c56657273696f6e040010013873757065723a3a56657273696f6e0003002c50616c6c657473496e666f040001050198426f756e6465645665633c50616c6c6574496e666f2c204d617850616c6c657473496e666f3e000400384469737061746368526573756c7404004d0101384d617962654572726f72436f64650005000001050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540105050453000004000d0501185665633c543e000005050c0c78636d0876332850616c6c6574496e666f0000180114696e646578cc010c7533320001106e616d6509050180426f756e6465645665633c75382c204d617850616c6c65744e616d654c656e3e00012c6d6f64756c655f6e616d6509050180426f756e6465645665633c75382c204d617850616c6c65744e616d654c656e3e0001146d616a6f72cc010c7533320001146d696e6f72cc010c7533320001147061746368cc010c753332000009050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e00000d05000002050500110504184f7074696f6e04045401bd010108104e6f6e6500000010536f6d650400bd01000001000015050c0c78636d087633445175657279526573706f6e7365496e666f00000c012c64657374696e6174696f6ebd0101344d756c74694c6f636174696f6e00012071756572795f69642c011c517565727949640001286d61785f77656967687428011857656967687400001905100c78636d087633286d756c74696173736574404d756c7469417373657446696c74657200010820446566696e6974650400ad01012c4d756c74694173736574730000001057696c6404001d05013857696c644d756c74694173736574000100001d05100c78636d087633286d756c746961737365743857696c644d756c746941737365740001100c416c6c00000014416c6c4f660801086964b901011c4173736574496400010c66756e2105013c57696c6446756e676962696c69747900010028416c6c436f756e7465640400cc010c75333200020030416c6c4f66436f756e7465640c01086964b901011c4173736574496400010c66756e2105013c57696c6446756e676962696c697479000114636f756e74cc010c753332000300002105100c78636d087633286d756c746961737365743c57696c6446756e676962696c6974790001082046756e6769626c650000002c4e6f6e46756e6769626c65000100002505080c78636d3056657273696f6e656458636d042c52756e74696d6543616c6c00010c08563204002905015076323a3a58636d3c52756e74696d6543616c6c3e00020008563304003905015076333a3a58636d3c52756e74696d6543616c6c3e00030008563404004505015076343a3a58636d3c52756e74696d6543616c6c3e0004000029050c0c78636d0876320c58636d042c52756e74696d6543616c6c000004002d0501745665633c496e737472756374696f6e3c52756e74696d6543616c6c3e3e00002d0500000231050031050c0c78636d0876322c496e737472756374696f6e042c52756e74696d6543616c6c000170345769746864726177417373657404007901012c4d756c7469417373657473000000545265736572766541737365744465706f736974656404007901012c4d756c7469417373657473000100585265636569766554656c65706f72746564417373657404007901012c4d756c7469417373657473000200345175657279526573706f6e73650c012071756572795f69642c011c51756572794964000120726573706f6e7365cd040120526573706f6e73650001286d61785f7765696768742c010c753634000300345472616e7366657241737365740801186173736574737901012c4d756c746941737365747300012c62656e6566696369617279890101344d756c74694c6f636174696f6e000400505472616e736665725265736572766541737365740c01186173736574737901012c4d756c746941737365747300011064657374890101344d756c74694c6f636174696f6e00010c78636dc104011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f74797065dd0401284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f73742c010c75363400011063616c6c35050168446f75626c65456e636f6465643c52756e74696d6543616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572cc010c7533320001406d61785f6d6573736167655f73697a65cc010c7533320001306d61785f6361706163697479cc010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74cc010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72cc010c75333200011873656e646572cc010c753332000124726563697069656e74cc010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e04008d010154496e746572696f724d756c74694c6f636174696f6e000b002c5265706f72744572726f720c012071756572795f69642c011c5175657279496400011064657374890101344d756c74694c6f636174696f6e00014c6d61785f726573706f6e73655f7765696768742c010c753634000c00304465706f73697441737365740c0118617373657473e10401404d756c7469417373657446696c7465720001286d61785f617373657473cc010c75333200012c62656e6566696369617279890101344d756c74694c6f636174696f6e000d004c4465706f736974526573657276654173736574100118617373657473e10401404d756c7469417373657446696c7465720001286d61785f617373657473cc010c75333200011064657374890101344d756c74694c6f636174696f6e00010c78636dc104011c58636d3c28293e000e003445786368616e6765417373657408011067697665e10401404d756c7469417373657446696c74657200011c726563656976657901012c4d756c7469417373657473000f005c496e6974696174655265736572766557697468647261770c0118617373657473e10401404d756c7469417373657446696c74657200011c72657365727665890101344d756c74694c6f636174696f6e00010c78636dc104011c58636d3c28293e00100040496e69746961746554656c65706f72740c0118617373657473e10401404d756c7469417373657446696c74657200011064657374890101344d756c74694c6f636174696f6e00010c78636dc104011c58636d3c28293e001100305175657279486f6c64696e6710012071756572795f69642c011c5175657279496400011064657374890101344d756c74694c6f636174696f6e000118617373657473e10401404d756c7469417373657446696c74657200014c6d61785f726573706f6e73655f7765696768742c010c75363400120030427579457865637574696f6e08011066656573810101284d756c746941737365740001307765696768745f6c696d6974ed04012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204002905014058636d3c52756e74696d6543616c6c3e0015002c536574417070656e64697804002905014058636d3c52756e74696d6543616c6c3e00160028436c6561724572726f7200170028436c61696d41737365740801186173736574737901012c4d756c74694173736574730001187469636b6574890101344d756c74694c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f7765696768742c010c753634001a0048556e73756273637269626556657273696f6e001b000035050c0c78636d38646f75626c655f656e636f64656434446f75626c65456e636f646564040454000004011c656e636f64656438011c5665633c75383e000039050c0c78636d0876330c58636d041043616c6c000004003d0501585665633c496e737472756374696f6e3c43616c6c3e3e00003d0500000241050041050c0c78636d0876332c496e737472756374696f6e041043616c6c0001c034576974686472617741737365740400ad01012c4d756c7469417373657473000000545265736572766541737365744465706f73697465640400ad01012c4d756c7469417373657473000100585265636569766554656c65706f7274656441737365740400ad01012c4d756c7469417373657473000200345175657279526573706f6e736510012071756572795f69642c011c51756572794964000120726573706f6e7365fd040120526573706f6e73650001286d61785f77656967687428011857656967687400011c71756572696572110501544f7074696f6e3c4d756c74694c6f636174696f6e3e000300345472616e736665724173736574080118617373657473ad01012c4d756c746941737365747300012c62656e6566696369617279bd0101344d756c74694c6f636174696f6e000400505472616e736665725265736572766541737365740c0118617373657473ad01012c4d756c746941737365747300011064657374bd0101344d756c74694c6f636174696f6e00010c78636df104011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f6b696e64590101284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737428011857656967687400011063616c6c3505014c446f75626c65456e636f6465643c43616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572cc010c7533320001406d61785f6d6573736167655f73697a65cc010c7533320001306d61785f6361706163697479cc010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74cc010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72cc010c75333200011873656e646572cc010c753332000124726563697069656e74cc010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e0400c1010154496e746572696f724d756c74694c6f636174696f6e000b002c5265706f72744572726f720400150501445175657279526573706f6e7365496e666f000c00304465706f7369744173736574080118617373657473190501404d756c7469417373657446696c74657200012c62656e6566696369617279bd0101344d756c74694c6f636174696f6e000d004c4465706f7369745265736572766541737365740c0118617373657473190501404d756c7469417373657446696c74657200011064657374bd0101344d756c74694c6f636174696f6e00010c78636df104011c58636d3c28293e000e003445786368616e676541737365740c011067697665190501404d756c7469417373657446696c74657200011077616e74ad01012c4d756c746941737365747300011c6d6178696d616c200110626f6f6c000f005c496e6974696174655265736572766557697468647261770c0118617373657473190501404d756c7469417373657446696c74657200011c72657365727665bd0101344d756c74694c6f636174696f6e00010c78636df104011c58636d3c28293e00100040496e69746961746554656c65706f72740c0118617373657473190501404d756c7469417373657446696c74657200011064657374bd0101344d756c74694c6f636174696f6e00010c78636df104011c58636d3c28293e001100345265706f7274486f6c64696e67080134726573706f6e73655f696e666f150501445175657279526573706f6e7365496e666f000118617373657473190501404d756c7469417373657446696c74657200120030427579457865637574696f6e08011066656573b50101284d756c746941737365740001307765696768745f6c696d69747101012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204003905012458636d3c43616c6c3e0015002c536574417070656e64697804003905012458636d3c43616c6c3e00160028436c6561724572726f7200170028436c61696d4173736574080118617373657473ad01012c4d756c74694173736574730001187469636b6574bd0101344d756c74694c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f776569676874280118576569676874001a0048556e73756273637269626556657273696f6e001b00244275726e41737365740400ad01012c4d756c7469417373657473001c002c45787065637441737365740400ad01012c4d756c7469417373657473001d00304578706563744f726967696e0400110501544f7074696f6e3c4d756c74694c6f636174696f6e3e001e002c4578706563744572726f720400350101504f7074696f6e3c287533322c204572726f72293e001f00504578706563745472616e7361637453746174757304004d0101384d617962654572726f72436f64650020002c517565727950616c6c657408012c6d6f64756c655f6e616d6538011c5665633c75383e000134726573706f6e73655f696e666f150501445175657279526573706f6e7365496e666f0021003045787065637450616c6c6574140114696e646578cc010c7533320001106e616d6538011c5665633c75383e00012c6d6f64756c655f6e616d6538011c5665633c75383e00012c63726174655f6d616a6f72cc010c75333200013c6d696e5f63726174655f6d696e6f72cc010c753332002200505265706f72745472616e736163745374617475730400150501445175657279526573706f6e7365496e666f0023004c436c6561725472616e736163745374617475730024003c556e6976657273616c4f726967696e0400c50101204a756e6374696f6e002500344578706f72744d6573736167650c011c6e6574776f726bcd0101244e6574776f726b496400012c64657374696e6174696f6ec1010154496e746572696f724d756c74694c6f636174696f6e00010c78636df104011c58636d3c28293e002600244c6f636b41737365740801146173736574b50101284d756c74694173736574000120756e6c6f636b6572bd0101344d756c74694c6f636174696f6e0027002c556e6c6f636b41737365740801146173736574b50101284d756c74694173736574000118746172676574bd0101344d756c74694c6f636174696f6e002800384e6f7465556e6c6f636b61626c650801146173736574b50101284d756c746941737365740001146f776e6572bd0101344d756c74694c6f636174696f6e0029003452657175657374556e6c6f636b0801146173736574b50101284d756c746941737365740001186c6f636b6572bd0101344d756c74694c6f636174696f6e002a002c536574466565734d6f64650401306a69745f7769746864726177200110626f6f6c002b0020536574546f70696304000401205b75383b2033325d002c0028436c656172546f706963002d002c416c6961734f726967696e0400bd0101344d756c74694c6f636174696f6e002e003c556e70616964457865637574696f6e0801307765696768745f6c696d69747101012c5765696768744c696d6974000130636865636b5f6f726967696e110501544f7074696f6e3c4d756c74694c6f636174696f6e3e002f000045050c2c73746167696e675f78636d0876340c58636d041043616c6c00000400490501585665633c496e737472756374696f6e3c43616c6c3e3e000049050000024d05004d050c2c73746167696e675f78636d0876342c496e737472756374696f6e041043616c6c0001c03457697468647261774173736574040011010118417373657473000000545265736572766541737365744465706f7369746564040011010118417373657473000100585265636569766554656c65706f727465644173736574040011010118417373657473000200345175657279526573706f6e736510012071756572795f69642c011c51756572794964000120726573706f6e736531010120526573706f6e73650001286d61785f77656967687428011857656967687400011c71756572696572550101404f7074696f6e3c4c6f636174696f6e3e000300345472616e7366657241737365740801186173736574731101011841737365747300012c62656e6566696369617279bc01204c6f636174696f6e000400505472616e736665725265736572766541737365740c01186173736574731101011841737365747300011064657374bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f6b696e64590101284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737428011857656967687400011063616c6c3505014c446f75626c65456e636f6465643c43616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572cc010c7533320001406d61785f6d6573736167655f73697a65cc010c7533320001306d61785f6361706163697479cc010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74cc010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72cc010c75333200011873656e646572cc010c753332000124726563697069656e74cc010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e0400c00140496e746572696f724c6f636174696f6e000b002c5265706f72744572726f720400610101445175657279526573706f6e7365496e666f000c00304465706f73697441737365740801186173736574736501012c417373657446696c74657200012c62656e6566696369617279bc01204c6f636174696f6e000d004c4465706f7369745265736572766541737365740c01186173736574736501012c417373657446696c74657200011064657374bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e000e003445786368616e676541737365740c0110676976656501012c417373657446696c74657200011077616e741101011841737365747300011c6d6178696d616c200110626f6f6c000f005c496e6974696174655265736572766557697468647261770c01186173736574736501012c417373657446696c74657200011c72657365727665bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e00100040496e69746961746554656c65706f72740c01186173736574736501012c417373657446696c74657200011064657374bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e001100345265706f7274486f6c64696e67080134726573706f6e73655f696e666f610101445175657279526573706f6e7365496e666f0001186173736574736501012c417373657446696c74657200120030427579457865637574696f6e080110666565731901011441737365740001307765696768745f6c696d69747101012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204004505012458636d3c43616c6c3e0015002c536574417070656e64697804004505012458636d3c43616c6c3e00160028436c6561724572726f7200170028436c61696d4173736574080118617373657473110101184173736574730001187469636b6574bc01204c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f776569676874280118576569676874001a0048556e73756273637269626556657273696f6e001b00244275726e4173736574040011010118417373657473001c002c4578706563744173736574040011010118417373657473001d00304578706563744f726967696e0400550101404f7074696f6e3c4c6f636174696f6e3e001e002c4578706563744572726f720400350101504f7074696f6e3c287533322c204572726f72293e001f00504578706563745472616e7361637453746174757304004d0101384d617962654572726f72436f64650020002c517565727950616c6c657408012c6d6f64756c655f6e616d6538011c5665633c75383e000134726573706f6e73655f696e666f610101445175657279526573706f6e7365496e666f0021003045787065637450616c6c6574140114696e646578cc010c7533320001106e616d6538011c5665633c75383e00012c6d6f64756c655f6e616d6538011c5665633c75383e00012c63726174655f6d616a6f72cc010c75333200013c6d696e5f63726174655f6d696e6f72cc010c753332002200505265706f72745472616e736163745374617475730400610101445175657279526573706f6e7365496e666f0023004c436c6561725472616e736163745374617475730024003c556e6976657273616c4f726967696e0400c801204a756e6374696f6e002500344578706f72744d6573736167650c011c6e6574776f726bd401244e6574776f726b496400012c64657374696e6174696f6ec00140496e746572696f724c6f636174696f6e00010c78636d0501011c58636d3c28293e002600244c6f636b41737365740801146173736574190101144173736574000120756e6c6f636b6572bc01204c6f636174696f6e0027002c556e6c6f636b41737365740801146173736574190101144173736574000118746172676574bc01204c6f636174696f6e002800384e6f7465556e6c6f636b61626c6508011461737365741901011441737365740001146f776e6572bc01204c6f636174696f6e0029003452657175657374556e6c6f636b08011461737365741901011441737365740001186c6f636b6572bc01204c6f636174696f6e002a002c536574466565734d6f64650401306a69745f7769746864726177200110626f6f6c002b0020536574546f70696304000401205b75383b2033325d002c0028436c656172546f706963002d002c416c6961734f726967696e0400bc01204c6f636174696f6e002e003c556e70616964457865637574696f6e0801307765696768745f6c696d69747101012c5765696768744c696d6974000130636865636b5f6f726967696e550101404f7074696f6e3c4c6f636174696f6e3e002f00005105105073746167696e675f78636d5f6578656375746f72187472616974733861737365745f7472616e73666572305472616e73666572547970650001102054656c65706f7274000000304c6f63616c526573657276650001004844657374696e6174696f6e526573657276650002003452656d6f7465526573657276650400d901014456657273696f6e65644c6f636174696f6e000300005505080c78636d4056657273696f6e6564417373657449640001080856330400b901012c76333a3a4173736574496400030008563404001d01012c76343a3a417373657449640004000059050c4863756d756c75735f70616c6c65745f78636d1870616c6c65741043616c6c040454000100040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e5d050c5070616c6c65745f6d6573736167655f71756575651870616c6c65741043616c6c04045400010824726561705f706167650801386d6573736167655f6f726967696ee50101484d6573736167654f726967696e4f663c543e000128706167655f696e64657810012450616765496e6465780000043d0152656d6f76652061207061676520776869636820686173206e6f206d6f7265206d657373616765732072656d61696e696e6720746f2062652070726f636573736564206f72206973207374616c652e48657865637574655f6f7665727765696768741001386d6573736167655f6f726967696ee50101484d6573736167654f726967696e4f663c543e0001107061676510012450616765496e646578000114696e64657810011c543a3a53697a650001307765696768745f6c696d6974280118576569676874000134784578656375746520616e206f766572776569676874206d6573736167652e004d0154656d706f726172792070726f63657373696e67206572726f72732077696c6c2062652070726f706167617465642077686572656173207065726d616e656e74206572726f7273206172652074726561746564546173207375636365737320636f6e646974696f6e2e00742d20606f726967696e603a204d75737420626520605369676e6564602e35012d20606d6573736167655f6f726967696e603a20546865206f726967696e2066726f6d20776869636820746865206d65737361676520746f20626520657865637574656420617272697665642e3d012d206070616765603a20546865207061676520696e2074686520717565756520696e20776869636820746865206d65737361676520746f2062652065786563757465642069732073697474696e672e09012d2060696e646578603a2054686520696e64657820696e746f20746865207175657565206f6620746865206d65737361676520746f2062652065786563757465642e59012d20607765696768745f6c696d6974603a20546865206d6178696d756d20616d6f756e74206f662077656967687420616c6c6f77656420746f20626520636f6e73756d656420696e2074686520657865637574696f6e4420206f6620746865206d6573736167652e00f442656e63686d61726b20636f6d706c657869747920636f6e73696465726174696f6e733a204f28696e646578202b207765696768745f6c696d6974292e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e61050c6070616c6c65745f73746f726167655f70726f7669646572731870616c6c65741043616c6c0404540001384c726571756573745f6d73705f7369676e5f7570180120636170616369747930014853746f7261676544617461556e69743c543e0001386d756c7469616464726573736573f50101444d756c74696164647265737365733c543e0001ac76616c75655f70726f705f70726963655f7065725f756e69745f6f665f646174615f7065725f626c6f636b18013042616c616e63654f663c543e000128636f6d6d69746d656e7409020134436f6d6d69746d656e743c543e00016476616c75655f70726f705f6d61785f646174615f6c696d697430014853746f7261676544617461556e69743c543e00013c7061796d656e745f6163636f756e74000130543a3a4163636f756e7449640000686901446973706174636861626c652065787472696e736963207468617420616c6c6f777320757365727320746f207265717565737420746f207369676e2075702061732061204d61696e2053746f726167652050726f76696465722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e4101546865206f726967696e206d75737420626520746865206163636f756e7420746861742077616e747320746f207369676e2075702061732061204d61696e2053746f726167652050726f76696465722e00490146756e64732070726f706f7274696f6e616c20746f207468652063617061636974792072657175657374656420617265207265736572766564202868656c64292066726f6d20746865206163636f756e742e002c506172616d65746572733a71012d20606361706163697479603a2054686520746f74616c20616d6f756e74206f662064617461207468617420746865204d61696e2053746f726167652050726f76696465722077696c6c2062652061626c6520746f2073746f72652e91012d20606d756c7469616464726573736573603a2054686520766563746f72206f66206d756c7469616464726573736573207468617420746865207369676e65722077616e747320746f20726567697374657220286163636f7264696e6720746f20746865f05b4d756c74696164647220737065635d2868747470733a2f2f6769746875622e636f6d2f6d756c7469666f726d6174732f6d756c746961646472292981012d206076616c75655f70726f70603a205468652076616c75652070726f706f736974696f6e207468617420746865207369676e65722077696c6c2070726f766964652061732061204d61696e2053746f726167652050726f766964657220746fad01757365727320616e642077616e747320746f207265676973746572206f6e2d636861696e2e20497420636f756c642062652064617461206c696d6974732c20636f6d6d756e69636174696f6e2070726f746f636f6c7320746f2061636365737320746865207573657227733c646174612c20616e64206d6f72652e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722e2501322e20436865636b207468617420746865207369676e6572206973206e6f7420616c72656164792072656769737465726564206173206569746865722061204d5350206f72204253509c332e20436865636b207468617420746865206d756c7469616464726573732069732076616c69646101342e20436865636b207468617420746865206461746120746f2062652073746f7265642069732067726561746572207468616e20746865206d696e696d756d207265717569726564206279207468652072756e74696d652e9101352e2043616c63756c61746520686f77206d756368206465706f7369742077696c6c20746865207369676e6572206861766520746f20706179207573696e672074686520616d6f756e74206f6620646174612069742077616e747320746f2073746f7265f0362e20436865636b207468617420746865207369676e65722068617320656e6f7567682066756e647320746f2070617920746865206465706f7369748c372e20486f6c6420746865206465706f7369742066726f6d20746865207369676e65726901382e2055706461746520746865205369676e2055702052657175657374732073746f7261676520746f2061646420746865207369676e65722061732072657175657374696e6720746f207369676e2075702061732061204d535000d8456d69747320604d7370526571756573745369676e55705375636365737360206576656e74207768656e207375636365737366756c2e4c726571756573745f6273705f7369676e5f75700c0120636170616369747930014853746f7261676544617461556e69743c543e0001386d756c7469616464726573736573f50101444d756c74696164647265737365733c543e00013c7061796d656e745f6163636f756e74000130543a3a4163636f756e74496400015c4501446973706174636861626c652065787472696e736963207468617420616c6c6f777320757365727320746f207369676e2075702061732061204261636b75702053746f726167652050726f76696465722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e4901546865206f726967696e206d75737420626520746865206163636f756e7420746861742077616e747320746f207369676e2075702061732061204261636b75702053746f726167652050726f76696465722e00490146756e64732070726f706f7274696f6e616c20746f207468652063617061636974792072657175657374656420617265207265736572766564202868656c64292066726f6d20746865206163636f756e742e002c506172616d65746572733a79012d20606361706163697479603a2054686520746f74616c20616d6f756e74206f662064617461207468617420746865204261636b75702053746f726167652050726f76696465722077696c6c2062652061626c6520746f2073746f72652e91012d20606d756c7469616464726573736573603a2054686520766563746f72206f66206d756c7469616464726573736573207468617420746865207369676e65722077616e747320746f20726567697374657220286163636f7264696e6720746f20746865f05b4d756c74696164647220737065635d2868747470733a2f2f6769746875622e636f6d2f6d756c7469666f726d6174732f6d756c746961646472292900ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722e2501322e20436865636b207468617420746865207369676e6572206973206e6f7420616c72656164792072656769737465726564206173206569746865722061204d5350206f72204253509c332e20436865636b207468617420746865206d756c7469616464726573732069732076616c69645d01342e20436865636b207468617420746865206461746120746f2062652073746f7265642069732067726561746572207468616e20746865206d696e696d756d207265717569726564206279207468652072756e74696d659101352e2043616c63756c61746520686f77206d756368206465706f7369742077696c6c20746865207369676e6572206861766520746f20706179207573696e672074686520616d6f756e74206f6620646174612069742077616e747320746f2073746f7265f0362e20436865636b207468617420746865207369676e65722068617320656e6f7567682066756e647320746f2070617920746865206465706f7369748c372e20486f6c6420746865206465706f7369742066726f6d20746865207369676e65726901382e2055706461746520746865205369676e2055702052657175657374732073746f7261676520746f2061646420746865207369676e65722061732072657175657374696e6720746f207369676e20757020617320612042535000d8456d6974732060427370526571756573745369676e55705375636365737360206576656e74207768656e207375636365737366756c2e3c636f6e6669726d5f7369676e5f757004014070726f76696465725f6163636f756e749c01504f7074696f6e3c543a3a4163636f756e7449643e00025cad01446973706174636861626c652065787472696e736963207468617420616c6c6f777320757365727320746f20636f6e6669726d207468656972207369676e20757020617320612053746f726167652050726f76696465722c20656974686572204d5350206f72204253502e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e9d01546865206f726967696e206d75737420626520746865206163636f756e7420746861742072657175657374656420746f207369676e20757020617320612053746f726167652050726f76696465722c20657863657074207768656e2070726f766964696e67206129016070726f76696465725f6163636f756e746020706172616d657465722c20696e207768696368206361736520746865206f726967696e2063616e20626520616e79206163636f756e742e002c506172616d65746572733ab9012d206070726f76696465725f6163636f756e74603a20546865206163636f756e7420746861742072657175657374656420746f207369676e20757020617320612053746f726167652050726f76696465722e204966206e6f742070726f76696465642c20746865207369676e6572e477696c6c20626520636f6e7369646572656420746865206163636f756e7420746861742072657175657374656420746f207369676e2075702e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633a98312e20436865636b2074686174207468652065787472696e73696320776173207369676e65641101322e20436865636b207468617420746865206163636f756e74207265636569766564206861732072657175657374656420746f20726567697374657220617320612053508101332e20436865636b2074686174207468652063757272656e742072616e646f6d6e6573732069732073756666696369656e746c7920667265736820746f206265207573656420617320612073616c7420666f7220746861742072657175657374a4342e20436865636b207468617420746865207265717565737420686173206e6f7420657870697265643101352e20526567697374657220746865207369676e65722061732061204d5350206f722042535020776974682074686520646174612070726f766964656420696e207468652072657175657374009d01456d69747320604d73705369676e55705375636365737360206f7220604273705369676e55705375636365737360206576656e74207768656e207375636365737366756c2c20646570656e64696e67206f6e207468652074797065206f66207369676e2075702e00184e6f7465733a1d012d20546869732065787472696e73696320636f756c642062652063616c6c656420627920746865207573657220697473656c66206f722062792061207468697264207061727479b5012d20546865206465706f73697420746861742074686520757365722068617320746f2070617920746f20726567697374657220617320612053502069732068656c64207768656e20746865207573657220726571756573747320746f207265676973746572206173206120535081012d20496620746869732065787472696e736963206973207375636365737366756c2c2069742077696c6c206265206672656520666f72207468652063616c6c65722c20746f20696e63656e74697665207374617465206465626c6f6174696e673863616e63656c5f7369676e5f7570000330c101446973706174636861626c652065787472696e736963207468617420616c6c6f777320612075736572207769746820612070656e64696e67205369676e205570205265717565737420746f2063616e63656c2069742c2067657474696e6720746865206465706f736974206261636b2e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e3d01546865206f726967696e206d75737420626520746865206163636f756e7420746861742072657175657374656420746f207369676e20757020617320612053746f726167652050726f76696465722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722ee4322e20436865636b207468617420746865207369676e6572206861732072657175657374656420746f207369676e2075702061732061205350dc332e2044656c6574652074686520726571756573742066726f6d20746865205369676e2055702052657175657374732073746f726167658c342e2052657475726e20746865206465706f73697420746f20746865207369676e657200d0456d69747320605369676e55705265717565737443616e63656c656460206576656e74207768656e207375636365737366756c2e306d73705f7369676e5f6f66660004384101446973706174636861626c652065787472696e736963207468617420616c6c6f777320757365727320746f207369676e206f66662061732061204d61696e2053746f726167652050726f76696465722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e4501546865206f726967696e206d75737420626520746865206163636f756e7420746861742077616e747320746f207369676e206f66662061732061204d61696e2053746f726167652050726f76696465722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722ebc322e20436865636b207468617420746865207369676e657220697320726567697374657265642061732061204d53504d01332e20436865636b207468617420746865204d535020686173206e6f2073746f726167652061737369676e656420746f20697420286e6f206275636b657473206f722064617461207573656420627920697429e4342e2055706461746520746865204d5350732073746f726167652c2072656d6f76696e6720746865207369676e657220617320616e204d53508c352e2052657475726e20746865206465706f73697420746f20746865207369676e65724101362e2044656372656d656e74207468652073746f72616765207468617420686f6c647320746f74616c20616d6f756e74206f66204d5350732063757272656e746c7920696e207468652073797374656d00c0456d69747320604d73705369676e4f66665375636365737360206576656e74207768656e207375636365737366756c2e306273705f7369676e5f6f666600053c4901446973706174636861626c652065787472696e736963207468617420616c6c6f777320757365727320746f207369676e206f66662061732061204261636b75702053746f726167652050726f76696465722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e4d01546865206f726967696e206d75737420626520746865206163636f756e7420746861742077616e747320746f207369676e206f66662061732061204261636b75702053746f726167652050726f76696465722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722ebc322e20436865636b207468617420746865207369676e65722069732072656769737465726564206173206120425350cc332e20436865636b2074686174207468652042535020686173206e6f2073746f726167652061737369676e656420746f206974e4342e205570646174652074686520425350732073746f726167652c2072656d6f76696e6720746865207369676e657220617320616e204253503501352e205570646174652074686520746f74616c206361706163697479206f6620616c6c20425350732c2072656d6f76696e6720746865206361706163697479206f6620746865207369676e65728c362e2052657475726e20746865206465706f73697420746f20746865207369676e65724101372e2044656372656d656e74207468652073746f72616765207468617420686f6c647320746f74616c20616d6f756e74206f6620425350732063757272656e746c7920696e207468652073797374656d00c0456d69747320604273705369676e4f66665375636365737360206576656e74207768656e207375636365737366756c2e3c6368616e67655f63617061636974790401306e65775f636170616369747930014853746f7261676544617461556e69743c543e0006603901446973706174636861626c652065787472696e736963207468617420616c6c6f777320757365727320746f206368616e676520746865697220616d6f756e74206f662073746f726564206461746100c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e0501546865206f726967696e206d75737420626520746865206163636f756e7420746861742077616e747320746f206368616e6765206974732063617061636974792e002c506172616d65746572733a8d012d20606e65775f6361706163697479603a20546865206e657720746f74616c20616d6f756e74206f6620646174612074686174207468652053746f726167652050726f76696465722077616e747320746f2062652061626c6520746f2073746f72652e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722eb8322e20436865636b207468617420746865207369676e6572206973207265676973746572656420617320612053505101332e20436865636b207468617420656e6f7567682074696d6520686173207061737365642073696e636520746865206c6173742074696d6520746865205350206368616e676564206974732063617061636974794901342e20436865636b207468617420746865206e65772063617061636974792069732067726561746572207468616e20746865206d696e696d756d207265717569726564206279207468652072756e74696d651d01352e20436865636b207468617420746865206e65772063617061636974792069732067726561746572207468616e20746865206461746120757365642062792074686973205350e4362e2043616c63756c61746520746865206e6577206465706f736974206e656564656420666f722074686973206e65772063617061636974795501372e20436865636b20746f2073656520696620746865206e6577206465706f736974206e65656465642069732067726561746572206f72206c657373207468616e207468652063757272656e74206465706f736974ec09612e20496620746865206e6577206465706f7369742069732067726561746572207468616e207468652063757272656e74206465706f7369743a15010909692e20436865636b207468617420746865207369676e65722068617320656e6f7567682066756e647320746f207061792074686973206578747261206465706f736974b0090969692e20486f6c6420746865206578747261206465706f7369742066726f6d20746865207369676e6572850109622e20496620746865206e6577206465706f736974206973206c657373207468616e207468652063757272656e74206465706f7369742c2072657475726e207468652068656c6420646966666572656e636520746f20746865207369676e6572c8372e2055706461746520746865205350732073746f7261676520746f206368616e67652074686520746f74616c20646174617501382e20496620757365722069732061204253502c207570646174652074686520746f74616c206361706163697479206f6620746865206e6574776f726b202873756d206f6620616c6c2063617061636974696573206f6620425350732900b8456d697473206043617061636974794368616e67656460206576656e74207768656e207375636365737366756c2e386164645f76616c75655f70726f700c018070726963655f7065725f756e69745f6f665f646174615f7065725f626c6f636b18013042616c616e63654f663c543e000128636f6d6d69746d656e7409020134436f6d6d69746d656e743c543e0001446275636b65745f646174615f6c696d697430014853746f7261676544617461556e69743c543e0007189d01446973706174636861626c652065787472696e736963206f6e6c792063616c6c61626c6520627920616e204d5350207468617420616c6c6f777320697420746f2061646420612076616c75652070726f706f736974696f6e20746f20697473207365727669636500c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e1501546865206f726967696e206d75737420626520746865206163636f756e7420746861742077616e747320746f2061646420612076616c75652070726f706f736974696f6e2e00b4456d697473206056616c756550726f70416464656460206576656e74207768656e207375636365737366756c2e6c6d616b655f76616c75655f70726f705f756e617661696c61626c6504013476616c75655f70726f705f696434013856616c756550726f7049643c543e0008109901446973706174636861626c652065787472696e736963206f6e6c792063616c6c61626c6520627920616e204d5350207468617420616c6c6f777320697420746f206d616b6520612076616c75652070726f706f736974696f6e20756e617661696c61626c652e002d0154686973206f7065726174696f6e2063616e6e6f742062652072657665727365642e20596f752063616e206f6e6c7920616464206e65772076616c75652070726f706f736974696f6e732e3501546869732077696c6c206e6f7420616666656374206578697374696e67206275636b65747320776869636820617265207573696e6720746869732076616c75652070726f706f736974696f6e2e406164645f6d756c7469616464726573730401406e65775f6d756c746961646472657373f901013c4d756c7469416464726573733c543e0009407101446973706174636861626c652065787472696e736963207468617420616c6c6f7773204253507320616e64204d53507320746f206164642061206e6577206d756c74696164647265737320746f207468656972206163636f756e742e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e1101546865206f726967696e206d75737420626520746865206163636f756e7420746861742077616e747320746f206164642061206e6577206d756c7469616464726573732e002c506172616d65746572733a5d012d20606e65775f6d756c746961646472657373603a20546865206e6577206d756c746961646472657373207468617420746865207369676e65722077616e747320746f2061646420746f20697473206163636f756e742e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722edc322e20436865636b207468617420746865207369676e657220697320726567697374657265642061732061204d5350206f72204253502e4101332e20436865636b2074686174207468652050726f766964657220686173206e6f74207265616368656420746865206d6178696d756d20616d6f756e74206f66206d756c74696164647265737365732e8d01342e20436865636b207468617420746865206d756c7469616464726573732069732076616c6964202873697a6520616e6420616e79206f746865722072656c6576616e7420636865636b73292e20544f444f3a20496d706c656d656e7420746869732ee4352e20557064617465207468652050726f766964657227732073746f7261676520746f2061646420746865206d756c7469616464726573732e00c0456d69747320604d756c746941646472657373416464656460206576656e74207768656e207375636365737366756c2e4c72656d6f76655f6d756c7469616464726573730401306d756c746961646472657373f901013c4d756c7469416464726573733c543e000a3c9d01446973706174636861626c652065787472696e736963207468617420616c6c6f7773204253507320616e64204d53507320746f2072656d6f766520616e206578697374696e67206d756c7469616464726573732066726f6d207468656972206163636f756e742e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e0d01546865206f726967696e206d75737420626520746865206163636f756e7420746861742077616e747320746f2072656d6f76652061206d756c7469616464726573732e002c506172616d65746572733a51012d20606d756c746961646472657373603a20546865206d756c746961646472657373207468617420746865207369676e65722077616e747320746f2072656d6f76652066726f6d20697473206163636f756e742e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722edc322e20436865636b207468617420746865207369676e657220697320726567697374657265642061732061204d5350206f72204253502e0101332e20436865636b207468617420746865206d756c7469616464726573732065786973747320696e207468652050726f76696465722773206163636f756e742ef0342e20557064617465207468652050726f766964657227732073746f7261676520746f2072656d6f766520746865206d756c7469616464726573732e00c8456d69747320604d756c74694164647265737352656d6f76656460206576656e74207768656e207375636365737366756c2e44666f7263655f6d73705f7369676e5f757020010c77686f000130543a3a4163636f756e7449640001186d73705f69643401604d61696e53746f7261676550726f766964657249643c543e000120636170616369747930014853746f7261676544617461556e69743c543e0001386d756c7469616464726573736573f50101444d756c74696164647265737365733c543e0001ac76616c75655f70726f705f70726963655f7065725f756e69745f6f665f646174615f7065725f626c6f636b18013042616c616e63654f663c543e000128636f6d6d69746d656e7409020134436f6d6d69746d656e743c543e00016476616c75655f70726f705f6d61785f646174615f6c696d697430014853746f7261676544617461556e69743c543e00013c7061796d656e745f6163636f756e74000130543a3a4163636f756e744964000b588d01446973706174636861626c652065787472696e736963207468617420616c6c6f777320746f20666f72636566756c6c7920616e64206175746f6d61746963616c6c79207369676e2075702061204d61696e2053746f726167652050726f76696465722e00bc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f742e5101546865206077686f6020706172616d6574657220697320746865206163636f756e7420746861742077616e747320746f207369676e2075702061732061204d61696e2053746f726167652050726f76696465722e00c10146756e64732070726f706f7274696f6e616c20746f207468652063617061636974792072657175657374656420617265207265736572766564202868656c64292066726f6d20746865206163636f756e742070617373656420617320746865206077686f6020706172616d657465722e002c506172616d65746572733a19012d206077686f603a20546865206163636f756e7420746861742077616e747320746f207369676e2075702061732061204d61696e2053746f726167652050726f76696465722ed1012d20606d73705f6964603a20546865204d61696e2053746f726167652050726f7669646572204944207468617420746865206163636f756e742070617373656420617320746865206077686f6020706172616d657465722069732072657175657374696e6720746f207369676e2075702061732e71012d20606361706163697479603a2054686520746f74616c20616d6f756e74206f662064617461207468617420746865204d61696e2053746f726167652050726f76696465722077696c6c2062652061626c6520746f2073746f72652e91012d20606d756c7469616464726573736573603a2054686520766563746f72206f66206d756c7469616464726573736573207468617420746865207369676e65722077616e747320746f20726567697374657220286163636f7264696e6720746f20746865f05b4d756c74696164647220737065635d2868747470733a2f2f6769746875622e636f6d2f6d756c7469666f726d6174732f6d756c746961646472292981012d206076616c75655f70726f70603a205468652076616c75652070726f706f736974696f6e207468617420746865207369676e65722077696c6c2070726f766964652061732061204d61696e2053746f726167652050726f766964657220746fad01757365727320616e642077616e747320746f207265676973746572206f6e2d636861696e2e20497420636f756c642062652064617461206c696d6974732c20636f6d6d756e69636174696f6e2070726f746f636f6c7320746f2061636365737320746865207573657227733c646174612c20616e64206d6f72652e00a4546869732065787472696e7369632077696c6c20706572666f726d20746865207374657073206f663a0d01312e205b726571756573745f6d73705f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a726571756573745f6d73705f7369676e5f757029ec322e205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f757029003901456d69747320604d7370526571756573745369676e5570537563636573736020616e6420604d73705369676e55705375636365737360206576656e7473207768656e207375636365737366756c2e44666f7263655f6273705f7369676e5f757018010c77686f000130543a3a4163636f756e7449640001186273705f69643401684261636b757053746f7261676550726f766964657249643c543e000120636170616369747930014853746f7261676544617461556e69743c543e0001386d756c7469616464726573736573f50101444d756c74696164647265737365733c543e00013c7061796d656e745f6163636f756e74000130543a3a4163636f756e7449640001187765696768741502017c4f7074696f6e3c52657075746174696f6e576569676874547970653c543e3e000c4c9501446973706174636861626c652065787472696e736963207468617420616c6c6f777320746f20666f72636566756c6c7920616e64206175746f6d61746963616c6c792073696e672075702061204261636b75702053746f726167652050726f76696465722e00bc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f742e5901546865206077686f6020706172616d6574657220697320746865206163636f756e7420746861742077616e747320746f207369676e2075702061732061204261636b75702053746f726167652050726f76696465722e00c10146756e64732070726f706f7274696f6e616c20746f207468652063617061636974792072657175657374656420617265207265736572766564202868656c64292066726f6d20746865206163636f756e742070617373656420617320746865206077686f6020706172616d657465722e002c506172616d65746572733a21012d206077686f603a20546865206163636f756e7420746861742077616e747320746f207369676e2075702061732061204261636b75702053746f726167652050726f76696465722ed9012d20606273705f6964603a20546865204261636b75702053746f726167652050726f7669646572204944207468617420746865206163636f756e742070617373656420617320746865206077686f6020706172616d657465722069732072657175657374696e6720746f207369676e2075702061732e79012d20606361706163697479603a2054686520746f74616c20616d6f756e74206f662064617461207468617420746865204261636b75702053746f726167652050726f76696465722077696c6c2062652061626c6520746f2073746f72652e91012d20606d756c7469616464726573736573603a2054686520766563746f72206f66206d756c7469616464726573736573207468617420746865207369676e65722077616e747320746f20726567697374657220286163636f7264696e6720746f20746865f05b4d756c74696164647220737065635d2868747470733a2f2f6769746875622e636f6d2f6d756c7469666f726d6174732f6d756c746961646472292900a4546869732065787472696e7369632077696c6c20706572666f726d20746865207374657073206f663a0d01312e205b726571756573745f6273705f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a726571756573745f6273705f7369676e5f757029ec322e205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f757029003901456d6974732060427370526571756573745369676e5570537563636573736020616e6420604273705369676e55705375636365737360206576656e7473207768656e207375636365737366756c2e14736c61736804012c70726f76696465725f69643401244861736849643c543e000d10fc446973706174636861626c652065787472696e73696320746f20736c6173682061205f736c61736861626c655f2053746f726167652050726f76696465722e00b501412053746f726167652050726f7669646572206973205f736c61736861626c655f2069666620697420686173206661696c656420746f20726573706f6e6420746f206368616c6c656e67657320666f722070726f766964696e672070726f6f6673206f662073746f726167652e4d02496e2074686520636f6e74657874206f66207468652053746f726167654875622070726f746f636f6c2c207468652070726f6f66732d6465616c65722070616c6c6574206d61726b7320612053746f726167652050726f7669646572206173205f736c61736861626c655f207768656e206974206661696c7320746f20726573706f6e6420746f206368616c6c656e6765732e04c4446973706174636861626c6573202865787472696e7369637329206578706f73656420627920746869732070616c6c657465050c4870616c6c65745f66696c655f73797374656d1870616c6c65741043616c6c040454000148346372656174655f6275636b65741001186d73705f696434014050726f76696465724964466f723c543e0001106e616d65f90101404275636b65744e616d65466f723c543e00011c70726976617465200110626f6f6c00013476616c75655f70726f705f696434013856616c756550726f7049643c543e0000004c726571756573745f6d6f76655f6275636b65740801246275636b65745f69643401384275636b65744964466f723c543e0001286e65775f6d73705f696434014050726f76696465724964466f723c543e0001007c6d73705f726573706f6e645f6d6f76655f6275636b65745f726571756573740801246275636b65745f69643401384275636b65744964466f723c543e000120726573706f6e7365690501644275636b65744d6f766552657175657374526573706f6e7365000200547570646174655f6275636b65745f707269766163790801246275636b65745f69643401384275636b65744964466f723c543e00011c70726976617465200110626f6f6c000300ac6372656174655f616e645f6173736f63696174655f636f6c6c656374696f6e5f776974685f6275636b65740401246275636b65745f69643401384275636b65744964466f723c543e000404c043726561746520616e64206173736f6369617465206120636f6c6c656374696f6e20776974682061206275636b65742e3464656c6574655f6275636b65740401246275636b65745f69643401384275636b65744964466f723c543e00051c8901446973706174636861626c652065787472696e736963207468617420616c6c6f77732061205573657220746f2064656c65746520616e79206f66207468656972206275636b6574732069662069742069732063757272656e746c7920656d7074792e750154686973207761792c20746865205573657220697320616c6c6f77656420746f2072656d6f7665206e6f7720756e75736564206275636b65747320746f207265636f766572207468656972206465706f73697420666f72207468656d2e0089015468652055736572206d7573742070726f7669646520746865204275636b65744964206f6620746865206275636b657420746865792077616e7420746f2064656c6574652c2077686963682073686f756c6420636f72726573706f6e6420746f2061bc6275636b6574207468617420697320626f74682074686569727320616e642063757272656e746c7920656d7074792e006501546f20636865636b2069662061206275636b657420697320656d7074792c20776520636f6d70617265206974732063757272656e7420726f6f74207769746820746865206f6e65206f6620616e20656d70747920747269652e5469737375655f73746f726167655f726571756573741801246275636b65745f69643401384275636b65744964466f723c543e0001206c6f636174696f6e1902013c46696c654c6f636174696f6e3c543e00012c66696e6765727072696e7434013846696e6765727072696e743c543e00011073697a6530013853746f72616765446174613c543e0001186d73705f696434014050726f76696465724964466f723c543e000120706565725f696473f5010128506565724964733c543e0006049849737375652061206e65772073746f72616765207265717565737420666f7220612066696c65587265766f6b655f73746f726167655f7265717565737404012066696c655f6b65793401344d65726b6c65486173683c543e000704585265766f6b652073746f726167652072657175657374b46d73705f726573706f6e645f73746f726167655f72657175657374735f6d756c7469706c655f6275636b65747304016066696c655f6b65795f726573706f6e7365735f696e7075746d05016046696c654b6579526573706f6e736573496e7075743c543e0008244901557365642062792061204d535020746f20616363657074206f72206465636c696e652073746f7261676520726571756573747320696e20626174636865732c2067726f75706564206279206275636b65742e00d9015468697320666f6c6c6f7773206120626573742d6566666f72742073747261746567792c206d65616e696e67207468617420616c6c2066696c65206b6579732077696c6c2062652070726f63657373656420616e64206465636c6172656420746f2068617665207375636365737366756c6c79206265590161636365707465642c2072656a6563746564206f722068617665206661696c656420746f2062652070726f63657373656420696e2074686520726573756c7473206f6620746865206576656e7420656d69747465642e00f501546865204d53502068617320746f2070726f7669646520612066696c652070726f6f6620666f7220616c6c207468652066696c65206b657973207468617420617265206265696e6720616363657074656420616e642061206e6f6e2d696e636c7573696f6e2070726f6f6620666f72207468652066696c65206b6579739501696e20746865206275636b65742773204d65726b6c6520506174726963696120466f726573742e205468652066696c652070726f6f667320666f72207468652066696c65206b657973206973206e656365737361727920746f2076657269667920746861748501746865204d53502061637475616c6c7920686173207468652066696c65732c207768696c6520746865206e6f6e2d696e636c7573696f6e2070726f6f66206973206e656365737361727920746f20766572696679207468617420746865204d5350647761736e27742073746f72696e67206974206265666f72652e5c6d73705f73746f705f73746f72696e675f6275636b65740401246275636b65745f69643401384275636b65744964466f723c543e000900346273705f766f6c756e7465657204012066696c655f6b65793401344d65726b6c65486173683c543e000a18b85573656420627920612042535020746f20766f6c756e7465657220666f722073746f72696e6720612066696c652e008d01546865207472616e73616374696f6e2077696c6c206661696c2069662074686520584f52206265747765656e207468652066696c6520494420616e642074686520425350204944206973206e6f742062656c6f7720746865207468726573686f6c642c3d01736f206120425350206973207374726f6e676c79206164766973656420746f20636865636b206265666f726568616e642e20416e6f7468657220726561736f6e20666f72206661696c7572652069735101696620746865206d6178696d756d206e756d626572206f66204253507320686173206265656e20726561636865642e2041207375636365737366756c2061737369676e6d656e7420617320425350206d65616e73e87468617420736f6d65206f662074686520636f6c6c61746572616c20746f6b656e73206f662074686174204d5350206172652066726f7a656e2e4c6273705f636f6e6669726d5f73746f72696e670801686e6f6e5f696e636c7573696f6e5f666f726573745f70726f6f6669020138466f7265737450726f6f663c543e00015066696c655f6b6579735f616e645f70726f6f66738105013501426f756e6465645665633c284d65726b6c65486173683c543e2c204b657950726f6f663c543e292c20543a3a0a4d61784261746368436f6e6669726d53746f7261676552657175657374732c3e000b0411015573656420627920612042535020746f20636f6e6669726d2074686579206172652073746f72696e672064617461206f6620612073746f7261676520726571756573742e606273705f726571756573745f73746f705f73746f72696e6720012066696c655f6b65793401344d65726b6c65486173683c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001206c6f636174696f6e1902013c46696c654c6f636174696f6e3c543e0001146f776e6572000130543a3a4163636f756e74496400012c66696e6765727072696e7434013846696e6765727072696e743c543e00011073697a6530013853746f72616765446174613c543e00012463616e5f7365727665200110626f6f6c000158696e636c7573696f6e5f666f726573745f70726f6f6669020138466f7265737450726f6f663c543e000c20d0457865637574656420627920612042535020746f207265717565737420746f2073746f702073746f72696e6720612066696c652e006d01496e20746865206576656e74207768656e20612073746f726167652072657175657374206e6f206c6f6e6765722065786973747320666f722074686520646174612074686520425350206e6f206c6f6e6765722073746f7265732c7101697420697320726571756972656420746861742074686520425350207374696c6c206861732061636365737320746f20746865206d65746164617461206f662074686520696e697469616c2073746f7261676520726571756573742e89014966207468657920646f206e6f742c20746865792077696c6c206174206c65617374206e6565642074686174206d6574616461746120746f207265636f6e737472756374207468652046696c6520494420616e642066726f6d2077686572657665723d017468652042535020676574732074686174206461746120697320757020746f2069742e204f6e65206578616d706c6520636f756c642062652066726f6d207468652061737369676e6564204d53502e750154686973206d65746164617461206973206e65636573736172792073696e6365206974206973206e656564656420746f207265636f6e73747275637420746865206c656166206e6f6465206b657920696e207468652073746f726167656470726f76696465722773204d65726b6c6520466f726573742e606273705f636f6e6669726d5f73746f705f73746f72696e6708012066696c655f6b65793401344d65726b6c65486173683c543e000158696e636c7573696f6e5f666f726573745f70726f6f6669020138466f7265737450726f6f663c543e000d14d0457865637574656420627920612042535020746f20636f6e6669726d20746f2073746f702073746f72696e6720612066696c652e00bd0149742068617320746f20686176652070726576696f75736c79206f70656e656420612070656e64696e672073746f702073746f72696e672072657175657374207573696e672074686520606273705f726571756573745f73746f705f73746f72696e67602065787472696e7369632eb901546865206d696e696d756d20616d6f756e74206f6620626c6f636b73206265747765656e20746865207265717565737420616e642074686520636f6e6669726d6174696f6e20697320646566696e6564206279207468652072756e74696d652c20737563682074686174207468658d014253502063616e277420696d6d6564696174656c792073746f702073746f72696e6720612066696c65206974206861732070726576696f75736c79206c6f7374207768656e20726563656976696e672061206368616c6c656e676520666f722069742e7c73746f705f73746f72696e675f666f725f696e736f6c76656e745f757365721c012066696c655f6b65793401344d65726b6c65486173683c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001206c6f636174696f6e1902013c46696c654c6f636174696f6e3c543e0001146f776e6572000130543a3a4163636f756e74496400012c66696e6765727072696e7434013846696e6765727072696e743c543e00011073697a6530013853746f72616765446174613c543e000158696e636c7573696f6e5f666f726573745f70726f6f6669020138466f7265737450726f6f663c543e000e18fc4578656375746564206279206120535020746f2073746f702073746f72696e6720612066696c652066726f6d20616e20696e736f6c76656e7420757365722e00b101546869732069732075736564207768656e2061207573657220686173206265636f6d6520696e736f6c76656e7420616e6420746865205350206e6565647320746f2073746f702073746f72696e67207468652066696c6573206f66207468617420757365722c2073696e6365a0697420776f6e27742062652067657474696e67207061696420666f7220697420616e796d6f72652e3d025468652076616c69646174696f6e73206172652073696d696c617220746f20746865206f6e657320696e2074686520606273705f726571756573745f73746f705f73746f72696e676020616e6420606273705f636f6e6669726d5f73746f705f73746f72696e67602065787472696e736963732c206275742074686520535020646f65736e2774206e65656420746f7d017761697420666f722061206d696e696d756d20616d6f756e74206f6620626c6f636b7320746f20636f6e6669726d20746f2073746f702073746f72696e67207468652066696c65206e6f722069742068617320746f2062652061204253502e2c64656c6574655f66696c651801246275636b65745f69643401384275636b65744964466f723c543e00012066696c655f6b65793401344d65726b6c65486173683c543e0001206c6f636174696f6e1902013c46696c654c6f636174696f6e3c543e00011073697a6530013853746f72616765446174613c543e00012c66696e6765727072696e7434013846696e6765727072696e743c543e0001706d617962655f696e636c7573696f6e5f666f726573745f70726f6f66950501584f7074696f6e3c466f7265737450726f6f663c543e3e000f00a870656e64696e675f66696c655f64656c6574696f6e5f726571756573745f7375626d69745f70726f6f6610011075736572000130543a3a4163636f756e74496400012066696c655f6b65793401344d65726b6c65486173683c543e0001246275636b65745f69643401384275636b65744964466f723c543e000130666f726573745f70726f6f6669020138466f7265737450726f6f663c543e001000547365745f676c6f62616c5f706172616d65746572730801487265706c69636174696f6e5f746172676574150201804f7074696f6e3c543a3a5265706c69636174696f6e546172676574547970653e00017c7469636b5f72616e67655f746f5f6d6178696d756d5f7468726573686f6c64150201544f7074696f6e3c5469636b4e756d6265723c543e3e001100040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e69050c4870616c6c65745f66696c655f73797374656d147479706573644275636b65744d6f766552657175657374526573706f6e73650001082041636365707465640000002052656a6563746564000100006d050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454017105045300000400910501185665633c543e00007105000004083475050075050c4870616c6c65745f66696c655f73797374656d147479706573644d737053746f7261676552657175657374526573706f6e73650404540000080118616363657074790501ac4f7074696f6e3c416363657074656453746f7261676552657175657374506172616d65746572733c543e3e00011872656a6563748d0501a5014f7074696f6e3c426f756e6465645665633c284d65726b6c65486173683c543e2c2052656a656374656453746f7261676552657175657374526561736f6e292c0a4d617842617463684d7370526573706f6e6453746f7261676552657175657374733c543e2c3e2c3e0000790504184f7074696f6e040454017d050108104e6f6e6500000010536f6d6504007d0500000100007d050c4870616c6c65745f66696c655f73797374656d14747970657380416363657074656453746f7261676552657175657374506172616d6574657273040454000008015066696c655f6b6579735f616e645f70726f6f66738105013901426f756e6465645665633c284d65726b6c65486173683c543e2c204b657950726f6f663c543e292c0a4d617842617463684d7370526573706f6e6453746f7261676552657175657374733c543e3e0001686e6f6e5f696e636c7573696f6e5f666f726573745f70726f6f6669020138466f7265737450726f6f663c543e000081050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454018505045300000400890501185665633c543e00008505000004083479020089050000028505008d0504184f7074696f6e0404540139020108104e6f6e6500000010536f6d650400390200000100009105000002710500950504184f7074696f6e0404540169020108104e6f6e6500000010536f6d6504006902000001000099050c5070616c6c65745f70726f6f66735f6465616c65721870616c6c65741043616c6c040454000110246368616c6c656e676504010c6b65793401244b6579466f723c543e00001868496e74726f647563652061206e6577206368616c6c656e67652e003101546869732066756e6374696f6e20616c6c6f777320616e796f6e6520746f206164642061206e6577206368616c6c656e676520746f2074686520604368616c6c656e6765735175657565602ed8546865206368616c6c656e67652077696c6c206265206469737061746368656420696e2074686520636f6d696e6720626c6f636b732efc5573657273206172652063686172676564206120736d616c6c2066656520666f72207375626d697474696e672061206368616c6c656e67652c20776869636854676f657320746f207468652054726561737572792e307375626d69745f70726f6f6608011470726f6f666502012050726f6f663c543e00012070726f7669646572b10301604f7074696f6e3c50726f76696465724964466f723c543e3e00015484466f7220612050726f766964657220746f207375626d697420612070726f6f662e00e0436865636b732074686174206070726f766964657260206973206120726567697374657265642050726f76696465722e204966206e6f6e65090169732070726f76696465642c207468652070726f6f66207375626d697474657220697320636f6e7369646572656420746f206265207468652050726f76696465722ef852656c696573206f6e20612050726f7669646572732070616c6c657420746f206765742074686520726f6f7420666f72207468652050726f76696465722e390156616c6964617465732074686174207468652070726f6f6620636f72726573706f6e647320746f2061206368616c6c656e6765207468617420776173206d61646520696e2074686520706173742c3901627920636865636b696e672074686520605469636b546f4368616c6c656e67657353656564602053746f726167654d61702e20546865206368616c6c656e6765207469636b207468617420746865410150726f76696465722073686f756c642068617665207375626d697474656420612070726f6f662069732063616c63756c61746564206261736564206f6e20746865206c617374207469636b207468657969017375626d697474656420612070726f6f6620666f7220285b604c6173745469636b50726f76696465725375626d69747465644150726f6f66466f72605d292c20616e64207468652070726f76696e6720706572696f6420666f72c8746861742050726f76696465722c20776869636820697320612066756e6374696f6e206f66207468656972207374616b652e3901546869732065787472696e73696320616c736f20636865636b732074686174207468657265206861736e2774206265656e206120636865636b706f696e74206368616c6c656e676520726f756e642101696e206265747765656e20746865206c6173742074696d65207468652050726f7669646572207375626d697474656420612070726f6f6620666f7220616e6420746865207469636b2901666f72207768696368207468652070726f6f66206973206265696e67207375626d69747465642e20496620746865726520686173206265656e2c207468652050726f7669646572206973507375626a65637420746f20736c617368696e672e002449662076616c69643a55012d2050757368657320666f7277617264207468652050726f766964657220696e20746865205b605469636b546f50726f766964657273446561646c696e6573605d2053746f726167654d61702061206e756d626572d06f66207469636b7320636f72726573706f6e64696e6720746f20746865207374616b65206f66207468652050726f76696465722e3d012d205265676973746572732074686973207469636b20617320746865206c617374207469636b20696e207768696368207468652050726f7669646572207375626d697474656420612070726f6f662e001501457865637574696f6e206f6620746869732065787472696e7369632073686f756c6420626520726566756e646564206966207468652070726f6f662069732076616c69642e80666f7263655f696e697469616c6973655f6368616c6c656e67655f6379636c6504012070726f766964657234014050726f76696465724964466f723c543e000218a0496e697469616c69736520612050726f76696465722773206368616c6c656e6765206379636c652e00584f6e6c792063616c6c61626c65206279207375646f2e005d015365747320746865206c617374207469636b207468652050726f7669646572207375626d697474656420612070726f6f6620666f7220746f207468652063757272656e74207469636b2c20616e642073657473207468657101646561646c696e6520666f72207375626d697474696e6720612070726f6f6620746f207468652063757272656e74207469636b202b207468652050726f7669646572277320706572696f64202b2074686520746f6c6572616e63652e287365745f706175736564040118706175736564200110626f6f6c00030ce053657420746865205b604368616c6c656e6765735469636b6572506175736564605d20746f20607472756560206f72206066616c7365602e00584f6e6c792063616c6c61626c65206279207375646f2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e9d050c4470616c6c65745f72616e646f6d6e6573731870616c6c65741043616c6c0404540001044c7365745f626162655f72616e646f6d6e65737300000ced015468697320696e686572656e742074686174206d75737420626520696e636c7564656420284469737061746368436c6173733a3a4d616e6461746f727929206174206561636820626c6f636b20736176657320746865206c61746573742072616e646f6d6e65737320617661696c61626c652066726f6d20746865810172656c617920636861696e20696e746f2061207661726961626c6520746861742063616e207468656e20626520757365642061732061207365656420666f7220636f6d6d69746d656e747320746861742068617070656e656420647572696e67787468652070726576696f75732072656c617920636861696e2065706f6368040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ea1050c5870616c6c65745f7061796d656e745f73747265616d731870616c6c65741043616c6c040454000128806372656174655f66697865645f726174655f7061796d656e745f73747265616d0c012c70726f76696465725f696434014050726f76696465724964466f723c543e000130757365725f6163636f756e74000130543a3a4163636f756e7449640001107261746518013042616c616e63654f663c543e0000489501446973706174636861626c652065787472696e736963207468617420616c6c6f777320726f6f7420746f2061646420612066697865642d72617465207061796d656e742073747265616d2066726f6d2061205573657220746f20612050726f76696465722e00c101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f7420285061796d656e742073747265616d732073686f756c64206f6e6c792062652061646465642062792074726169747320696e206f746865722070616c6c6574732c98746869732065787472696e73696320697320666f72206d616e75616c2074657374696e67292e002c506172616d65746572733a01012d206070726f76696465725f6964603a205468652050726f7669646572204944207468617420746865207061796d656e742073747265616d20697320666f722e15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722ec42d206072617465603a2054686520696e697469616c2072617465206f6620746865207061796d656e742073747265616d2e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633aec312e20436865636b2074686174207468652065787472696e736963207761732065786563757465642062792074686520726f6f74206f726967696edc322e20436865636b207468617420746865207061796d656e742073747265616d20646f6573206e6f7420616c7265616479206578697374e8332e20436865636b20746861742074686520557365722068617320656e6f7567682066756e647320746f2070617920746865206465706f73697484342e20486f6c6420746865206465706f7369742066726f6d2074686520557365720d01352e2055706461746520746865205061796d656e742053747265616d732073746f7261676520746f2061646420746865206e6577207061796d656e742073747265616d00f0456d69747320604669786564526174655061796d656e7453747265616d4372656174656460206576656e74207768656e207375636365737366756c2e807570646174655f66697865645f726174655f7061796d656e745f73747265616d0c012c70726f76696465725f696434014050726f76696465724964466f723c543e000130757365725f6163636f756e74000130543a3a4163636f756e7449640001206e65775f7261746518013042616c616e63654f663c543e000140d901446973706174636861626c652065787472696e736963207468617420616c6c6f777320726f6f7420746f2075706461746520616e206578697374696e672066697865642d72617465207061796d656e742073747265616d206265747765656e2061205573657220616e6420612050726f76696465722e00c101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f7420285061796d656e742073747265616d732073686f756c64206f6e6c792062652061646465642062792074726169747320696e206f746865722070616c6c6574732c98746869732065787472696e73696320697320666f72206d616e75616c2074657374696e67292e002c506172616d65746572733a01012d206070726f76696465725f6964603a205468652050726f7669646572204944207468617420746865207061796d656e742073747265616d20697320666f722e15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722ec42d20606e65775f72617465603a20546865206e65772072617465206f6620746865207061796d656e742073747265616d2e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633aec312e20436865636b2074686174207468652065787472696e736963207761732065786563757465642062792074686520726f6f74206f726967696e9c322e20436865636b207468617420746865207061796d656e742073747265616d206578697374730901332e2055706461746520746865205061796d656e742053747265616d732073746f7261676520746f2075706461746520746865207061796d656e742073747265616d00f0456d69747320604669786564526174655061796d656e7453747265616d5570646174656460206576656e74207768656e207375636365737366756c2e8064656c6574655f66697865645f726174655f7061796d656e745f73747265616d08012c70726f76696465725f696434014050726f76696465724964466f723c543e000130757365725f6163636f756e74000130543a3a4163636f756e74496400023cd901446973706174636861626c652065787472696e736963207468617420616c6c6f777320726f6f7420746f2064656c65746520616e206578697374696e672066697865642d72617465207061796d656e742073747265616d206265747765656e2061205573657220616e6420612050726f76696465722e00c101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f7420285061796d656e742073747265616d732073686f756c64206f6e6c792062652061646465642062792074726169747320696e206f746865722070616c6c6574732c98746869732065787472696e73696320697320666f72206d616e75616c2074657374696e67292e002c506172616d65746572733a01012d206070726f76696465725f6964603a205468652050726f7669646572204944207468617420746865207061796d656e742073747265616d20697320666f722e15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633aec312e20436865636b2074686174207468652065787472696e736963207761732065786563757465642062792074686520726f6f74206f726967696e9c322e20436865636b207468617420746865207061796d656e742073747265616d206578697374730901332e2055706461746520746865205061796d656e742053747265616d732073746f7261676520746f2072656d6f766520746865207061796d656e742073747265616d00f0456d69747320604669786564526174655061796d656e7453747265616d44656c6574656460206576656e74207768656e207375636365737366756c2e886372656174655f64796e616d69635f726174655f7061796d656e745f73747265616d0c012c70726f76696465725f696434014050726f76696465724964466f723c543e000130757365725f6163636f756e74000130543a3a4163636f756e74496400013c616d6f756e745f70726f766964656430014c556e69747350726f7669646564466f723c543e0003489d01446973706174636861626c652065787472696e736963207468617420616c6c6f777320726f6f7420746f2061646420612064796e616d69632d72617465207061796d656e742073747265616d2066726f6d2061205573657220746f20612050726f76696465722e00c101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f7420285061796d656e742073747265616d732073686f756c64206f6e6c792062652061646465642062792074726169747320696e206f746865722070616c6c6574732c98746869732065787472696e73696320697320666f72206d616e75616c2074657374696e67292e002c506172616d65746572733a01012d206070726f76696465725f6964603a205468652050726f7669646572204944207468617420746865207061796d656e742073747265616d20697320666f722e15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722e05012d2060616d6f756e745f70726f7669646564603a2054686520696e697469616c20616d6f756e742070726f7669646564206279207468652050726f76696465722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633aec312e20436865636b2074686174207468652065787472696e736963207761732065786563757465642062792074686520726f6f74206f726967696edc322e20436865636b207468617420746865207061796d656e742073747265616d20646f6573206e6f7420616c7265616479206578697374e8332e20436865636b20746861742074686520557365722068617320656e6f7567682066756e647320746f2070617920746865206465706f73697484342e20486f6c6420746865206465706f7369742066726f6d2074686520557365720d01352e2055706461746520746865205061796d656e742053747265616d732073746f7261676520746f2061646420746865206e6577207061796d656e742073747265616d00f8456d697473206044796e616d6963526174655061796d656e7453747265616d4372656174656460206576656e74207768656e207375636365737366756c2e887570646174655f64796e616d69635f726174655f7061796d656e745f73747265616d0c012c70726f76696465725f696434014050726f76696465724964466f723c543e000130757365725f6163636f756e74000130543a3a4163636f756e74496400014c6e65775f616d6f756e745f70726f766964656430014c556e69747350726f7669646564466f723c543e000440e101446973706174636861626c652065787472696e736963207468617420616c6c6f777320726f6f7420746f2075706461746520616e206578697374696e672064796e616d69632d72617465207061796d656e742073747265616d206265747765656e2061205573657220616e6420612050726f76696465722e00c101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f7420285061796d656e742073747265616d732073686f756c64206f6e6c792062652061646465642062792074726169747320696e206f746865722070616c6c6574732c98746869732065787472696e73696320697320666f72206d616e75616c2074657374696e67292e002c506172616d65746572733a01012d206070726f76696465725f6964603a205468652050726f7669646572204944207468617420746865207061796d656e742073747265616d20697320666f722e15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722e05012d20606e65775f616d6f756e745f70726f7669646564603a20546865206e657720616d6f756e742070726f7669646564206279207468652050726f76696465722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633aec312e20436865636b2074686174207468652065787472696e736963207761732065786563757465642062792074686520726f6f74206f726967696e9c322e20436865636b207468617420746865207061796d656e742073747265616d206578697374730901332e2055706461746520746865205061796d656e742053747265616d732073746f7261676520746f2075706461746520746865207061796d656e742073747265616d00f8456d697473206044796e616d6963526174655061796d656e7453747265616d5570646174656460206576656e74207768656e207375636365737366756c2e8864656c6574655f64796e616d69635f726174655f7061796d656e745f73747265616d08012c70726f76696465725f696434014050726f76696465724964466f723c543e000130757365725f6163636f756e74000130543a3a4163636f756e74496400053ce101446973706174636861626c652065787472696e736963207468617420616c6c6f777320726f6f7420746f2064656c65746520616e206578697374696e672064796e616d69632d72617465207061796d656e742073747265616d206265747765656e2061205573657220616e6420612050726f76696465722e00c101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f7420285061796d656e742073747265616d732073686f756c64206f6e6c792062652061646465642062792074726169747320696e206f746865722070616c6c6574732c98746869732065787472696e73696320697320666f72206d616e75616c2074657374696e67292e002c506172616d65746572733a01012d206070726f76696465725f6964603a205468652050726f7669646572204944207468617420746865207061796d656e742073747265616d20697320666f722e15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633aec312e20436865636b2074686174207468652065787472696e736963207761732065786563757465642062792074686520726f6f74206f726967696e9c322e20436865636b207468617420746865207061796d656e742073747265616d206578697374730901332e2055706461746520746865205061796d656e742053747265616d732073746f7261676520746f2072656d6f766520746865207061796d656e742073747265616d00f8456d697473206044796e616d6963526174655061796d656e7453747265616d44656c6574656460206576656e74207768656e207375636365737366756c2e586368617267655f7061796d656e745f73747265616d73040130757365725f6163636f756e74000130543a3a4163636f756e7449640006705101446973706174636861626c652065787472696e736963207468617420616c6c6f77732050726f76696465727320746f206368617267652061207061796d656e742073747265616d2066726f6d206120557365722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e6d01546865206f726967696e206d757374206265207468652050726f7669646572207468617420686173206174206c65617374206f6e652074797065206f66207061796d656e742073747265616d20776974682074686520557365722e002c506172616d65746572733a15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722e4101322e20436865636b20746861742061207061796d656e742073747265616d206265747765656e20746865207369676e6572202850726f76696465722920616e6420746865205573657220657869737473ac332e20496620746865726520697320612066697865642d72617465207061796d656e742073747265616d3aa0202020312e20476574207468652072617465206f6620746865207061796d656e742073747265616dbd01202020322e204765742074686520646966666572656e6365206265747765656e20746865206c6173742063686172676564207469636b206e756d62657220616e6420746865206c6173742063686172676561626c65207469636b206e756d626572206f66207468652073747265616df8202020332e2043616c63756c6174652074686520616d6f756e7420746f2063686172676520646f696e67206072617465202a20646966666572656e636560e501202020342e204368617267652074686520757365722028696620746865207573657220646f6573206e6f74206861766520656e6f7567682066756e64732c206974206765747320666c616767656420616e642061206055736572576974686f757446756e647360206576656e7420697320656d697474656429fc202020352e2055706461746520746865206c6173742063686172676564207469636b206e756d626572206f6620746865207061796d656e742073747265616db4342e20496620746865726520697320612064796e616d69632d72617465207061796d656e742073747265616d3ac0202020312e204765742074686520616d6f756e742070726f7669646564206279207468652050726f7669646572202020f501202020322e204765742074686520646966666572656e6365206265747765656e20707269636520696e646578207768656e207468652073747265616d20776173206c617374206368617267656420616e642074686520707269636520696e64657820617420746865206c6173742063686172676561626c65207469636b2501202020332e2043616c63756c6174652074686520616d6f756e7420746f2063686172676520646f696e672060616d6f756e745f70726f7669646564202a20646966666572656e636560e501202020342e204368617267652074686520757365722028696620746865207573657220646f6573206e6f74206861766520656e6f7567682066756e64732c206974206765747320666c616767656420616e642061206055736572576974686f757446756e647360206576656e7420697320656d6974746564294d01202020352e205570646174652074686520707269636520696e646578207768656e207468652073747265616d20776173206c6173742063686172676564206f6620746865207061796d656e742073747265616d00d4456d697473206120605061796d656e7453747265616d4368617267656460206576656e74207768656e207375636365737366756c2e0001024e6f7465733a20612050726f766964657220636f756c64206861766520626f746820612066697865642d7261746520616e6420612064796e616d69632d72617465207061796d656e742073747265616d2077697468206120557365722e204966207468617427732074686520636173652c20746869732065787472696e736963b90177696c6c2074727920746f2063686172676520626f746820616e642074686520616d6f756e7420636861726765642077696c6c206265207468652073756d206f662074686520616d6f756e7473206368617267656420666f722065616368207061796d656e742073747265616d2e946368617267655f6d756c7469706c655f75736572735f7061796d656e745f73747265616d73040134757365725f6163636f756e7473b10201b4426f756e6465645665633c543a3a4163636f756e7449642c20543a3a4d61785573657273546f4368617267653e0007785d01446973706174636861626c652065787472696e736963207468617420616c6c6f77732050726f76696465727320746f20636861726765206d756c7469706c6520557365722773207061796d656e742073747265616d732e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e9101546865206f726967696e206d757374206265207468652050726f7669646572207468617420686173206174206c65617374206f6e652074797065206f66207061796d656e742073747265616d20776974682065616368206f66207468652055736572732e002c506172616d65746572733a75012d2060757365725f6163636f756e7473603a20546865206172726179206f662055736572204163636f756e742049447320746861742068617665207061796d656e742073747265616d732077697468207468652050726f76696465722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722e2101322e20436865636b207468617420746865206172726179206f66205573657273206973206e6f7420626967676572207468616e20746865206d6178696d756d20616c6c6f7765642e4901332e2045786563757465206120666f72206c6f6f7020666f722065616368205573657220696e20746865206172726179206f662055736572204163636f756e74204944732c20696e2077686963682069743a490109612e20436865636b7320746861742061207061796d656e742073747265616d206265747765656e20746865207369676e6572202850726f76696465722920616e6420746865205573657220657869737473b009622e20496620746865726520697320612066697865642d72617465207061796d656e742073747265616d3aa82020200909312e20476574207468652072617465206f6620746865207061796d656e742073747265616dc5012020200909322e204765742074686520646966666572656e6365206265747765656e20746865206c6173742063686172676564207469636b206e756d62657220616e6420746865206c6173742063686172676561626c65207469636b206e756d626572206f66207468652073747265616d01012020200909332e2043616c63756c6174652074686520616d6f756e7420746f2063686172676520646f696e67206072617465202a20646966666572656e636560ed012020200909342e204368617267652074686520757365722028696620746865207573657220646f6573206e6f74206861766520656e6f7567682066756e64732c206974206765747320666c616767656420616e642061206055736572576974686f757446756e647360206576656e7420697320656d69747465642905012020200909352e2055706461746520746865206c6173742063686172676564207469636b206e756d626572206f6620746865207061796d656e742073747265616db809632e20496620746865726520697320612064796e616d69632d72617465207061796d656e742073747265616d3ac82020200909312e204765742074686520616d6f756e742070726f7669646564206279207468652050726f7669646572202020fd012020200909322e204765742074686520646966666572656e6365206265747765656e20707269636520696e646578207768656e207468652073747265616d20776173206c617374206368617267656420616e642074686520707269636520696e64657820617420746865206c6173742063686172676561626c65207469636b2d012020200909332e2043616c63756c6174652074686520616d6f756e7420746f2063686172676520646f696e672060616d6f756e745f70726f7669646564202a20646966666572656e636560ed012020200909342e204368617267652074686520757365722028696620746865207573657220646f6573206e6f74206861766520656e6f7567682066756e64732c206974206765747320666c616767656420616e642061206055736572576974686f757446756e647360206576656e7420697320656d69747465642955012020200909352e205570646174652074686520707269636520696e646578207768656e207468652073747265616d20776173206c6173742063686172676564206f6620746865207061796d656e742073747265616d008d01456d697473206120605061796d656e7453747265616d436861726765646020706572205573657220746861742068616420746f2070617920616e642061206055736572734368617267656460206576656e74207768656e207375636365737366756c2e0001024e6f7465733a20612050726f766964657220636f756c64206861766520626f746820612066697865642d7261746520616e6420612064796e616d69632d72617465207061796d656e742073747265616d2077697468206120557365722e204966207468617427732074686520636173652c20746869732065787472696e736963b90177696c6c2074727920746f2063686172676520626f746820616e642074686520616d6f756e7420636861726765642077696c6c206265207468652073756d206f662074686520616d6f756e7473206368617267656420666f722065616368207061796d656e742073747265616d2e507061795f6f75747374616e64696e675f64656274000848f501446973706174636861626c652065787472696e736963207468617420616c6c6f77732061207573657220666c616767656420617320776974686f75742066756e647320746f2070617920616c6c2072656d61696e696e67207061796d656e742073747265616d7320746f2062652061626c6520746f207265636f76657234697473206465706f736974732e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e0d01546865206f726967696e206d757374206265207468652055736572207468617420686173206265656e20666c616767656420617320776974686f75742066756e64732e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722ee4322e20436865636b207468617420746865207573657220686173206265656e20666c616767656420617320776974686f75742066756e64732e4101332e2052656c6561736520746865207573657227732066756e6473207468617420776572652068656c642061732061206465706f73697420666f722065616368207061796d656e742073747265616d2e7901342e2047657420616c6c207061796d656e742073747265616d73206f6620746865207573657220616e6420636861726765207468656d2c20706179696e67207468652050726f76696465727320666f72207468652073657276696365732ea8352e2044656c65746520616c6c207061796d656e742073747265616d73206f662074686520757365722e00b8456d697473206120275573657250616964446562747327206576656e74207768656e207375636365737366756c2e0001024e6f7465733a20746869732065787472696e736963206974657261746573206f76657220616c6c207061796d656e742073747265616d73206f6620746865207573657220616e642063686172676573207468656d2c20736f2069742063616e20626520657870656e7369766520696e207465726d73206f66207765696768742efd015468652066656520746f20657865637574652069742073686f756c64206265206869676820656e6f75676820746f20636f6d70656e7361746520666f722074686520776569676874206f66207468652065787472696e7369632c20776974686f7574206265696e6720746f6f206869676820746861742074686520757365724d0166696e6473206d6f726520636f6e76656e69656e7420746f207761697420666f722050726f76696465727320746f2067657420697473206465706f73697473206f6e65206279206f6e6520696e73746561642e50636c6561725f696e736f6c76656e745f666c6167000958dd01446973706174636861626c652065787472696e736963207468617420616c6c6f77732061207573657220666c616767656420617320776974686f75742066756e6473206c6f6e672061676f20656e6f75676820746f20636c656172207468697320666c61672066726f6d20697473206163636f756e742c0102616c6c6f77696e6720697420746f20626567696e20636f6e7472616374696e6720616e6420706179696e6720666f7220736572766963657320616761696e2e204966207468657265277320616e79206f75747374616e64696e6720646562742c2069742077696c6c206265206368617267656420616e6420636c65617265642e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e0d01546865206f726967696e206d757374206265207468652055736572207468617420686173206265656e20666c616767656420617320776974686f75742066756e64732e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722ee4322e20436865636b207468617420746865207573657220686173206265656e20666c616767656420617320776974686f75742066756e64732e6501332e20436865636b20746861742074686520636f6f6c646f776e20706572696f6420686173207061737365642073696e63652074686520757365722077617320666c616767656420617320776974686f75742066756e64732e2101342e20436865636b206966207468657265277320616e79206f75747374616e64696e67206465627420616e64206368617267652069742e205468697320697320646f6e652062793a35012020612e2052656c656173696e6720616e792072656d61696e696e672066756e64732068656c642061732061206465706f73697420666f722065616368207061796d656e742073747265616d2e99012020622e2047657474696e6720616c6c207061796d656e742073747265616d73206f6620746865207573657220616e64206368617267696e67207468656d2c20706179696e67207468652050726f76696465727320666f72207468652073657276696365732eb02020632e2052657475726e696e6720746865205573657220616e792072656d61696e696e672066756e64732eb82020642e2044656c6574696e6720616c6c207061796d656e742073747265616d73206f662074686520757365722e90352e20556e666c616720746865207573657220617320776974686f75742066756e64732e00b0456d6974732061202755736572536f6c76656e7427206576656e74207768656e207375636365737366756c2e0029024e6f7465733a20746869732065787472696e736963206974657261746573206f76657220616c6c2072656d61696e696e67207061796d656e742073747265616d73206f6620746865207573657220616e642063686172676573207468656d2c20736f2069742063616e20626520657870656e7369766520696e207465726d73206f66207765696768742efd015468652066656520746f20657865637574652069742073686f756c64206265206869676820656e6f75676820746f20636f6d70656e7361746520666f722074686520776569676874206f66207468652065787472696e7369632c20776974686f7574206265696e6720746f6f206869676820746861742074686520757365724d0166696e6473206d6f726520636f6e76656e69656e7420746f207761697420666f722050726f76696465727320746f2067657420697473206465706f73697473206f6e65206279206f6e6520696e73746561642e04c4446973706174636861626c6573202865787472696e7369637329206578706f73656420627920746869732070616c6c6574a5050c4870616c6c65745f6275636b65745f6e6674731870616c6c65741043616c6c0404540001083073686172655f616363657373100124726563697069656e74890401684163636f756e7449644c6f6f6b7570536f757263654f663c543e0001186275636b65743401384275636b65744964466f723c543e00011c6974656d5f6964100124543a3a4974656d4964000144726561645f6163636573735f7265676578a90501684f7074696f6e3c5265616441636365737352656765783c543e3e00000cec53686172652061636365737320746f2066696c65732077697468696e2061206275636b6574207769746820616e6f74686572206163636f756e742e0079025468652060726561645f6163636573735f72656765786020706172616d65746572206973206f7074696f6e616c20616e64207768656e2073657420746f20604e6f6e6560206974206d65616e7320746861742074686520726563697069656e742077696c6c2062652064656e6965642061636365737320666f7220616e79207265616420726571756573742077697468696e20746865206275636b65742e487570646174655f726561645f6163636573730c01186275636b65743401384275636b65744964466f723c543e00011c6974656d5f6964100124543a3a4974656d4964000144726561645f6163636573735f7265676578a90501684f7074696f6e3c5265616441636365737352656765783c543e3e0001047c55706461746520726561642061636365737320666f7220616e206974656d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ea90504184f7074696f6e04045401bd020108104e6f6e6500000010536f6d650400bd020000010000ad050c2c70616c6c65745f6e6674731870616c6c65741043616c6c08045400044900019c1863726561746508011461646d696e890401504163636f756e7449644c6f6f6b75704f663c543e000118636f6e666967b1050164436f6c6c656374696f6e436f6e666967466f723c542c20493e00003c090149737375652061206e657720636f6c6c656374696f6e206f66206e6f6e2d66756e6769626c65206974656d732066726f6d2061207075626c6963206f726967696e2e001d0154686973206e657720636f6c6c656374696f6e20686173206e6f206974656d7320696e697469616c6c7920616e6420697473206f776e657220697320746865206f726967696e2e002501546865206f726967696e206d757374206265205369676e656420616e64207468652073656e646572206d75737420686176652073756666696369656e742066756e647320667265652e00c460436f6c6c656374696f6e4465706f736974602066756e6473206f662073656e646572206172652072657365727665642e002c506172616d65746572733a45012d206061646d696e603a205468652061646d696e206f66207468697320636f6c6c656374696f6e2e205468652061646d696e2069732074686520696e697469616c2061646472657373206f662065616368986d656d626572206f662074686520636f6c6c656374696f6e27732061646d696e207465616d2e0098456d69747320604372656174656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f2831296030666f7263655f6372656174650801146f776e6572890401504163636f756e7449644c6f6f6b75704f663c543e000118636f6e666967b1050164436f6c6c656374696f6e436f6e666967466f723c542c20493e00013c190149737375652061206e657720636f6c6c656374696f6e206f66206e6f6e2d66756e6769626c65206974656d732066726f6d20612070726976696c65676564206f726967696e2e00ac54686973206e657720636f6c6c656374696f6e20686173206e6f206974656d7320696e697469616c6c792e00a4546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e602e009c556e6c696b652060637265617465602c206e6f2066756e6473206172652072657365727665642e0039012d20606f776e6572603a20546865206f776e6572206f66207468697320636f6c6c656374696f6e206f66206974656d732e20546865206f776e6572206861732066756c6c20737570657275736572590120207065726d697373696f6e73206f7665722074686973206974656d2c20627574206d6179206c61746572206368616e676520616e6420636f6e66696775726520746865207065726d697373696f6e73207573696e67982020607472616e736665725f6f776e6572736869706020616e6420607365745f7465616d602e00ac456d6974732060466f7263654372656174656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f283129601c64657374726f79080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400011c7769746e657373d105013844657374726f795769746e6573730002449c44657374726f79206120636f6c6c656374696f6e206f662066756e6769626c65206974656d732e005d01546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e60206f72206d75737420626520605369676e65646020616e64207468652073656e646572206d75737420626520746865686f776e6572206f66207468652060636f6c6c656374696f6e602e00dc4e4f54453a2054686520636f6c6c656374696f6e206d75737420686176652030206974656d7320746f2062652064657374726f7965642e0005012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e20746f2062652064657374726f7965642e31012d20607769746e657373603a20496e666f726d6174696f6e206f6e20746865206974656d73206d696e74656420696e2074686520636f6c6c656374696f6e2e2054686973206d75737420626520636f72726563742e00a0456d697473206044657374726f79656460206576656e74207768656e207375636365737366756c2e00745765696768743a20604f286d202b2063202b206129602077686572653a782d20606d203d207769746e6573732e6974656d5f6d657461646174617360702d206063203d207769746e6573732e6974656d5f636f6e6669677360682d206061203d207769746e6573732e6174747269627574657360106d696e74100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011c6d696e745f746f890401504163636f756e7449644c6f6f6b75704f663c543e0001307769746e6573735f64617461d50501d84f7074696f6e3c4d696e745769746e6573733c543a3a4974656d49642c204465706f73697442616c616e63654f663c542c20493e3e3e000340a04d696e7420616e206974656d206f66206120706172746963756c617220636f6c6c656374696f6e2e005101546865206f726967696e206d757374206265205369676e656420616e64207468652073656e646572206d75737420636f6d706c7920776974682074686520606d696e745f73657474696e6773602072756c65732e00e02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206d696e7465642ea02d20606974656d603a20416e206964656e746966696572206f6620746865206e6577206974656d2ee02d20606d696e745f746f603a204163636f756e7420696e746f20776869636820746865206974656d2077696c6c206265206d696e7465642e45012d20607769746e6573735f64617461603a205768656e20746865206d696e7420747970652069732060486f6c6465724f6628636f6c6c656374696f6e5f696429602c207468656e20746865206f776e6564590120206974656d5f69642066726f6d207468617420636f6c6c656374696f6e206e6565647320746f2062652070726f76696465642077697468696e20746865207769746e6573732064617461206f626a6563742e20496661012020746865206d696e74207072696365206973207365742c207468656e2069742073686f756c64206265206164646974696f6e616c6c7920636f6e6669726d656420696e2074686520607769746e6573735f64617461602e0051014e6f74653a20746865206465706f7369742077696c6c2062652074616b656e2066726f6d2074686520606f726967696e6020616e64206e6f742074686520606f776e657260206f662074686520606974656d602e0094456d697473206049737375656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f2831296028666f7263655f6d696e74100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011c6d696e745f746f890401504163636f756e7449644c6f6f6b75704f663c543e00012c6974656d5f636f6e666967dd0501284974656d436f6e66696700043405014d696e7420616e206974656d206f66206120706172746963756c617220636f6c6c656374696f6e2066726f6d20612070726976696c65676564206f726967696e2e005d01546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e60206f72206d75737420626520605369676e65646020616e64207468652073656e646572206d757374206265207468656c497373756572206f66207468652060636f6c6c656374696f6e602e00e02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206d696e7465642ea02d20606974656d603a20416e206964656e746966696572206f6620746865206e6577206974656d2ee02d20606d696e745f746f603a204163636f756e7420696e746f20776869636820746865206974656d2077696c6c206265206d696e7465642ea82d20606974656d5f636f6e666967603a204120636f6e666967206f6620746865206e6577206974656d2e0094456d697473206049737375656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f28312960106275726e080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400052c5844657374726f7920612073696e676c65206974656d2e005d01546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e60206f72206d757374206265205369676e656420616e6420746865207369676e696e67206163636f756e74206d7573746c626520746865206f776e6572206f662074686520606974656d602e00e02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206275726e65642e802d20606974656d603a20546865206974656d20746f206265206275726e65642e003c456d69747320604275726e6564602e00385765696768743a20604f28312960207472616e736665720c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011064657374890401504163636f756e7449644c6f6f6b75704f663c543e000638c04d6f766520616e206974656d2066726f6d207468652073656e646572206163636f756e7420746f20616e6f746865722e00f44f726967696e206d757374206265205369676e656420616e6420746865207369676e696e67206163636f756e74206d757374206265206569746865723a682d20746865204f776e6572206f662074686520606974656d603b35012d2074686520617070726f7665642064656c656761746520666f722074686520606974656d602028696e207468697320636173652c2074686520617070726f76616c206973207265736574292e0028417267756d656e74733af42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265207472616e736665727265642e942d20606974656d603a20546865206974656d20746f206265207472616e736665727265642edc2d206064657374603a20546865206163636f756e7420746f2072656365697665206f776e657273686970206f6620746865206974656d2e0050456d69747320605472616e73666572726564602e00385765696768743a20604f283129602472656465706f736974080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001146974656d73c10201385665633c543a3a4974656d49643e0007449c52652d6576616c7561746520746865206465706f73697473206f6e20736f6d65206974656d732e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468652060636f6c6c656374696f6e602e00f82d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d7320746f2062652072656576616c75617465642e29012d20606974656d73603a20546865206974656d73206f662074686520636f6c6c656374696f6e2077686f7365206465706f736974732077696c6c2062652072656576616c75617465642e002d014e4f54453a205468697320657869737473206173206120626573742d6566666f72742066756e6374696f6e2e20416e79206974656d732077686963682061726520756e6b6e6f776e206f723901696e207468652063617365207468617420746865206f776e6572206163636f756e7420646f6573206e6f7420686176652072657365727661626c652066756e647320746f2070617920666f7220614d016465706f73697420696e637265617365206172652069676e6f7265642e2047656e6572616c6c7920746865206f776e65722069736e277420676f696e6720746f2063616c6c2074686973206f6e206974656d73550177686f7365206578697374696e67206465706f736974206973206c657373207468616e2074686520726566726573686564206465706f73697420617320697420776f756c64206f6e6c7920636f7374207468656d2c78736f2069742773206f66206c6974746c6520636f6e73657175656e63652e00590149742077696c6c207374696c6c2072657475726e20616e206572726f7220696e20746865206361736520746861742074686520636f6c6c656374696f6e20697320756e6b6e6f776e206f7220746865207369676e6572706973206e6f74207065726d697474656420746f2063616c6c2069742e00605765696768743a20604f286974656d732e6c656e28292960486c6f636b5f6974656d5f7472616e73666572080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964000828c8446973616c6c6f77206675727468657220756e70726976696c65676564207472616e73666572206f6620616e206974656d2e003d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f66207468652060636f6c6c656374696f6e602e00e42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206368616e6765642eb82d20606974656d603a20546865206974656d20746f206265636f6d65206e6f6e2d7472616e7366657261626c652e006c456d69747320604974656d5472616e736665724c6f636b6564602e00385765696768743a20604f2831296050756e6c6f636b5f6974656d5f7472616e73666572080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964000928a852652d616c6c6f7720756e70726976696c65676564207472616e73666572206f6620616e206974656d2e003d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f66207468652060636f6c6c656374696f6e602e00e42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206368616e6765642ea82d20606974656d603a20546865206974656d20746f206265636f6d65207472616e7366657261626c652e0074456d69747320604974656d5472616e73666572556e6c6f636b6564602e00385765696768743a20604f283129603c6c6f636b5f636f6c6c656374696f6e080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001346c6f636b5f73657474696e6773b5050148436f6c6c656374696f6e53657474696e6773000a30d8446973616c6c6f7773207370656369666965642073657474696e677320666f72207468652077686f6c6520636f6c6c656374696f6e2e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468652060636f6c6c656374696f6e602e00b02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e20746f206265206c6f636b65642eb42d20606c6f636b5f73657474696e6773603a205468652073657474696e677320746f206265206c6f636b65642e001d014e6f74653a206974277320706f737369626c6520746f206f6e6c79206c6f636b2873657429207468652073657474696e672c20627574206e6f7420746f20756e7365742069742e0064456d6974732060436f6c6c656374696f6e4c6f636b6564602e00385765696768743a20604f28312960487472616e736665725f6f776e657273686970080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001246e65775f6f776e6572890401504163636f756e7449644c6f6f6b75704f663c543e000b2c844368616e676520746865204f776e6572206f66206120636f6c6c656374696f6e2e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468652060636f6c6c656374696f6e602e00f42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e2077686f7365206f776e65722073686f756c64206265206368616e6765642e09012d20606f776e6572603a20546865206e6577204f776e6572206f66207468697320636f6c6c656374696f6e2e2054686579206d75737420686176652063616c6c656449012020607365745f6163636570745f6f776e6572736869706020776974682060636f6c6c656374696f6e6020696e206f7264657220666f722074686973206f7065726174696f6e20746f20737563636565642e0054456d69747320604f776e65724368616e676564602e00385765696768743a20604f28312960207365745f7465616d100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000118697373756572e10501704f7074696f6e3c4163636f756e7449644c6f6f6b75704f663c543e3e00011461646d696ee10501704f7074696f6e3c4163636f756e7449644c6f6f6b75704f663c543e3e00011c667265657a6572e10501704f7074696f6e3c4163636f756e7449644c6f6f6b75704f663c543e3e000c40d44368616e676520746865204973737565722c2041646d696e20616e6420467265657a6572206f66206120636f6c6c656374696f6e2e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468653460636f6c6c656374696f6e602e0051014e6f74653a2062792073657474696e672074686520726f6c6520746f20604e6f6e6560206f6e6c79207468652060466f7263654f726967696e602077696c6c2062652061626c6520746f206368616e676520697464616674657220746f2060536f6d65286163636f756e7429602e00f02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e2077686f7365207465616d2073686f756c64206265206368616e6765642eb82d2060697373756572603a20546865206e657720497373756572206f66207468697320636f6c6c656374696f6e2eb02d206061646d696e603a20546865206e65772041646d696e206f66207468697320636f6c6c656374696f6e2ec02d2060667265657a6572603a20546865206e657720467265657a6572206f66207468697320636f6c6c656374696f6e2e0050456d69747320605465616d4368616e676564602e00385765696768743a20604f2831296058666f7263655f636f6c6c656374696f6e5f6f776e6572080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001146f776e6572890401504163636f756e7449644c6f6f6b75704f663c543e000d28844368616e676520746865204f776e6572206f66206120636f6c6c656374696f6e2e00744f726967696e206d7573742062652060466f7263654f726967696e602e00c42d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2eb02d20606f776e6572603a20546865206e6577204f776e6572206f66207468697320636f6c6c656374696f6e2e0054456d69747320604f776e65724368616e676564602e00385765696768743a20604f283129605c666f7263655f636f6c6c656374696f6e5f636f6e666967080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000118636f6e666967b1050164436f6c6c656374696f6e436f6e666967466f723c542c20493e000e28884368616e67652074686520636f6e666967206f66206120636f6c6c656374696f6e2e00744f726967696e206d7573742062652060466f7263654f726967696e602e00c42d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2eb82d2060636f6e666967603a20546865206e657720636f6e666967206f66207468697320636f6c6c656374696f6e2e0080456d6974732060436f6c6c656374696f6e436f6e6669674368616e676564602e00385765696768743a20604f2831296040617070726f76655f7472616e73666572100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465890401504163636f756e7449644c6f6f6b75704f663c543e0001386d617962655f646561646c696e65150201644f7074696f6e3c426c6f636b4e756d626572466f723c543e3e000f381501417070726f766520616e206974656d20746f206265207472616e7366657272656420627920612064656c6567617465642074686972642d7061727479206163636f756e742e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468651c606974656d602e0045012d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f20626520617070726f76656420666f722064656c656761746564207472616e736665722ee42d20606974656d603a20546865206974656d20746f20626520617070726f76656420666f722064656c656761746564207472616e736665722e19012d206064656c6567617465603a20546865206163636f756e7420746f2064656c6567617465207065726d697373696f6e20746f207472616e7366657220746865206974656d2e49012d20606d617962655f646561646c696e65603a204f7074696f6e616c20646561646c696e6520666f722074686520617070726f76616c2e205370656369666965642062792070726f766964696e6720746865d8096e756d626572206f6620626c6f636b732061667465722077686963682074686520617070726f76616c2077696c6c206578706972650090456d69747320605472616e73666572417070726f76656460206f6e20737563636573732e00385765696768743a20604f283129603c63616e63656c5f617070726f76616c0c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465890401504163636f756e7449644c6f6f6b75704f663c543e001038e443616e63656c206f6e65206f6620746865207472616e7366657220617070726f76616c7320666f722061207370656369666963206974656d2e00584f726967696e206d757374206265206569746865723a542d207468652060466f72636560206f726967696e3be42d20605369676e656460207769746820746865207369676e6572206265696e6720746865204f776e6572206f662074686520606974656d603b0028417267756d656e74733a3d012d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d206f662077686f736520617070726f76616c2077696c6c2062652063616e63656c6c65642e25012d20606974656d603a20546865206974656d206f662074686520636f6c6c656374696f6e206f662077686f736520617070726f76616c2077696c6c2062652063616e63656c6c65642e01012d206064656c6567617465603a20546865206163636f756e74207468617420697320676f696e6720746f206c6f6f736520746865697220617070726f76616c2e0094456d6974732060417070726f76616c43616e63656c6c656460206f6e20737563636573732e00385765696768743a20604f2831296070636c6561725f616c6c5f7472616e736665725f617070726f76616c73080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964001134b043616e63656c20616c6c2074686520617070726f76616c73206f662061207370656369666963206974656d2e00584f726967696e206d757374206265206569746865723a542d207468652060466f72636560206f726967696e3be42d20605369676e656460207769746820746865207369676e6572206265696e6720746865204f776e6572206f662074686520606974656d603b0028417267756d656e74733a39012d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d206f662077686f736520617070726f76616c732077696c6c20626520636c65617265642e21012d20606974656d603a20546865206974656d206f662074686520636f6c6c656374696f6e206f662077686f736520617070726f76616c732077696c6c20626520636c65617265642e00a4456d6974732060416c6c417070726f76616c7343616e63656c6c656460206f6e20737563636573732e00385765696768743a20604f28312960506c6f636b5f6974656d5f70726f70657274696573100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001346c6f636b5f6d65746164617461200110626f6f6c00013c6c6f636b5f61747472696275746573200110626f6f6c001244e8446973616c6c6f7773206368616e67696e6720746865206d65746164617461206f722061747472696275746573206f6620746865206974656d2e0041014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e506f66207468652060636f6c6c656374696f6e602e00b42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e2069662074686520606974656d602e7c2d20606974656d603a20416e206974656d20746f206265206c6f636b65642e0d012d20606c6f636b5f6d65746164617461603a20537065636966696573207768657468657220746865206d657461646174612073686f756c64206265206c6f636b65642e61012d20606c6f636b5f61747472696275746573603a20537065636966696573207768657468657220746865206174747269627574657320696e207468652060436f6c6c656374696f6e4f776e657260206e616d6573706163654c202073686f756c64206265206c6f636b65642e005d014e6f74653a20606c6f636b5f6174747269627574657360206166666563747320746865206174747269627574657320696e207468652060436f6c6c656374696f6e4f776e657260206e616d657370616365206f6e6c792e45015768656e20746865206d65746164617461206f72206174747269627574657320617265206c6f636b65642c20697420776f6e277420626520706f737369626c652074686520756e6c6f636b207468656d2e0074456d69747320604974656d50726f706572746965734c6f636b6564602e00385765696768743a20604f28312960347365745f617474726962757465140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656d150201444f7074696f6e3c543a3a4974656d49643e0001246e616d657370616365c90201804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e00010c6b6579c502016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e00011476616c7565bd020174426f756e6465645665633c75382c20543a3a56616c75654c696d69743e001358a853657420616e2061747472696275746520666f72206120636f6c6c656374696f6e206f72206974656d2e0001014f726967696e206d757374206265205369676e656420616e64206d75737420636f6e666f726d20746f20746865206e616d6573706163652072756c657365743a3d012d2060436f6c6c656374696f6e4f776e657260206e616d65737061636520636f756c64206265206d6f646966696564206279207468652060636f6c6c656374696f6e602041646d696e206f6e6c793b59012d20604974656d4f776e657260206e616d65737061636520636f756c64206265206d6f6469666965642062792074686520606d617962655f6974656d60206f776e6572206f6e6c792e20606d617962655f6974656d6074202073686f756c642062652073657420696e207468617420636173653b55012d20604163636f756e74284163636f756e7449642960206e616d65737061636520636f756c64206265206d6f646966696564206f6e6c79207768656e2074686520606f726967696e602077617320676976656e20615820207065726d697373696f6e20746f20646f20736f3b00f05468652066756e6473206f6620606f726967696e6020617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613a2d01604174747269627574654465706f73697442617365202b204465706f73697450657242797465202a20286b65792e6c656e202b2076616c75652e6c656e29602074616b696e6720696e746f8c6163636f756e7420616e7920616c72656164792072657365727665642066756e64732e0039012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f207365742e05012d20606d617962655f6974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f207365742e942d20606e616d657370616365603a204174747269627574652773206e616d6573706163652e882d20606b6579603a20546865206b6579206f6620746865206174747269627574652ecc2d206076616c7565603a205468652076616c756520746f20776869636820746f2073657420746865206174747269627574652e0054456d6974732060417474726962757465536574602e00385765696768743a20604f283129604c666f7263655f7365745f6174747269627574651801187365745f61739c01504f7074696f6e3c543a3a4163636f756e7449643e000128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656d150201444f7074696f6e3c543a3a4974656d49643e0001246e616d657370616365c90201804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e00010c6b6579c502016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e00011476616c7565bd020174426f756e6465645665633c75382c20543a3a56616c75654c696d69743e001444c0466f7263652d73657420616e2061747472696275746520666f72206120636f6c6c656374696f6e206f72206974656d2e00744f726967696e206d7573742062652060466f7263654f726967696e602e0039014966207468652061747472696275746520616c72656164792065786973747320616e64206974207761732073657420627920616e6f74686572206163636f756e742c20746865206465706f7369749c77696c6c2062652072657475726e656420746f207468652070726576696f7573206f776e65722e00bc2d20607365745f6173603a20416e206f7074696f6e616c206f776e6572206f6620746865206174747269627574652e39012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f207365742e05012d20606d617962655f6974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f207365742e942d20606e616d657370616365603a204174747269627574652773206e616d6573706163652e882d20606b6579603a20546865206b6579206f6620746865206174747269627574652ecc2d206076616c7565603a205468652076616c756520746f20776869636820746f2073657420746865206174747269627574652e0054456d6974732060417474726962757465536574602e00385765696768743a20604f283129603c636c6561725f617474726962757465100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656d150201444f7074696f6e3c543a3a4974656d49643e0001246e616d657370616365c90201804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e00010c6b6579c502016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e00153cb0436c65617220616e2061747472696275746520666f72206120636f6c6c656374696f6e206f72206974656d2e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f6620746865286174747269627574652e00c0416e79206465706f73697420697320667265656420666f722074686520636f6c6c656374696f6e2773206f776e65722e0041012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f20636c6561722e0d012d20606d617962655f6974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f20636c6561722e942d20606e616d657370616365603a204174747269627574652773206e616d6573706163652e882d20606b6579603a20546865206b6579206f6620746865206174747269627574652e0064456d6974732060417474726962757465436c6561726564602e00385765696768743a20604f283129605c617070726f76655f6974656d5f617474726962757465730c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465890401504163636f756e7449644c6f6f6b75704f663c543e0016242d01417070726f7665206974656d2773206174747269627574657320746f206265206368616e67656420627920612064656c6567617465642074686972642d7061727479206163636f756e742e00e44f726967696e206d757374206265205369676e656420616e64206d75737420626520616e206f776e6572206f662074686520606974656d602e00a42d2060636f6c6c656374696f6e603a204120636f6c6c656374696f6e206f6620746865206974656d2ea42d20606974656d603a20546865206974656d207468617420686f6c647320617474726962757465732e49012d206064656c6567617465603a20546865206163636f756e7420746f2064656c6567617465207065726d697373696f6e20746f206368616e67652061747472696275746573206f6620746865206974656d2e00bc456d69747320604974656d41747472696275746573417070726f76616c416464656460206f6e20737563636573732e7c63616e63656c5f6974656d5f617474726962757465735f617070726f76616c100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465890401504163636f756e7449644c6f6f6b75704f663c543e00011c7769746e657373e505017c43616e63656c41747472696275746573417070726f76616c5769746e657373001728110143616e63656c207468652070726576696f75736c792070726f766964656420617070726f76616c20746f206368616e6765206974656d277320617474726962757465732e1101416c6c207468652070726576696f75736c7920736574206174747269627574657320627920746865206064656c6567617465602077696c6c2062652072656d6f7665642e00e44f726967696e206d757374206265205369676e656420616e64206d75737420626520616e206f776e6572206f662074686520606974656d602e00f42d2060636f6c6c656374696f6e603a20436f6c6c656374696f6e207468617420746865206974656d20697320636f6e7461696e65642077697468696e2ea42d20606974656d603a20546865206974656d207468617420686f6c647320617474726962757465732ee02d206064656c6567617465603a205468652070726576696f75736c7920617070726f766564206163636f756e7420746f2072656d6f76652e00c4456d69747320604974656d41747472696275746573417070726f76616c52656d6f76656460206f6e20737563636573732e307365745f6d657461646174610c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011064617461bd020178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e0018407453657420746865206d6574616461746120666f7220616e206974656d2e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f66207468653460636f6c6c656374696f6e602e005101496620746865206f726967696e206973205369676e65642c207468656e2066756e6473206f66207369676e657220617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613af4604d657461646174614465706f73697442617365202b204465706f73697450657242797465202a20646174612e6c656e602074616b696e6720696e746f8c6163636f756e7420616e7920616c72656164792072657365727665642066756e64732e0039012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f207365742eec2d20606974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f207365742e4d012d206064617461603a205468652067656e6572616c20696e666f726d6174696f6e206f662074686973206974656d2e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e0060456d69747320604974656d4d65746164617461536574602e00385765696768743a20604f2831296038636c6561725f6d65746164617461080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640019347c436c65617220746865206d6574616461746120666f7220616e206974656d2e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f66207468653460636f6c6c656374696f6e602e00c0416e79206465706f73697420697320667265656420666f722074686520636f6c6c656374696f6e2773206f776e65722e0041012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f20636c6561722ef42d20606974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f20636c6561722e0070456d69747320604974656d4d65746164617461436c6561726564602e00385765696768743a20604f283129605c7365745f636f6c6c656374696f6e5f6d65746164617461080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400011064617461bd020178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e001a3c8853657420746865206d6574616461746120666f72206120636f6c6c656374696f6e2e0055014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f7220605369676e65646020616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f66447468652060636f6c6c656374696f6e602e005901496620746865206f726967696e20697320605369676e6564602c207468656e2066756e6473206f66207369676e657220617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613af4604d657461646174614465706f73697442617365202b204465706f73697450657242797465202a20646174612e6c656e602074616b696e6720696e746f8c6163636f756e7420616e7920616c72656164792072657365727665642066756e64732e0011012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f207570646174652e4d012d206064617461603a205468652067656e6572616c20696e666f726d6174696f6e206f662074686973206974656d2e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e0078456d6974732060436f6c6c656374696f6e4d65746164617461536574602e00385765696768743a20604f2831296064636c6561725f636f6c6c656374696f6e5f6d65746164617461040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964001b3090436c65617220746865206d6574616461746120666f72206120636f6c6c656374696f6e2e0055014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f7220605369676e65646020616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f66447468652060636f6c6c656374696f6e602e00c0416e79206465706f73697420697320667265656420666f722074686520636f6c6c656374696f6e2773206f776e65722e0025012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206d6574616461746120746f20636c6561722e0088456d6974732060436f6c6c656374696f6e4d65746164617461436c6561726564602e00385765696768743a20604f28312960507365745f6163636570745f6f776e6572736869700401406d617962655f636f6c6c656374696f6e1502015c4f7074696f6e3c543a3a436f6c6c656374696f6e49643e001c28110153657420286f72207265736574292074686520616363657074616e6365206f66206f776e65727368697020666f72206120706172746963756c6172206163636f756e742e0061014f726967696e206d75737420626520605369676e65646020616e6420696620606d617962655f636f6c6c656374696f6e602069732060536f6d65602c207468656e20746865207369676e6572206d757374206861766520614c70726f7669646572207265666572656e63652e0051012d20606d617962655f636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206f776e65727368697020746865207369676e65722069736101202077696c6c696e6720746f206163636570742c206f7220696620604e6f6e65602c20616e20696e6469636174696f6e207468617420746865207369676e65722069732077696c6c696e6720746f20616363657074206e6f5c20206f776e657273686970207472616e73666572616c2e008c456d69747320604f776e657273686970416363657074616e63654368616e676564602e647365745f636f6c6c656374696f6e5f6d61785f737570706c79080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d61785f737570706c7910010c753332001d24e053657420746865206d6178696d756d206e756d626572206f66206974656d73206120636f6c6c656374696f6e20636f756c6420686176652e0055014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f7220605369676e65646020616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66447468652060636f6c6c656374696f6e602e00ec2d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e20746f206368616e67652e11012d20606d61785f737570706c79603a20546865206d6178696d756d206e756d626572206f66206974656d73206120636f6c6c656374696f6e20636f756c6420686176652e00d4456d6974732060436f6c6c656374696f6e4d6178537570706c7953657460206576656e74207768656e207375636365737366756c2e507570646174655f6d696e745f73657474696e6773080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001346d696e745f73657474696e6773bd050105014d696e7453657474696e67733c42616c616e63654f663c542c20493e2c20426c6f636b4e756d626572466f723c543e2c20543a3a436f6c6c656374696f6e49643e001e2454557064617465206d696e742073657474696e67732e004d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f7220605369676e65646020616e64207468652073656e6465722073686f756c642062652074686520497373756572506f66207468652060636f6c6c656374696f6e602e00ec2d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e20746f206368616e67652ea42d20606d696e745f73657474696e6773603a20546865206e6577206d696e742073657474696e67732e00f0456d6974732060436f6c6c656374696f6e4d696e7453657474696e67735570646174656460206576656e74207768656e207375636365737366756c2e247365745f7072696365100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001147072696365c505015c4f7074696f6e3c4974656d50726963653c542c20493e3e00014477686974656c69737465645f6275796572e10501704f7074696f6e3c4163636f756e7449644c6f6f6b75704f663c543e3e001f2c9453657420286f72207265736574292074686520707269636520666f7220616e206974656d2e00e84f726967696e206d757374206265205369676e656420616e64206d75737420626520746865206f776e6572206f662074686520606974656d602e00ac2d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d2ea02d20606974656d603a20546865206974656d20746f207365742074686520707269636520666f722e0d012d20607072696365603a2054686520707269636520666f7220746865206974656d2e205061737320604e6f6e65602c20746f207265736574207468652070726963652ef42d20606275796572603a205265737472696374732074686520627579206f7065726174696f6e20746f2061207370656369666963206163636f756e742e00ec456d69747320604974656d507269636553657460206f6e207375636365737320696620746865207072696365206973206e6f7420604e6f6e65602eec456d69747320604974656d507269636552656d6f76656460206f6e20737563636573732069662074686520707269636520697320604e6f6e65602e206275795f6974656d0c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001246269645f707269636518013c4974656d50726963653c542c20493e002024a8416c6c6f777320746f2062757920616e206974656d206966206974277320757020666f722073616c652e00f84f726967696e206d757374206265205369676e656420616e64206d757374206e6f7420626520746865206f776e6572206f662074686520606974656d602e00ac2d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d2eac2d20606974656d603a20546865206974656d207468652073656e6465722077616e747320746f206275792ed82d20606269645f7072696365603a20546865207072696365207468652073656e6465722069732077696c6c696e6720746f207061792e0078456d69747320604974656d426f7567687460206f6e20737563636573732e207061795f7469707304011074697073e905019c426f756e6465645665633c4974656d5469704f663c542c20493e2c20543a3a4d6178546970733e00211c5c416c6c6f777320746f207061792074686520746970732e00584f726967696e206d757374206265205369676e65642e00542d206074697073603a20546970732061727261792e0098456d697473206054697053656e7460206f6e20657665727920746970207472616e736665722e2c6372656174655f737761701801486f6666657265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001306f6666657265645f6974656d100124543a3a4974656d4964000148646573697265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001486d617962655f646573697265645f6974656d150201444f7074696f6e3c543a3a4974656d49643e00012c6d617962655f7072696365cd0201ac4f7074696f6e3c507269636557697468446972656374696f6e3c4974656d50726963653c542c20493e3e3e0001206475726174696f6e100144426c6f636b4e756d626572466f723c543e002240510152656769737465722061206e65772061746f6d696320737761702c206465636c6172696e6720616e20696e74656e74696f6e20746f2073656e6420616e20606974656d6020696e2065786368616e676520666f72fc60646573697265645f6974656d602066726f6d206f726967696e20746f20746172676574206f6e207468652063757272656e7420626c6f636b636861696e2e4d01546865207461726765742063616e206578656375746520746865207377617020647572696e67207468652073706563696669656420606475726174696f6e60206f6620626c6f636b732028696620736574292ef04164646974696f6e616c6c792c2074686520707269636520636f756c642062652073657420666f7220746865206465736972656420606974656d602e00e44f726967696e206d757374206265205369676e656420616e64206d75737420626520616e206f776e6572206f662074686520606974656d602e00ac2d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d2ea82d20606974656d603a20546865206974656d20616e206f776e65722077616e747320746f20676976652eec2d2060646573697265645f636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f66207468652064657369726564206974656d2ef42d2060646573697265645f6974656d603a205468652064657369726564206974656d20616e206f776e65722077616e747320746f20726563656976652e61012d20606d617962655f7072696365603a2054686520707269636520616e206f776e65722069732077696c6c696e6720746f20706179206f72207265636569766520666f7220746865206465736972656420606974656d602e49012d20606475726174696f6e603a204120646561646c696e6520666f722074686520737761702e205370656369666965642062792070726f766964696e6720746865206e756d626572206f6620626c6f636b73880961667465722077686963682074686520737761702077696c6c206578706972652e007c456d6974732060537761704372656174656460206f6e20737563636573732e2c63616e63656c5f737761700801486f6666657265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001306f6666657265645f6974656d100124543a3a4974656d49640023245843616e63656c20616e2061746f6d696320737761702e00584f726967696e206d757374206265205369676e65642e15014f726967696e206d75737420626520616e206f776e6572206f662074686520606974656d602069662074686520646561646c696e65206861736e277420657870697265642e00ac2d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d2ea82d20606974656d603a20546865206974656d20616e206f776e65722077616e747320746f20676976652e0084456d69747320605377617043616e63656c6c656460206f6e20737563636573732e28636c61696d5f7377617014013c73656e645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400012473656e645f6974656d100124543a3a4974656d4964000148726563656976655f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000130726563656976655f6974656d100124543a3a4974656d49640001347769746e6573735f7072696365cd0201ac4f7074696f6e3c507269636557697468446972656374696f6e3c4974656d50726963653c542c20493e3e3e00243054436c61696d20616e2061746f6d696320737761702e390154686973206d6574686f6420657865637574657320612070656e64696e6720737761702c2074686174207761732063726561746564206279206120636f756e74657270617274206265666f72652e00e44f726967696e206d757374206265205369676e656420616e64206d75737420626520616e206f776e6572206f662074686520606974656d602e00ec2d206073656e645f636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f2062652073656e742e8c2d206073656e645f6974656d603a20546865206974656d20746f2062652073656e742e09012d2060726563656976655f636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f2062652072656365697665642ea82d2060726563656976655f6974656d603a20546865206974656d20746f2062652072656365697665642ee42d20607769746e6573735f7072696365603a20412070726963652074686174207761732070726576696f75736c7920616772656564206f6e2e007c456d697473206053776170436c61696d656460206f6e20737563636573732e3c6d696e745f7072655f7369676e65640c01246d696e745f64617461f5050168426f783c5072655369676e65644d696e744f663c542c20493e3e0001247369676e6174757265f9050150543a3a4f6666636861696e5369676e61747572650001187369676e6572000130543a3a4163636f756e744964002534c84d696e7420616e206974656d2062792070726f766964696e6720746865207072652d7369676e656420617070726f76616c2e00584f726967696e206d757374206265205369676e65642e005d012d20606d696e745f64617461603a20546865207072652d7369676e656420617070726f76616c207468617420636f6e7369737473206f662074686520696e666f726d6174696f6e2061626f757420746865206974656d2c51012020697473206d657461646174612c20617474726962757465732c2077686f2063616e206d696e742069742028604e6f6e656020666f7220616e796f6e652920616e6420756e74696c207768617420626c6f636b2420206e756d6265722ec82d20607369676e6174757265603a20546865207369676e6174757265206f662074686520606461746160206f626a6563742e39012d20607369676e6572603a2054686520606461746160206f626a6563742773207369676e65722e2053686f756c6420626520616e20497373756572206f662074686520636f6c6c656374696f6e2e0068456d697473206049737375656460206f6e20737563636573732ed4456d69747320604174747269627574655365746020696620746865206174747269627574657320776572652070726f76696465642ed8456d69747320604974656d4d657461646174615365746020696620746865206d6574616461746120776173206e6f7420656d7074792e647365745f617474726962757465735f7072655f7369676e65640c0110646174610506016c5072655369676e6564417474726962757465734f663c542c20493e0001247369676e6174757265f9050150543a3a4f6666636861696e5369676e61747572650001187369676e6572000130543a3a4163636f756e7449640026340101536574206174747269627574657320666f7220616e206974656d2062792070726f766964696e6720746865207072652d7369676e656420617070726f76616c2e00f84f726967696e206d757374206265205369676e656420616e64206d75737420626520616e206f776e6572206f66207468652060646174612e6974656d602e0049012d206064617461603a20546865207072652d7369676e656420617070726f76616c207468617420636f6e7369737473206f662074686520696e666f726d6174696f6e2061626f757420746865206974656d2ccc20206174747269627574657320746f2075706461746520616e6420756e74696c207768617420626c6f636b206e756d6265722ec82d20607369676e6174757265603a20546865207369676e6174757265206f662074686520606461746160206f626a6563742e51012d20607369676e6572603a2054686520606461746160206f626a6563742773207369676e65722e2053686f756c6420626520616e2041646d696e206f662074686520636f6c6c656374696f6e20666f722074686578202060436f6c6c656374696f6e4f776e657260206e616d6573706163652e00c4456d69747320604174747269627574655365746020666f7220656163682070726f7669646564206174747269627574652e1901456d69747320604974656d41747472696275746573417070726f76616c4164646564602069662074686520617070726f76616c207761736e277420736574206265666f72652ea8456d69747320605072655369676e65644174747269627574657353657460206f6e20737563636573732e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732eb1050c2c70616c6c65745f6e66747314747970657340436f6c6c656374696f6e436f6e6669670c14507269636501182c426c6f636b4e756d626572011030436f6c6c656374696f6e49640110000c012073657474696e6773b5050148436f6c6c656374696f6e53657474696e67730001286d61785f737570706c791502012c4f7074696f6e3c7533323e0001346d696e745f73657474696e6773bd0501b84d696e7453657474696e67733c50726963652c20426c6f636b4e756d6265722c20436f6c6c656374696f6e49643e0000b5050c2c70616c6c65745f6e66747314747970657320426974466c61677304045401b905000400300144436f6c6c656374696f6e53657474696e670000b9050c2c70616c6c65745f6e66747314747970657344436f6c6c656374696f6e53657474696e67000114445472616e7366657261626c654974656d7300010040556e6c6f636b65644d6574616461746100020048556e6c6f636b65644174747269627574657300040044556e6c6f636b65644d6178537570706c790008003c4465706f736974526571756972656400100000bd050c2c70616c6c65745f6e667473147479706573304d696e7453657474696e67730c14507269636501182c426c6f636b4e756d626572011030436f6c6c656374696f6e49640110001401246d696e745f74797065c10501584d696e74547970653c436f6c6c656374696f6e49643e0001147072696365c50501344f7074696f6e3c50726963653e00012c73746172745f626c6f636b1502014c4f7074696f6e3c426c6f636b4e756d6265723e000124656e645f626c6f636b1502014c4f7074696f6e3c426c6f636b4e756d6265723e00015464656661756c745f6974656d5f73657474696e6773c90501304974656d53657474696e67730000c1050c2c70616c6c65745f6e667473147479706573204d696e74547970650430436f6c6c656374696f6e49640110010c18497373756572000000185075626c696300010020486f6c6465724f660400100130436f6c6c656374696f6e496400020000c50504184f7074696f6e04045401180108104e6f6e6500000010536f6d650400180000010000c9050c2c70616c6c65745f6e66747314747970657320426974466c61677304045401cd0500040030012c4974656d53657474696e670000cd050c2c70616c6c65745f6e6674731474797065732c4974656d53657474696e6700010c305472616e7366657261626c6500010040556e6c6f636b65644d6574616461746100020048556e6c6f636b65644174747269627574657300040000d1050c2c70616c6c65745f6e6674731474797065733844657374726f795769746e65737300000c01386974656d5f6d6574616461746173cc010c7533320001306974656d5f636f6e66696773cc010c75333200012861747472696275746573cc010c7533320000d50504184f7074696f6e04045401d9050108104e6f6e6500000010536f6d650400d9050000010000d9050c2c70616c6c65745f6e6674731474797065732c4d696e745769746e65737308184974656d496401101c42616c616e63650118000801286f776e65645f6974656d150201384f7074696f6e3c4974656d49643e0001286d696e745f7072696365c505013c4f7074696f6e3c42616c616e63653e0000dd050c2c70616c6c65745f6e667473147479706573284974656d436f6e666967000004012073657474696e6773c90501304974656d53657474696e67730000e10504184f7074696f6e0404540189040108104e6f6e6500000010536f6d65040089040000010000e5050c2c70616c6c65745f6e6674731474797065737c43616e63656c41747472696275746573417070726f76616c5769746e65737300000401486163636f756e745f6174747269627574657310010c7533320000e9050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401ed05045300000400f10501185665633c543e0000ed050c2c70616c6c65745f6e6674731474797065731c4974656d5469701030436f6c6c656374696f6e49640110184974656d49640110244163636f756e744964010018416d6f756e74011800100128636f6c6c656374696f6e100130436f6c6c656374696f6e49640001106974656d1001184974656d496400012072656365697665720001244163636f756e744964000118616d6f756e74180118416d6f756e740000f105000002ed0500f5050c2c70616c6c65745f6e667473147479706573345072655369676e65644d696e741430436f6c6c656374696f6e49640110184974656d49640110244163636f756e744964010020446561646c696e6501101c42616c616e63650118001c0128636f6c6c656374696f6e100130436f6c6c656374696f6e49640001106974656d1001184974656d4964000128617474726962757465735903015c5665633c285665633c75383e2c205665633c75383e293e0001206d6574616461746138011c5665633c75383e0001306f6e6c795f6163636f756e749c01444f7074696f6e3c4163636f756e7449643e000120646561646c696e65100120446561646c696e650001286d696e745f7072696365c505013c4f7074696f6e3c42616c616e63653e0000f905082873705f72756e74696d65384d756c74695369676e617475726500010c1c456432353531390400fd050148656432353531393a3a5369676e61747572650000001c537232353531390400fd050148737232353531393a3a5369676e617475726500010014456364736104000106014065636473613a3a5369676e617475726500020000fd05000003400000000800010600000341000000080005060c2c70616c6c65745f6e6674731474797065734c5072655369676e6564417474726962757465731030436f6c6c656374696f6e49640110184974656d49640110244163636f756e744964010020446561646c696e65011000140128636f6c6c656374696f6e100130436f6c6c656374696f6e49640001106974656d1001184974656d4964000128617474726962757465735903015c5665633c285665633c75383e2c205665633c75383e293e0001246e616d657370616365c90201744174747269627574654e616d6573706163653c4163636f756e7449643e000120646561646c696e65100120446561646c696e65000009060c4470616c6c65745f706172616d65746572731870616c6c65741043616c6c040454000104347365745f706172616d657465720401246b65795f76616c75650d060150543a3a52756e74696d65506172616d657465727300001074536574207468652076616c7565206f66206120706172616d657465722e005501546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265206041646d696e4f726967696e6020666f722074686520676976656e20606b6579602e2056616c7565732062658864656c657465642062792073657474696e67207468656d20746f20604e6f6e65602e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e0d06104c73746f726167655f6875625f72756e74696d651c636f6e666967733872756e74696d655f706172616d734452756e74696d65506172616d65746572730001043452756e74696d65436f6e6669670400110601a864796e616d69635f706172616d733a3a72756e74696d655f636f6e6669673a3a506172616d6574657273000000001106184c73746f726167655f6875625f72756e74696d651c636f6e666967733872756e74696d655f706172616d733864796e616d69635f706172616d733872756e74696d655f636f6e66696728506172616d657465727300014464536c617368416d6f756e745065724d617846696c6553697a650800e9020164536c617368416d6f756e745065724d617846696c6553697a650000c505013c4f7074696f6e3c42616c616e63653e000000585374616b65546f4368616c6c656e6765506572696f640800ed0201585374616b65546f4368616c6c656e6765506572696f640000c505013c4f7074696f6e3c42616c616e63653e00010064436865636b706f696e744368616c6c656e6765506572696f640800f1020164436865636b706f696e744368616c6c656e6765506572696f6400001502014c4f7074696f6e3c426c6f636b4e756d6265723e000200484d696e4368616c6c656e6765506572696f640800f50201484d696e4368616c6c656e6765506572696f6400001502014c4f7074696f6e3c426c6f636b4e756d6265723e000300a453797374656d5574696c69736174696f6e4c6f7765725468726573686f6c6450657263656e746167650800f90201a453797374656d5574696c69736174696f6e4c6f7765725468726573686f6c6450657263656e7461676500001506013c4f7074696f6e3c50657262696c6c3e000400a453797374656d5574696c69736174696f6e55707065725468726573686f6c6450657263656e746167650800fd0201a453797374656d5574696c69736174696f6e55707065725468726573686f6c6450657263656e7461676500001506013c4f7074696f6e3c50657262696c6c3e000500444d6f73746c79537461626c6550726963650800010301444d6f73746c79537461626c6550726963650000c505013c4f7074696f6e3c42616c616e63653e000600204d617850726963650800050301204d617850726963650000c505013c4f7074696f6e3c42616c616e63653e000700204d696e50726963650800090301204d696e50726963650000c505013c4f7074696f6e3c42616c616e63653e0008004c55707065724578706f6e656e74466163746f7208000d03014c55707065724578706f6e656e74466163746f7200001502012c4f7074696f6e3c7533323e0009004c4c6f7765724578706f6e656e74466163746f7208001103014c4c6f7765724578706f6e656e74466163746f7200001502012c4f7074696f6e3c7533323e000a005c5a65726f53697a654275636b657446697865645261746508001503015c5a65726f53697a654275636b65744669786564526174650000c505013c4f7074696f6e3c42616c616e63653e000b0050496465616c5574696c69736174696f6e52617465080019030150496465616c5574696c69736174696f6e5261746500001506013c4f7074696f6e3c50657262696c6c3e000c002444656361795261746508001d03012444656361795261746500001506013c4f7074696f6e3c50657262696c6c3e000d00484d696e696d756d54726561737572794375740800210301484d696e696d756d547265617375727943757400001506013c4f7074696f6e3c50657262696c6c3e000e00484d6178696d756d54726561737572794375740800250301484d6178696d756d547265617375727943757400001506013c4f7074696f6e3c50657262696c6c3e000f006442737053746f7053746f72696e6746696c6550656e616c747908002903016442737053746f7053746f72696e6746696c6550656e616c74790000c505013c4f7074696f6e3c42616c616e63653e00100000150604184f7074696f6e0404540139030108104e6f6e6500000010536f6d6504003903000001000019060c2c70616c6c65745f7375646f1870616c6c6574144572726f720404540001042c526571756972655375646f0000048053656e646572206d75737420626520746865205375646f206163636f756e742e04684572726f7220666f7220746865205375646f2070616c6c65742e1d060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540100045300000400a401185665633c543e000021060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454012506045300000400290601185665633c543e000025060c6470616c6c65745f636f6c6c61746f725f73656c656374696f6e1870616c6c65743443616e646964617465496e666f08244163636f756e74496401001c42616c616e636501180008010c77686f0001244163636f756e74496400011c6465706f73697418011c42616c616e6365000029060000022506002d060c6470616c6c65745f636f6c6c61746f725f73656c656374696f6e1870616c6c6574144572726f7204045400014444546f6f4d616e7943616e646964617465730000048c5468652070616c6c65742068617320746f6f206d616e792063616e646964617465732e5c546f6f466577456c696769626c65436f6c6c61746f7273000104ac4c656176696e6720776f756c6420726573756c7420696e20746f6f206665772063616e646964617465732e40416c726561647943616e6469646174650002047c4163636f756e7420697320616c726561647920612063616e6469646174652e304e6f7443616e6469646174650003046c4163636f756e74206973206e6f7420612063616e6469646174652e50546f6f4d616e79496e76756c6e657261626c65730004048454686572652061726520746f6f206d616e7920496e76756c6e657261626c65732e4c416c7265616479496e76756c6e657261626c650005048c4163636f756e7420697320616c726561647920616e20496e76756c6e657261626c652e3c4e6f74496e76756c6e657261626c650006047c4163636f756e74206973206e6f7420616e20496e76756c6e657261626c652e5c4e6f4173736f63696174656456616c696461746f7249640007049c4163636f756e7420686173206e6f206173736f6369617465642076616c696461746f722049442e5856616c696461746f724e6f74526567697374657265640008048c56616c696461746f72204944206973206e6f742079657420726567697374657265642e6c496e73657274546f43616e6469646174654c6973744661696c65640009049c436f756c64206e6f7420696e7365727420696e207468652063616e646964617465206c6973742e7452656d6f766546726f6d43616e6469646174654c6973744661696c6564000a04a4436f756c64206e6f742072656d6f76652066726f6d207468652063616e646964617465206c6973742e344465706f736974546f6f4c6f77000b04f44e6577206465706f73697420616d6f756e7420776f756c642062652062656c6f7720746865206d696e696d756d2063616e64696461637920626f6e642e6455706461746543616e6469646174654c6973744661696c6564000c0490436f756c64206e6f7420757064617465207468652063616e646964617465206c6973742e40496e73756666696369656e74426f6e64000d0429014465706f73697420616d6f756e7420697320746f6f206c6f7720746f2074616b652074686520746172676574277320736c6f7420696e207468652063616e646964617465206c6973742e5054617267657449734e6f7443616e646964617465000e042d0154686520746172676574206163636f756e7420746f206265207265706c6163656420696e207468652063616e646964617465206c697374206973206e6f7420612063616e6469646174652e404964656e746963616c4465706f736974000f040d015468652075706461746564206465706f73697420616d6f756e7420697320657175616c20746f2074686520616d6f756e7420616c72656164792072657365727665642e40496e76616c6964556e726573657276650010043d0143616e6e6f74206c6f7765722063616e64696461637920626f6e64207768696c65206f6363757079696e6720612066757475726520636f6c6c61746f7220736c6f7420696e20746865206c6973742e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e310600000235060035060000040800ad04003906000004083d0638003d060c1c73705f636f72651863727970746f244b65795479706549640000040048011c5b75383b20345d000041060c3870616c6c65745f73657373696f6e1870616c6c6574144572726f7204045400011430496e76616c696450726f6f6600000460496e76616c6964206f776e6572736869702070726f6f662e5c4e6f4173736f63696174656456616c696461746f7249640001049c4e6f206173736f6369617465642076616c696461746f7220494420666f72206163636f756e742e344475706c6963617465644b65790002046452656769737465726564206475706c6963617465206b65792e184e6f4b657973000304a44e6f206b65797320617265206173736f63696174656420776974682074686973206163636f756e742e244e6f4163636f756e7400040419014b65792073657474696e67206163636f756e74206973206e6f74206c6976652c20736f206974277320696d706f737369626c6520746f206173736f6369617465206b6579732e04744572726f7220666f72207468652073657373696f6e2070616c6c65742e45060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401b104045300000400490601185665633c543e00004906000002b104004d06084873705f636f6e73656e7375735f736c6f747310536c6f740000040030010c75363400005106000004084d06100055060c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401e9010453000004005906012c42547265655365743c543e000059060420425472656553657404045401e9010004005d060000005d06000002e9010061060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540165060453000004006d0601185665633c543e00006506086463756d756c75735f70616c6c65745f78636d705f7175657565584f7574626f756e644368616e6e656c44657461696c730000140124726563697069656e74e90101185061726149640001147374617465690601344f7574626f756e6453746174650001347369676e616c735f6578697374200110626f6f6c00012c66697273745f696e6465788d03010c7531360001286c6173745f696e6465788d03010c75313600006906086463756d756c75735f70616c6c65745f78636d705f7175657565344f7574626f756e645374617465000108084f6b0000002453757370656e646564000100006d06000002650600710600000408e9018d030075060c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401080453000004003801185665633c543e00007906086463756d756c75735f70616c6c65745f78636d705f71756575653c5175657565436f6e6669674461746100000c014473757370656e645f7468726573686f6c6410010c75333200013864726f705f7468726573686f6c6410010c753332000140726573756d655f7468726573686f6c6410010c75333200007d060c6463756d756c75735f70616c6c65745f78636d705f71756575651870616c6c6574144572726f72040454000114384261645175657565436f6e666967000004110153657474696e672074686520717565756520636f6e666967206661696c65642073696e6365206f6e65206f66206974732076616c7565732077617320696e76616c69642e40416c726561647953757370656e6465640001048c54686520657865637574696f6e20697320616c72656164792073757370656e6465642e38416c7265616479526573756d65640002048454686520657865637574696f6e20697320616c726561647920726573756d65642e74546f6f4d616e794163746976654f7574626f756e644368616e6e656c73000304b054686572652061726520746f6f206d616e7920616374697665206f7574626f756e64206368616e6e656c732e18546f6f4269670004045c546865206d65737361676520697320746f6f206269672e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e81060c2870616c6c65745f78636d1870616c6c65742c5175657279537461747573042c426c6f636b4e756d6265720110010c1c50656e64696e67100124726573706f6e646572d901014456657273696f6e65644c6f636174696f6e00014c6d617962655f6d617463685f71756572696572850601644f7074696f6e3c56657273696f6e65644c6f636174696f6e3e0001306d617962655f6e6f74696679890601404f7074696f6e3c2875382c207538293e00011c74696d656f757410012c426c6f636b4e756d6265720000003c56657273696f6e4e6f7469666965720801186f726967696ed901014456657273696f6e65644c6f636174696f6e00012469735f616374697665200110626f6f6c000100145265616479080120726573706f6e73659106014456657273696f6e6564526573706f6e7365000108617410012c426c6f636b4e756d62657200020000850604184f7074696f6e04045401d9010108104e6f6e6500000010536f6d650400d9010000010000890604184f7074696f6e040454018d060108104e6f6e6500000010536f6d6504008d0600000100008d06000004080808009106080c78636d4456657273696f6e6564526573706f6e736500010c0856320400cd04013076323a3a526573706f6e73650002000856330400fd04013076333a3a526573706f6e736500030008563404003101013076343a3a526573706f6e73650004000095060000040810d9010099060000040c302810009d060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401a106045300000400a50601185665633c543e0000a10600000408d9011000a506000002a10600a9060c2870616c6c65745f78636d1870616c6c65745456657273696f6e4d6967726174696f6e53746167650001105c4d696772617465537570706f7274656456657273696f6e0000005c4d69677261746556657273696f6e4e6f74696669657273000100504e6f7469667943757272656e74546172676574730400ad06013c4f7074696f6e3c5665633c75383e3e000200684d696772617465416e644e6f746966794f6c645461726765747300030000ad0604184f7074696f6e04045401380108104e6f6e6500000010536f6d650400380000010000b1060000040c1000550500b5060c2870616c6c65745f78636d1870616c6c65746852656d6f74654c6f636b656446756e6769626c655265636f72640848436f6e73756d65724964656e7469666965720198304d6178436f6e73756d6572730000100118616d6f756e74180110753132380001146f776e6572d901014456657273696f6e65644c6f636174696f6e0001186c6f636b6572d901014456657273696f6e65644c6f636174696f6e000124636f6e73756d657273b90601d0426f756e6465645665633c28436f6e73756d65724964656e7469666965722c2075313238292c204d6178436f6e73756d6572733e0000b9060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401bd06045300000400c10601185665633c543e0000bd0600000408981800c106000002bd0600c5060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401c906045300000400cd0601185665633c543e0000c9060000040818d90100cd06000002c90600d1060c2870616c6c65745f78636d1870616c6c6574144572726f720404540001602c556e726561636861626c650000085d0154686520646573697265642064657374696e6174696f6e2077617320756e726561636861626c652c2067656e6572616c6c7920626563617573652074686572652069732061206e6f20776179206f6620726f7574696e6718746f2069742e2c53656e644661696c757265000108410154686572652077617320736f6d65206f746865722069737375652028692e652e206e6f7420746f20646f207769746820726f7574696e672920696e2073656e64696e6720746865206d6573736167652ec8506572686170732061206c61636b206f6620737061636520666f7220627566666572696e6720746865206d6573736167652e2046696c74657265640002049c546865206d65737361676520657865637574696f6e206661696c73207468652066696c7465722e48556e776569676861626c654d657373616765000304b4546865206d65737361676527732077656967687420636f756c64206e6f742062652064657465726d696e65642e6044657374696e6174696f6e4e6f74496e7665727469626c65000404dc5468652064657374696e6174696f6e20604c6f636174696f6e602070726f76696465642063616e6e6f7420626520696e7665727465642e14456d707479000504805468652061737365747320746f2062652073656e742061726520656d7074792e3843616e6e6f745265616e63686f720006043501436f756c64206e6f742072652d616e63686f72207468652061737365747320746f206465636c61726520746865206665657320666f72207468652064657374696e6174696f6e20636861696e2e34546f6f4d616e79417373657473000704c4546f6f206d616e79206173736574732068617665206265656e20617474656d7074656420666f72207472616e736665722e34496e76616c69644f726967696e000804784f726967696e20697320696e76616c696420666f722073656e64696e672e2842616456657273696f6e00090421015468652076657273696f6e206f6620746865206056657273696f6e6564602076616c75652075736564206973206e6f742061626c6520746f20626520696e7465727072657465642e2c4261644c6f636174696f6e000a08410154686520676976656e206c6f636174696f6e20636f756c64206e6f7420626520757365642028652e672e20626563617573652069742063616e6e6f742062652065787072657373656420696e2074686560646573697265642076657273696f6e206f662058434d292e384e6f537562736372697074696f6e000b04bc546865207265666572656e63656420737562736372697074696f6e20636f756c64206e6f7420626520666f756e642e44416c726561647953756273637269626564000c041101546865206c6f636174696f6e20697320696e76616c69642073696e636520697420616c726561647920686173206120737562736372697074696f6e2066726f6d2075732e5843616e6e6f74436865636b4f757454656c65706f7274000d042901436f756c64206e6f7420636865636b2d6f7574207468652061737365747320666f722074656c65706f72746174696f6e20746f207468652064657374696e6174696f6e20636861696e2e284c6f7742616c616e6365000e044101546865206f776e657220646f6573206e6f74206f776e2028616c6c29206f662074686520617373657420746861742074686579207769736820746f20646f20746865206f7065726174696f6e206f6e2e30546f6f4d616e794c6f636b73000f04c0546865206173736574206f776e65722068617320746f6f206d616e79206c6f636b73206f6e207468652061737365742e4c4163636f756e744e6f74536f7665726569676e001004310154686520676976656e206163636f756e74206973206e6f7420616e206964656e7469666961626c6520736f7665726569676e206163636f756e7420666f7220616e79206c6f636174696f6e2e28466565734e6f744d65740011042901546865206f7065726174696f6e207265717569726564206665657320746f20626520706169642077686963682074686520696e69746961746f7220636f756c64206e6f74206d6565742e304c6f636b4e6f74466f756e64001204f4412072656d6f7465206c6f636b20776974682074686520636f72726573706f6e64696e67206461746120636f756c64206e6f7420626520666f756e642e14496e557365001304490154686520756e6c6f636b206f7065726174696f6e2063616e6e6f742073756363656564206265636175736520746865726520617265207374696c6c20636f6e73756d657273206f6620746865206c6f636b2e68496e76616c69644173736574556e6b6e6f776e52657365727665001504f0496e76616c69642061737365742c207265736572766520636861696e20636f756c64206e6f742062652064657465726d696e656420666f722069742e78496e76616c69644173736574556e737570706f72746564526573657276650016044501496e76616c69642061737365742c20646f206e6f7420737570706f72742072656d6f7465206173736574207265736572766573207769746820646966666572656e7420666565732072657365727665732e3c546f6f4d616e7952657365727665730017044901546f6f206d616e7920617373657473207769746820646966666572656e742072657365727665206c6f636174696f6e732068617665206265656e20617474656d7074656420666f72207472616e736665722e604c6f63616c457865637574696f6e496e636f6d706c6574650018047c4c6f63616c2058434d20657865637574696f6e20696e636f6d706c6574652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ed506085070616c6c65745f6d6573736167655f717565756524426f6f6b537461746504344d6573736167654f726967696e01e50100180114626567696e10012450616765496e64657800010c656e6410012450616765496e646578000114636f756e7410012450616765496e64657800014072656164795f6e65696768626f757273d90601844f7074696f6e3c4e65696768626f7572733c4d6573736167654f726967696e3e3e0001346d6573736167655f636f756e7430010c75363400011073697a6530010c7536340000d90604184f7074696f6e04045401dd060108104e6f6e6500000010536f6d650400dd060000010000dd06085070616c6c65745f6d6573736167655f7175657565284e65696768626f75727304344d6573736167654f726967696e01e5010008011070726576e50101344d6573736167654f726967696e0001106e657874e50101344d6573736167654f726967696e0000e10600000408e5011000e506085070616c6c65745f6d6573736167655f71756575651050616765081053697a650110204865617053697a65000018012472656d61696e696e6710011053697a6500013872656d61696e696e675f73697a6510011053697a6500012c66697273745f696e64657810011053697a65000114666972737410011053697a650001106c61737410011053697a6500011068656170e906019c426f756e6465645665633c75382c20496e746f5533323c4865617053697a652c2053697a653e3e0000e9060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000ed060c5070616c6c65745f6d6573736167655f71756575651870616c6c6574144572726f720404540001242c4e6f745265617061626c65000008490150616765206973206e6f74207265617061626c65206265636175736520697420686173206974656d732072656d61696e696e6720746f2062652070726f63657373656420616e64206973206e6f74206f6c641c656e6f7567682e184e6f50616765000104845061676520746f2062652072656170656420646f6573206e6f742065786973742e244e6f4d657373616765000204a8546865207265666572656e636564206d65737361676520636f756c64206e6f7420626520666f756e642e40416c726561647950726f6365737365640003040101546865206d6573736167652077617320616c72656164792070726f63657373656420616e642063616e6e6f742062652070726f63657373656420616761696e2e18517565756564000404ac546865206d6573736167652069732071756575656420666f722066757475726520657865637574696f6e2e48496e73756666696369656e74576569676874000504190154686572652069732074656d706f726172696c79206e6f7420656e6f7567682077656967687420746f20636f6e74696e756520736572766963696e67206d657373616765732e6054656d706f726172696c79556e70726f6365737361626c65000610a854686973206d6573736167652069732074656d706f726172696c7920756e70726f6365737361626c652e00590153756368206572726f7273206172652065787065637465642c20627574206e6f742067756172616e746565642c20746f207265736f6c7665207468656d73656c766573206576656e7475616c6c79207468726f756768247265747279696e672e2c517565756550617573656400070cec5468652071756575652069732070617573656420616e64206e6f206d6573736167652063616e2062652065786563757465642066726f6d2069742e001d01546869732063616e206368616e676520617420616e792074696d6520616e64206d6179207265736f6c766520696e20746865206675747572652062792072652d747279696e672e4c526563757273697665446973616c6c6f7765640008043101416e6f746865722063616c6c20697320696e2070726f677265737320616e64206e6565647320746f2066696e697368206265666f726520746869732063616c6c2063616e2068617070656e2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ef1060c6070616c6c65745f73746f726167655f70726f766964657273147479706573345369676e557052657175657374040454000008014873705f7369676e5f75705f72657175657374f50601605369676e5570526571756573745370506172616d733c543e0001086174100144426c6f636b4e756d626572466f723c543e0000f5060c6070616c6c65745f73746f726167655f70726f766964657273147479706573545369676e5570526571756573745370506172616d73040454000108544261636b757053746f7261676550726f76696465720400f90601604261636b757053746f7261676550726f76696465723c543e0000004c4d61696e53746f7261676550726f76696465720400fd06018c4d61696e53746f7261676550726f76696465725369676e5570526571756573743c543e00010000f9060c6070616c6c65745f73746f726167655f70726f766964657273147479706573544261636b757053746f7261676550726f76696465720404540000240120636170616369747930014853746f7261676544617461556e69743c543e00013463617061636974795f7573656430014853746f7261676544617461556e69743c543e0001386d756c7469616464726573736573f50101444d756c74696164647265737365733c543e000110726f6f743401544d65726b6c655061747269636961526f6f743c543e0001506c6173745f63617061636974795f6368616e6765100144426c6f636b4e756d626572466f723c543e0001346f776e65725f6163636f756e74000130543a3a4163636f756e74496400013c7061796d656e745f6163636f756e74000130543a3a4163636f756e74496400014472657075746174696f6e5f77656967687410015c52657075746174696f6e576569676874547970653c543e0001347369676e5f75705f626c6f636b100144426c6f636b4e756d626572466f723c543e0000fd060c6070616c6c65745f73746f726167655f70726f766964657273147479706573804d61696e53746f7261676550726f76696465725369676e55705265717565737404045400000801206d73705f696e666f010701584d61696e53746f7261676550726f76696465723c543e00012876616c75655f70726f700502014c56616c756550726f706f736974696f6e3c543e000001070c6070616c6c65745f73746f726167655f70726f7669646572731474797065734c4d61696e53746f7261676550726f766964657204045400001c0120636170616369747930014853746f7261676544617461556e69743c543e00013463617061636974795f7573656430014853746f7261676544617461556e69743c543e0001386d756c7469616464726573736573f50101444d756c74696164647265737365733c543e0001506c6173745f63617061636974795f6368616e6765100144426c6f636b4e756d626572466f723c543e0001346f776e65725f6163636f756e74000130543a3a4163636f756e74496400013c7061796d656e745f6163636f756e74000130543a3a4163636f756e7449640001347369676e5f75705f626c6f636b100144426c6f636b4e756d626572466f723c543e000005070c6070616c6c65745f73746f726167655f70726f766964657273147479706573184275636b657404045400001c0110726f6f743401544d65726b6c655061747269636961526f6f743c543e00011c757365725f6964000130543a3a4163636f756e7449640001186d73705f6964b10301804f7074696f6e3c4d61696e53746f7261676550726f766964657249643c543e3e00011c70726976617465200110626f6f6c000150726561645f6163636573735f67726f75705f6964150201704f7074696f6e3c543a3a5265616441636365737347726f757049643e00011073697a6530014853746f7261676544617461556e69743c543e00013476616c75655f70726f705f69643401244861736849643c543e00000907000004083434000d070c6070616c6c65745f73746f726167655f70726f7669646572731870616c6c6574144572726f720404540001a044416c72656164795265676973746572656400000471014572726f72207468726f776e207768656e2061207573657220747269657320746f207369676e20757020617320612053502062757420697320616c726561647920726567697374657265642061732061204d5350206f72204253502e485369676e55704e6f7452657175657374656400010459014572726f72207468726f776e207768656e2061207573657220747269657320746f20636f6e6669726d2061207369676e207570207468617420776173206e6f74207265717565737465642070726576696f75736c792e505369676e55705265717565737450656e64696e670002048d014572726f72207468726f776e207768656e2061207573657220747269657320746f207265717565737420746f207369676e207570207768656e20697420616c7265616479206861732061207369676e20757020726571756573742070656e64696e672e384e6f4d756c7469416464726573730003040d014572726f72207468726f776e207768656e2061207573657220747269657320746f207369676e20757020776974686f757420616e79206d756c7469616464726573732e4c496e76616c69644d756c74694164647265737300040491014572726f72207468726f776e207768656e2061207573657220747269657320746f207369676e20757020617320612053502062757420616e79206f66207468652070726f7669646564206d756c746961646472657373657320697320696e76616c69642e3453746f72616765546f6f4c6f7700050401024572726f72207468726f776e207768656e2061207573657220747269657320746f207369676e207570206f72206368616e67652069747320636170616369747920746f2073746f7265206c6573732073746f72616765207468616e20746865206d696e696d756d207265717569726564206279207468652072756e74696d652e404e6f74456e6f75676842616c616e636500060431024572726f72207468726f776e207768656e2061207573657220646f6573206e6f74206861766520656e6f7567682062616c616e636520746f2070617920746865206465706f736974207468617420697420776f756c6420696e637572206279207369676e696e672075702061732061205350206f72206368616e67696e67206974732063617061636974792e4443616e6e6f74486f6c644465706f736974000704f9014572726f72207468726f776e207768656e207468652072756e74696d652063616e6e6f7420686f6c6420746865207265717569726564206465706f7369742066726f6d20746865206163636f756e7420746f2072656769737465722069742061732061205350206f72206368616e6765206974732063617061636974792e4453746f726167655374696c6c496e55736500080439014572726f72207468726f776e207768656e2061207573657220747269657320746f207369676e206f6666206173206120535020627574207374696c6c2068617320757365642073746f726167652e585369676e4f6666506572696f644e6f745061737365640009047d014572726f72207468726f776e207768656e2061207573657220747269657320746f207369676e206f66662061732061204253502062757420746865207369676e206f666620706572696f6420686173206e6f7420706173736564207965742e5452616e646f6d6e6573734e6f7456616c6964596574000a048d014572726f72207468726f776e207768656e2061207573657220747269657320746f20636f6e6669726d2061207369676e20757020627574207468652072616e646f6d6e65737320697320746f6f20667265736820746f2062652075736564207965742e505369676e55705265717565737445787069726564000b048d014572726f72207468726f776e207768656e2061207573657220747269657320746f20636f6e6669726d2061207369676e2075702062757420746f6f206d7563682074696d6520686173207061737365642073696e63652074686520726571756573742e784e657743617061636974794c6573735468616e5573656453746f72616765000c0451014572726f72207468726f776e207768656e2061207573657220747269657320746f206368616e67652069747320636170616369747920746f206c657373207468616e2069747320757365642073746f726167652e804e65774361706163697479457175616c7343757272656e744361706163697479000d045d014572726f72207468726f776e207768656e2061207573657220747269657320746f206368616e67652069747320636170616369747920746f207468652073616d652076616c756520697420616c7265616479206861732e544e6577436170616369747943616e7442655a65726f000e04c9014572726f72207468726f776e207768656e2061207573657220747269657320746f206368616e67652069747320636170616369747920746f207a65726f20287468657265206172652073706563696669632065787472696e7369637320746f207369676e206f66662061732061205350292e4c4e6f74456e6f75676854696d65506173736564000f04d9014572726f72207468726f776e207768656e206120535020747269657320746f206368616e6765206974732063617061636974792062757420697420686173206e6f74206265656e20656e6f7567682074696d652073696e636520746865206c6173742074696d65206974206368616e6765642069742e944e65775573656443617061636974794578636565647353746f726167654361706163697479001004c5014572726f72207468726f776e207768656e206120535020747269657320746f206368616e6765206974732063617061636974792062757420746865206e6577206361706163697479206973206e6f7420656e6f75676820746f2073746f72652074686520757365642073746f726167652e344e6f745265676973746572656400110465014572726f72207468726f776e207768656e2061207573657220747269657320746f20696e746572616374206173206120535020627574206973206e6f7420726567697374657265642061732061204d5350206f72204253502e204e6f55736572496400120431014572726f72207468726f776e207768656e20747279696e6720746f20676574206120726f6f742066726f6d2061204d535020776974686f75742070617373696e67206120557365722049442e284e6f4275636b6574496400130439014572726f72207468726f776e207768656e20747279696e6720746f20676574206120726f6f742066726f6d2061204d535020776974686f75742070617373696e672061204275636b65742049442e6c537052656769737465726564427574446174614e6f74466f756e64001404d1014572726f72207468726f776e207768656e206120757365722068617320612053502049442061737369676e656420746f2069742062757420746865205350206461746120646f6573206e6f7420657869737420696e2073746f726167652028496e636f6e73697374656e6379206572726f72292e384275636b65744e6f74466f756e64001504d84572726f72207468726f776e207768656e2061206275636b6574204944206973206e6f7420666f756e6420696e2073746f726167652e4c4275636b6574416c7265616479457869737473001604e04572726f72207468726f776e207768656e2061206275636b657420494420616c72656164792065786973747320696e2073746f726167652e384275636b65744e6f74456d707479001704c44275636b65742063616e6e6f742062652064656c657465642062656361757365206974206973206e6f7420656d7074792e5c417070656e644275636b6574546f4d73704661696c656400180445014572726f72207468726f776e207768656e2061206275636b657420494420636f756c64206e6f7420626520616464656420746f20746865206c697374206f66206275636b657473206f662061204d53502e5050726f76696465724e6f74536c61736861626c650019043d014572726f72207468726f776e207768656e20616e20617474656d707420776173206d61646520746f20736c61736820616e20756e736c61736861626c652053746f726167652050726f76696465722e744275636b65744d757374486176654d7370466f724f7065726174696f6e001a0421014572726f72207468726f776e207768656e20616e206f7065726174696f6e20726571756972657320616e204d535020746f2062652073746f72696e6720746865206275636b65742e784d756c74694164647265737365734d6178416d6f756e7452656163686564001b0411024572726f72207468726f776e207768656e20612050726f766964657220747269657320746f206164642061206e6577204d756c74694164647265737320746f20697473206163636f756e742062757420697420616c72656164792068617320746865206d6178696d756d20616d6f756e74206f66206d756c74696164647265737365732e504d756c7469416464726573734e6f74466f756e64001c04d1014572726f72207468726f776e207768656e20612050726f766964657220747269657320746f2064656c6574652061204d756c7469416464726573732066726f6d20697473206163636f756e742062757420697420646f6573206e6f7420686176652074686174204d756c7469416464726573732e644d756c746941646472657373416c7265616479457869737473001d0489014572726f72207468726f776e207768656e20612050726f766964657220747269657320746f206164642061206e6577204d756c74694164647265737320746f20697473206163636f756e742062757420697420616c7265616479206578697374732e744c6173744d756c74694164647265737343616e74426552656d6f766564001e0451014572726f72207468726f776e207768656e20612050726f766964657220747269657320746f2072656d6f766520746865206c617374204d756c7469416464726573732066726f6d20697473206163636f756e742e6056616c756550726f706f736974696f6e4e6f74466f756e64001f04e04572726f72207468726f776e207768656e207468652076616c75652070726f706f736974696f6e206964206973206e6f7420666f756e642e7456616c756550726f706f736974696f6e416c726561647945786973747300200411014572726f72207468726f776e207768656e2076616c75652070726f706f736974696f6e20756e646572206120676976656e20696420616c7265616479206578697374732e7056616c756550726f706f736974696f6e4e6f74417661696c61626c65002104dc4572726f72207468726f776e207768656e20612076616c75652070726f706f736974696f6e206973206e6f7420617661696c61626c652e784669786564526174655061796d656e7453747265616d4e6f74466f756e64002204d84572726f72207468726f776e207768656e2061206669786564207061796d656e742073747265616d206973206e6f7420666f756e642e684d7370416c726561647941737369676e6564546f4275636b657400230421014572726f72207468726f776e207768656e206368616e67696e6720746865204d5350206f662061206275636b657420746f207468652073616d652061737369676e6564204d53502e584275636b657453697a65457863656564734c696d697400240489014572726f72207468726f776e207768656e2061207573657220657863656564656420746865206275636b65742064617461206c696d6974206261736564206f6e20746865206173736f6369617465642076616c75652070726f706f736974696f6e2e68496e76616c6964456e636f64656446696c654d6574616461746100250475014572726f72207468726f776e207768656e206661696c696e6720746f206465636f646520746865206d657461646174612066726f6d206120726563656976656420747269652076616c75652074686174207761732072656d6f7665642e5c496e76616c6964456e636f6465644163636f756e74496400260451014572726f72207468726f776e207768656e206661696c696e6720746f206465636f646520746865206f776e6572204163636f756e742049442066726f6d20746865207265636569766564206d657461646174612e545061796d656e7453747265616d4e6f74466f756e6400270421014572726f72207468726f776e207768656e20747279696e6720746f207570646174652061207061796d656e742073747265616d207468617420646f6573206e6f742065786973742e044901546865206572726f727320746861742063616e206265207468726f776e20627920746869732070616c6c657420746f20696e666f726d2075736572732061626f757420776861742077656e742077726f6e6711070c4870616c6c65745f66696c655f73797374656d1474797065735853746f72616765526571756573744d6574616461746104045400002c01307265717565737465645f61741001345469636b4e756d6265723c543e0001146f776e6572000130543a3a4163636f756e7449640001246275636b65745f69643401384275636b65744964466f723c543e0001206c6f636174696f6e1902013c46696c654c6f636174696f6e3c543e00012c66696e6765727072696e7434013846696e6765727072696e743c543e00011073697a6530013853746f72616765446174613c543e00010c6d7370150701804f7074696f6e3c2850726f76696465724964466f723c543e2c20626f6f6c293e000134757365725f706565725f696473f5010128506565724964733c543e000134627370735f72657175697265641001605265706c69636174696f6e546172676574547970653c543e000138627370735f636f6e6669726d65641001605265706c69636174696f6e546172676574547970653c543e000140627370735f766f6c756e7465657265641001605265706c69636174696f6e546172676574547970653c543e0000150704184f7074696f6e0404540119070108104e6f6e6500000010536f6d650400190700000100001907000004083420001d070c4870616c6c65745f66696c655f73797374656d1474797065736853746f7261676552657175657374427370734d657461646174610404540000040124636f6e6669726d6564200110626f6f6c000021070c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540134045300000400310201185665633c543e000025070c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540129070453000004002d0701185665633c543e00002907000004080034002d0700000229070031070c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454010907045300000400350701185665633c543e0000350700000209070039070c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454010907045300000400350701185665633c543e00003d070000040810300041070c4870616c6c65745f66696c655f73797374656d147479706573644d6f76654275636b6574526571756573744d657461646174610404540000040124726571756573746572000130543a3a4163636f756e744964000045070c4870616c6c65745f66696c655f73797374656d1870616c6c6574144572726f72040454000105017c53746f7261676552657175657374416c726561647952656769737465726564000004d853746f72616765207265717565737420616c7265616479207265676973746572656420666f722074686520676976656e2066696c652e5853746f72616765526571756573744e6f74466f756e64000104c853746f726167652072657175657374206e6f74207265676973746572656420666f722074686520676976656e2066696c652e6053746f72616765526571756573744e6f745265766f6b656400020415014f7065726174696f6e206e6f7420616c6c6f776564207768696c65207468652073746f726167652072657175657374206973206e6f74206265696e67207265766f6b65642e5053746f7261676552657175657374457869737473000304dc4f7065726174696f6e206e6f7420616c6c6f776564207768696c65207468652073746f726167652072657175657374206578697374732e745265706c69636174696f6e54617267657443616e6e6f7442655a65726f000404885265706c69636174696f6e207461726765742063616e6e6f74206265207a65726f2e644273707352657175697265644578636565647354617267657400050411014253507320726571756972656420666f722073746f7261676520726571756573742063616e6e6f742065786365656420746865206d6178696d756d20616c6c6f7765642e1c4e6f7441427370000604544163636f756e74206973206e6f742061204253502e1c4e6f74414d7370000704544163636f756e74206973206e6f742061204d53502e184e6f74415370000804504163636f756e74206973206e6f7420612053502e444273704e6f74566f6c756e746565726564000904c042535020686173206e6f7420766f6c756e74656572656420746f2073746f72652074686520676976656e2066696c652e3c4273704e6f74436f6e6669726d6564000a04b442535020686173206e6f7420636f6e6669726d65642073746f72696e672074686520676976656e2066696c652e4c427370416c7265616479436f6e6669726d6564000b04c44253502068617320616c726561647920636f6e6669726d65642073746f72696e672074686520676976656e2066696c652e8c53746f726167655265717565737442737073526571756972656446756c66696c6c6564000c04f44e756d626572206f66204253507320726571756972656420666f722073746f72616765207265717565737420686173206265656e20726561636865642e54427370416c7265616479566f6c756e746565726564000d04c042535020616c726561647920766f6c756e74656572656420746f2073746f72652074686520676976656e2066696c652e74496e73756666696369656e74417661696c61626c654361706163697479000e04ec535020646f6573206e6f74206861766520656e6f7567682073746f7261676520636170616369747920746f2073746f7265207468652066696c652ea0556e65787065637465644e756d6265724f6652656d6f766564566f6c756e74656572656442737073000f0485014e756d626572206f662072656d6f766564204253507320766f6c756e7465657265642066726f6d2073746f7261676520726571756573742070726566697820646964206e6f74206d6174636820746865206578706563746564206e756d6265722e9053746f7261676552657175657374457870697265644e6f536c6f74417661696c61626c6500100431014e6f20736c6f7420617661696c61626c6520666f756e6420696e20626c6f636b7320746f20696e736572742073746f7261676520726571756573742065787069726174696f6e2074696d652e6c53746f72616765526571756573744e6f74417574686f72697a6564001104b44e6f7420617574686f72697a656420746f2064656c657465207468652073746f7261676520726571756573742e544d6178426c6f636b4e756d6265725265616368656400120859014572726f72206372656174656420696e20323032342e20496620796f752073656520746869732c20796f75206172652077656c6c206265796f6e64207468652073696e67756c617269747920616e642073686f756c648070726f6261626c792073746f70207573696e6720746869732070616c6c65742e444661696c6564546f456e636f6465427370001304844661696c656420746f20656e636f64652042535020696420617320736c6963652e644661696c6564546f456e636f646546696e6765727072696e74001404984661696c656420746f20656e636f64652066696e6765727072696e7420617320736c6963652e5c4661696c6564546f4465636f64655468726573686f6c640015046c4661696c656420746f206465636f6465207468726573686f6c642e3841626f76655468726573686f6c640016049042535020646964206e6f742073756363656564207468726573686f6c6420636865636b2e605468726573686f6c6441726974686d657469634572726f72001704a841726974686d65746963206572726f7220696e207468726573686f6c642063616c63756c6174696f6e2e504661696c656454797065436f6e76657273696f6e001804904661696c656420746f20636f6e7665727420746f207072696d697469766520747970652e344469766964656442795a65726f0019043044697669646564206279203068496d706f737369626c654661696c6564546f47657456616c7565001a04c44661696c656420746f206765742076616c7565207768656e206a75737420636865636b656420697420657869737465642e484275636b657449734e6f7450726976617465001b041d014275636b6574206973206e6f7420707269766174652e2043616c6c20607570646174655f6275636b65745f707269766163796020746f206d616b6520697420707269766174652e384275636b65744e6f74466f756e64001c04544275636b657420646f6573206e6f74206578697374384275636b65744e6f74456d707479001d04504275636b6574206973206e6f7420656d7074792e384e6f744275636b65744f776e6572001e0411014f7065726174696f6e206661696c6564206265636175736520746865206163636f756e74206973206e6f7420746865206f776e6572206f6620746865206275636b65742e5050726f7669646572526f6f744e6f74466f756e64001f047c526f6f74206f66207468652070726f7669646572206e6f7420666f756e642e6445787065637465644e6f6e496e636c7573696f6e50726f6f6600200415014661696c656420746f207665726966792070726f6f663a20726571756972656420746f2070726f7669646520612070726f6f66206f66206e6f6e2d696e636c7573696f6e2e584578706563746564496e636c7573696f6e50726f6f6600210405014661696c656420746f207665726966792070726f6f663a20726571756972656420746f2070726f7669646520612070726f6f66206f6620696e636c7573696f6e2e58496e76616c696446696c654b65794d65746164617461002204c84d6574616461746120646f6573206e6f7420636f72726573706f6e6420746f2065787065637465642066696c65206b65792e5c5468726573686f6c6442656c6f774173796d70746f7465002304d0425350732061737369676e6d656e74207468726573686f6c642063616e6e6f742062652062656c6f77206173796d70746f74652e304e6f7446696c654f776e6572002404d4556e617574686f72697a6564206f7065726174696f6e2c207369676e657220646f6573206e6f74206f776e207468652066696c652e7446696c654b6579416c726561647950656e64696e6744656c6574696f6e0025048846696c65206b657920616c72656164792070656e64696e672064656c6574696f6e2e944d61785573657250656e64696e6744656c6574696f6e526571756573747352656163686564002604d44d6178206e756d626572206f6620757365722070656e64696e672064656c6574696f6e20726571756573747320726561636865642e4c4d73704e6f7453746f72696e674275636b6574002704f8556e617574686f72697a6564206f7065726174696f6e2c207369676e6572206973206e6f7420616e204d5350206f6620746865206275636b65742069642e6446696c654b65794e6f7450656e64696e6744656c6574696f6e002804c046696c65206b6579206e6f7420666f756e6420696e2070656e64696e672064656c6574696f6e2072657175657374732e5046696c6553697a6543616e6e6f7442655a65726f0029046446696c652073697a652063616e6e6f74206265207a65726f2e6c4e6f476c6f62616c52657075746174696f6e576569676874536574002a04804e6f20676c6f62616c2072657075746174696f6e20776569676874207365742e704d6178696d756d5468726573686f6c6443616e6e6f7442655a65726f002b04844d6178696d756d207468726573686f6c642063616e6e6f74206265207a65726f2e9c5469636b52616e6765546f4d6178696d756d5468726573686f6c6443616e6e6f7442655a65726f002c04bc5469636b2072616e676520746f206d6178696d756d207468726573686f6c642063616e6e6f74206265207a65726f2e8450656e64696e6753746f7053746f72696e67526571756573744e6f74466f756e64002d049c50656e64696e672073746f702073746f72696e672072657175657374206e6f7420666f756e642e7c4d696e57616974466f7253746f7053746f72696e674e6f7452656163686564002e0479014d696e696d756d20616d6f756e74206f6620626c6f636b73206265747765656e207468652072657175657374206f70656e696e6720616e64206265696e672061626c6520746f20636f6e6669726d206974206e6f7420726561636865642e9850656e64696e6753746f7053746f72696e6752657175657374416c7265616479457869737473002f04b050656e64696e672073746f702073746f72696e67207265717565737420616c7265616479206578697374732e40557365724e6f74496e736f6c76656e74003004a9014120535020747269656420746f2073746f702073746f72696e672066696c65732066726f6d2061207573657220746861742077617320737570706f7365646c7920696e736f6c76656e742c20627574207468652075736572206973206e6f7420696e736f6c76656e742e384e6f7453656c65637465644d7370003104a101546865204d535020697320747279696e6720746f20636f6e6669726d20746f2073746f726520612066696c652066726f6d20612073746f726167652072657175657374206973206e6f7420746865206f6e652073656c656374656420746f2073746f72652069742e4c4d7370416c7265616479436f6e6669726d6564003204ad01546865204d535020697320747279696e6720746f20636f6e6669726d20746f2073746f726520612066696c652066726f6d20612073746f72616765207265717565737420746861742069742068617320616c726561647920636f6e6669726d656420746f2073746f72652e4452657175657374576974686f75744d73700033049901546865204d535020697320747279696e6720746f20636f6e6669726d20746f2073746f726520612066696c652066726f6d20612073746f726167652072657175657374207468617420646f6573206e6f7420686176652061204d53502061737369676e65642e5c4d7370416c726561647953746f72696e674275636b657400340498546865204d535020697320616c72656164792073746f72696e6720746865206275636b65742e644d6f76654275636b6574526571756573744e6f74466f756e64003504a44d6f7665206275636b65742072657175657374206e6f7420666f756e6420696e2073746f726167652e484275636b657449734265696e674d6f766564003604cc416374696f6e206e6f7420616c6c6f776564207768696c6520746865206275636b6574206973206265696e67206d6f7665642e50427370416c726561647944617461536572766572003704e442535020697320616c7265616479206120646174612073657276657220666f7220746865206d6f7665206275636b657420726571756573742e5842737044617461536572766572734578636565646564003804f4546f6f206d616e7920726567697374657265642064617461207365727665727320666f7220746865206d6f7665206275636b657420726571756573742e7c46696c654d6574616461746150726f63657373696e67517565756546756c6c003904910154686520626f756e64656420766563746f72207468617420686f6c64732066696c65206d6574616461746120746f2070726f636573732069742069732066756c6c206275742074686572652773207374696c6c206d6f726520746f2070726f636573732e54546f6f4d616e794261746368526573706f6e736573003a0490546f6f206d616e7920626174636820726573706f6e73657320746f2070726f636573732e78546f6f4d616e7953746f7261676552657175657374526573706f6e736573003b048c546f6f206d616e792073746f72616765207265717565737420726573706f6e7365732e68496e76616c69644275636b6574496446696c654b657950616972003c049c4275636b657420696420616e642066696c65206b6579207061697220697320696e76616c69642e84496e636f6e73697374656e7453746174654b6579416c7265616479457869737473003d04c44b657920616c72656164792065786973747320696e206d617070696e67207768656e2069742073686f756c64206e6f742e784669786564526174655061796d656e7453747265616d4e6f74466f756e64003e04c04661696c656420746f20666574636820746865207261746520666f7220746865207061796d656e742073747265616d2e4443616e6e6f74486f6c644465706f736974003f04b843616e6e6f7420686f6c6420746865207265717569726564206465706f7369742066726f6d2074686520757365725c4661696c6564546f4765744f776e65724163636f756e74004004b44661696c656420746f20676574206f776e6572206163636f756e74206f66204944206f662070726f7669646572048054686520604572726f726020656e756d206f6620746869732070616c6c65742e4907000004081034004d070c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540134045300000400310201185665633c543e000051070c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540191020453000004009d0201185665633c543e000055070c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401340453000004005907012c42547265655365743c543e0000590704204254726565536574040454013400040031020000005d070c5070616c6c65745f70726f6f66735f6465616c65721870616c6c6574144572726f720404540001582c4e6f7450726f76696465720000083847656e6572616c206572726f7273c45468652070726f6f66207375626d6974746572206973206e6f74206120726567697374657265642050726f76696465722e5c4368616c6c656e67657351756575654f766572666c6f7700010c70606368616c6c656e6765602065787472696e736963206572726f72730901546865204368616c6c656e67657351756575652069732066756c6c2e204e6f206d6f7265206d616e75616c206368616c6c656e6765732063616e206265206d616465e4756e74696c20736f6d65206f6620746865206368616c6c656e67657320696e207468652071756575652061726520646973706174636865642e7c5072696f726974794368616c6c656e67657351756575654f766572666c6f770002083101546865205072696f726974794368616c6c656e67657351756575652069732066756c6c2e204e6f206d6f7265207072696f72697479206368616c6c656e6765732063616e206265206d616465e4756e74696c20736f6d65206f6620746865206368616c6c656e67657320696e207468652071756575652061726520646973706174636865642e3c4665654368617267654661696c6564000304e05468652066656520666f72207375626d697474696e672061206368616c6c656e676520636f756c64206e6f7420626520636861726765642e38456d7074794b657950726f6f66730004087c607375626d69745f70726f6f66602065787472696e736963206572726f727388546865726520617265206e6f206b65792070726f6f6673207375626d69747465642e5050726f7669646572526f6f744e6f74466f756e64000504b454686520726f6f7420666f72207468652050726f766964657220636f756c64206e6f7420626520666f756e642e205a65726f526f6f7400060ce850726f7669646572206973207375626d697474696e6720612070726f6f66207768656e207468657920686176652061207a65726f20726f6f742e390150726f7669646572732077697468207a65726f20726f6f747320617265206e6f742070726f766964696e6720616e7920736572766963652c20736f20746865792073686f756c64206e6f74206265487375626d697474696e672070726f6f66732e704e6f5265636f72644f664c6173745375626d697474656450726f6f660007142d0150726f7669646572206973207375626d697474696e6720612070726f6f6620627574207468657265206973206e6f207265636f7264206f6620746865206c617374207469636b2074686579587375626d697474656420612070726f6f6620666f722e390150726f7669646572732077686f2061726520726571756972656420746f207375626d69742070726f6f66732073686f756c6420616c7761797320686176652061207265636f7264206f662074686535016c617374207469636b2074686579207375626d697474656420612070726f6f6620666f722c206f7468657277697365206974206d65616e73207468657920686176656e277420737461727465648c70726f766964696e67207365727669636520666f7220616e792075736572207965742e5450726f76696465725374616b654e6f74466f756e64000804985468652070726f7669646572207374616b6520636f756c64206e6f7420626520666f756e642e245a65726f5374616b65000904dc50726f7669646572206973207375626d697474696e6720612070726f6f6620627574207468656972207374616b65206973207a65726f2e605374616b65436f756c644e6f744265436f6e766572746564000a081101546865207374616b65642062616c616e6365206f66207468652050726f766964657220636f756c64206e6f7420626520636f6e76657274656420746f206075313238602e5901546869732073686f756c64206e6f7420626520706f737369626c652c20617320746865206042616c616e63656020747970652073686f756c6420626520616e20756e7369676e656420696e746567657220747970652e604368616c6c656e6765735469636b4e6f7452656163686564000b04e050726f7669646572206973207375626d697474696e6720612070726f6f6620666f722061207469636b20696e20746865206675747572652e504368616c6c656e6765735469636b546f6f4f6c64000c08510150726f7669646572206973207375626d697474696e6720612070726f6f6620666f722061207469636b206265666f726520746865206c617374207469636b20746869732070616c6c6574207265676973746572733c6368616c6c656e67657320666f722e544368616c6c656e6765735469636b546f6f4c617465000d08450150726f7669646572206973207375626d697474696e6720612070726f6f6620666f722061207469636b20746f6f206c6174652c20692e652e207468617420746865206368616c6c656e676573207469636b450169732067726561746572206f7220657175616c207468616e20606368616c6c656e6765735f7469636b60202b2060543a3a4368616c6c656e67655469636b73546f6c6572616e63653a3a6765742829602e30536565644e6f74466f756e64000e0ca4546865207365656420666f7220746865207469636b20636f756c64206e6f7420626520666f756e642e5101546869732073686f756c64206e6f7420626520706f737369626c6520666f722061207469636b2077697468696e2074686520604368616c6c656e6765486973746f72794c656e677468602072616e67652c20617301017365656473206172652067656e65726174656420666f7220616c6c207469636b732c20616e642073746f7265642077697468696e20746869732072616e67652e70436865636b706f696e744368616c6c656e6765734e6f74466f756e64000f0ca4436865636b706f696e74206368616c6c656e676573206e6f7420666f756e6420696e20626c6f636b2e5d01546869732073686f756c64206f6e6c7920626520706f737369626c6520696620605469636b546f436865636b706f696e744368616c6c656e676573602069732064657265666572656e63656420666f722061207469636b7874686174206973206e6f74206120636865636b706f696e74207469636b2e74466f7265737450726f6f66566572696669636174696f6e4661696c656400100cd854686520666f726573742070726f6f66207375626d6974746564206279207468652050726f766964657220697320696e76616c69642e49015468697320636f756c642062652062656361757365207468652070726f6f66206973206e6f742076616c696420666f722074686520726f6f742c206f722062656361757365207468652070726f6f662069739c6e6f742073756666696369656e7420666f7220746865206368616c6c656e676573206d6164652e404b657950726f6f664e6f74466f756e6400110861015468657265206973206174206c65617374206f6e65206b65792070726f76656e20696e2074686520666f726573742070726f6f662c207468617420646f6573206e6f742068617665206120636f72726573706f6e64696e67286b65792070726f6f662e684b657950726f6f66566572696669636174696f6e4661696c656400120cc441206b65792070726f6f66207375626d6974746564206279207468652050726f766964657220697320696e76616c69642e6d015468697320636f756c642062652062656361757365207468652070726f6f66206973206e6f742076616c696420666f722074686520726f6f74206f662074686174206b65792c206f722062656361757365207468652070726f6f66a86973206e6f742073756666696369656e7420666f7220746865206368616c6c656e676573206d6164652e484661696c6564546f4170706c7944656c7461001304dc4661696c656420746f206170706c792064656c746120746f2074686520666f726573742070726f6f66207061727469616c20747269652e944661696c6564546f55706461746550726f766964657241667465724b657952656d6f76616c001404ec4661696c656420746f20757064617465207468652070726f76696465722061667465722061206b65792072656d6f76616c206d75746174696f6e2e6c546f6f4d616e7956616c696450726f6f665375626d6974746572730015044501546865206c696d6974206f662050726f76696465727320746861742063616e207375626d697420612070726f6f6620696e20612073696e676c65207469636b20686173206265656e20726561636865642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e61070000040834100065070000040834000069070c5870616c6c65745f7061796d656e745f73747265616d73147479706573584669786564526174655061796d656e7453747265616d04045400001001107261746518013042616c616e63654f663c543e0001446c6173745f636861726765645f7469636b100144426c6f636b4e756d626572466f723c543e000130757365725f6465706f73697418013042616c616e63654f663c543e0001446f75745f6f665f66756e64735f7469636b150201644f7074696f6e3c426c6f636b4e756d626572466f723c543e3e00006d070c5870616c6c65745f7061796d656e745f73747265616d731474797065736044796e616d6963526174655061796d656e7453747265616d040454000010013c616d6f756e745f70726f766964656430014c556e69747350726f7669646564466f723c543e00017470726963655f696e6465785f7768656e5f6c6173745f6368617267656418013042616c616e63654f663c543e000130757365725f6465706f73697418013042616c616e63654f663c543e0001446f75745f6f665f66756e64735f7469636b150201644f7074696f6e3c426c6f636b4e756d626572466f723c543e3e000071070c5870616c6c65745f7061796d656e745f73747265616d731474797065736850726f76696465724c61737443686172676561626c65496e666f04045400000801506c6173745f63686172676561626c655f7469636b100144426c6f636b4e756d626572466f723c543e00012c70726963655f696e64657818013042616c616e63654f663c543e000075070c5870616c6c65745f7061796d656e745f73747265616d731870616c6c6574144572726f72040454000140685061796d656e7453747265616d416c726561647945786973747300000469014572726f72207468726f776e207768656e20612075736572206f6620746869732070616c6c657420747269657320746f206164642061207061796d656e742073747265616d207468617420616c7265616479206578697374732e545061796d656e7453747265616d4e6f74466f756e64000104bd014572726f72207468726f776e207768656e20612075736572206f6620746869732070616c6c657420747269657320746f207570646174652c2072656d6f7665206f72206368617267652061207061796d656e742073747265616d207468617420646f6573206e6f742065786973742e304e6f744150726f766964657200020471014572726f72207468726f776e207768656e2061207573657220747269657320746f206368617267652061207061796d656e742073747265616d20616e642069742773206e6f74206120726567697374657265642050726f76696465726850726f7669646572496e636f6e73697374656e63794572726f7200030435014572726f72207468726f776e207768656e206661696c696e6720746f2067657420746865207061796d656e74206163636f756e74206f66206120726567697374657265642050726f76696465724443616e6e6f74486f6c644465706f736974000404a9014572726f72207468726f776e207768656e207468652073797374656d2063616e277420686f6c642066756e64732066726f6d2074686520557365722061732061206465706f73697420666f72206372656174696e672061206e6577207061796d656e742073747265616d5055706461746552617465546f53616d655261746500050495014572726f72207468726f776e207768656e20747279696e6720746f20757064617465207468652072617465206f6620612066697865642d72617465207061796d656e742073747265616d20746f207468652073616d652072617465206173206265666f726560557064617465416d6f756e74546f53616d65416d6f756e74000604d1014572726f72207468726f776e207768656e20747279696e6720746f207570646174652074686520616d6f756e742070726f7669646564206f6620612064796e616d69632d72617465207061796d656e742073747265616d20746f207468652073616d6520616d6f756e74206173206265666f7265385261746543616e7442655a65726f000704bd024572726f72207468726f776e207768656e20747279696e6720746f206372656174652061206e65772066697865642d72617465207061796d656e742073747265616d207769746820726174652030206f7220757064617465207468652072617465206f6620616e206578697374696e67206f6e6520746f2030202873686f756c64207573652072656d6f76655f66697865645f726174655f7061796d656e745f73747265616d20696e73746561642960416d6f756e7450726f766964656443616e7442655a65726f00080425034572726f72207468726f776e207768656e20747279696e6720746f206372656174652061206e65772064796e616d69632d72617465207061796d656e742073747265616d207769746820616d6f756e742070726f76696465642030206f72207570646174652074686520616d6f756e742070726f7669646564206f6620616e206578697374696e67206f6e6520746f2030202873686f756c64207573652072656d6f76655f64796e616d69635f726174655f7061796d656e745f73747265616d20696e737465616429904c61737443686172676564477265617465725468616e4c61737443686172676561626c6500090425024572726f72207468726f776e207768656e20746865207469636b206e756d626572206f66207768656e20746865207061796d656e742073747265616d20776173206c61737420636861726765642069732067726561746572207468616e20746865207469636b206e756d626572206f6620746865206c6173742063686172676561626c65207469636b80496e76616c69644c61737443686172676561626c65426c6f636b4e756d626572000a04bd024572726f72207468726f776e207768656e20746865206e6577206c6173742063686172676561626c65207469636b206e756d626572207468617420697320747279696e6720746f206265207365742069732067726561746572207468616e207468652063757272656e74207469636b206e756d626572206f7220736d616c6c6572207468616e207468652070726576696f7573206c6173742063686172676561626c65207469636b206e756d6265727c496e76616c69644c61737443686172676561626c655072696365496e646578000b04bd024572726f72207468726f776e207768656e20746865206e6577206c6173742063686172676561626c6520707269636520696e646578207468617420697320747279696e6720746f206265207365742069732067726561746572207468616e207468652063757272656e7420707269636520696e646578206f7220736d616c6c6572207468616e207468652070726576696f7573206c6173742063686172676561626c6520707269636520696e646578384368617267654f766572666c6f77000c046d014572726f72207468726f776e207768656e206368617267696e672061207061796d656e742073747265616d20776f756c6420726573756c7420696e20616e206f766572666c6f77206f66207468652062616c616e636520747970654055736572576974686f757446756e6473000d047d014572726f72207468726f776e207768656e20747279696e6720746f206f706572617465207768656e20746865205573657220686173206265656e20666c616767656420666f72206e6f7420686176696e6720656e6f7567682066756e64732e70557365724e6f74466c61676765644173576974686f757446756e6473000e04e9014572726f72207468726f776e207768656e20612075736572207468617420686173206e6f74206265656e20666c616767656420617320776974686f75742066756e647320747269657320746f20757365207468652065787472696e73696320746f2070617920697473206f75747374616e64696e6720646562745c436f6f6c646f776e506572696f644e6f74506173736564000f04b5014572726f72207468726f776e207768656e2061207573657220747269657320746f20636c6561722074686520666c6167206f66206265696e6720776974686f75742066756e6473206265666f72652074686520636f6f6c646f776e20706572696f642068617320706173736564044901546865206572726f727320746861742063616e206265207468726f776e20627920746869732070616c6c657420746f20696e666f726d2075736572732061626f757420776861742077656e742077726f6e6779070c4870616c6c65745f6275636b65745f6e6674731870616c6c6574144572726f72040454000110484275636b657449734e6f74507269766174650000048d014275636b6574206973206e6f7420707269766174652e2043616c6c20607570646174655f6275636b65745f70726976616379602066726f6d207468652066696c652073797374656d2070616c6c657420746f206d616b6520697420707269766174652e384e6f744275636b65744f776e65720001049c4163636f756e74206973206e6f7420746865206f776e6572206f6620746865206275636b65742e644e6f436f72726573706f6e64696e67436f6c6c656374696f6e000204dd014e6f20636f6c6c656374696f6e20636f72726573706f6e64696e6720746f20746865206275636b65742e2043616c6c20607570646174655f6275636b65745f70726976616379602066726f6d207468652066696c652073797374656d2070616c6c657420746f206d616b6520697420707269766174652e60436f6e766572744279746573546f426f756e6465645665630003049c4661696c656420746f20636f6e7665727420627974657320746f2060426f756e64656456656360048054686520604572726f726020656e756d206f6620746869732070616c6c65742e7d070c2c70616c6c65745f6e66747314747970657344436f6c6c656374696f6e44657461696c7308244163636f756e7449640100384465706f73697442616c616e63650118001801146f776e65720001244163636f756e7449640001346f776e65725f6465706f7369741801384465706f73697442616c616e63650001146974656d7310010c7533320001386974656d5f6d657461646174617310010c7533320001306974656d5f636f6e6669677310010c7533320001286174747269627574657310010c753332000081070000040c001010008507000004080010008907000004081000008d070c2c70616c6c65745f6e66747314747970657320426974466c616773040454019107000400080138436f6c6c656374696f6e526f6c65000091070c2c70616c6c65745f6e66747314747970657338436f6c6c656374696f6e526f6c6500010c184973737565720001001c467265657a65720002001441646d696e0004000095070c2c70616c6c65745f6e6674731474797065732c4974656d44657461696c730c244163636f756e74496401001c4465706f73697401990724417070726f76616c73019d07000c01146f776e65720001244163636f756e744964000124617070726f76616c739d070124417070726f76616c7300011c6465706f7369749907011c4465706f736974000099070c2c70616c6c65745f6e6674731474797065732c4974656d4465706f73697408384465706f73697442616c616e63650118244163636f756e74496401000008011c6163636f756e740001244163636f756e744964000118616d6f756e741801384465706f73697442616c616e636500009d070c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b01000456011502045300000400a107013842547265654d61703c4b2c20563e0000a107042042547265654d617008044b01000456011502000400a507000000a507000002a90700a9070000040800150200ad070c2c70616c6c65745f6e66747314747970657348436f6c6c656374696f6e4d65746164617461081c4465706f73697401182c537472696e674c696d6974000008011c6465706f73697418011c4465706f73697400011064617461bd02016c426f756e6465645665633c75382c20537472696e674c696d69743e0000b1070c2c70616c6c65745f6e667473147479706573304974656d4d65746164617461081c4465706f73697401b5072c537472696e674c696d6974000008011c6465706f736974b507011c4465706f73697400011064617461bd02016c426f756e6465645665633c75382c20537472696e674c696d69743e0000b5070c2c70616c6c65745f6e6674731474797065734c4974656d4d657461646174614465706f73697408384465706f73697442616c616e63650118244163636f756e74496401000008011c6163636f756e749c01444f7074696f6e3c4163636f756e7449643e000118616d6f756e741801384465706f73697442616c616e63650000b90700000410101502c902c50200bd0700000408bd02c10700c1070c2c70616c6c65745f6e667473147479706573404174747269627574654465706f73697408384465706f73697442616c616e63650118244163636f756e74496401000008011c6163636f756e749c01444f7074696f6e3c4163636f756e7449643e000118616d6f756e741801384465706f73697442616c616e63650000c50700000408189c00c9070c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e64656442547265655365740804540100045300000400cd07012c42547265655365743c543e0000cd07042042547265655365740404540100000400a4000000d1070c2c70616c6c65745f6e6674731474797065732c50656e64696e67537761701030436f6c6c656374696f6e49640110184974656d49640110584974656d507269636557697468446972656374696f6e01d10220446561646c696e65011000100148646573697265645f636f6c6c656374696f6e100130436f6c6c656374696f6e4964000130646573697265645f6974656d150201384f7074696f6e3c4974656d49643e0001147072696365cd0201784f7074696f6e3c4974656d507269636557697468446972656374696f6e3e000120646561646c696e65100120446561646c696e650000d5070c2c70616c6c65745f6e66747314747970657320426974466c61677304045401d90700040030013450616c6c6574466561747572650000d9070c2c70616c6c65745f6e6674731474797065733450616c6c6574466561747572650001101c54726164696e67000100284174747269627574657300020024417070726f76616c7300040014537761707300080000dd070c2c70616c6c65745f6e6674731870616c6c6574144572726f720804540004490001b4304e6f5065726d697373696f6e000004e8546865207369676e696e67206163636f756e7420686173206e6f207065726d697373696f6e20746f20646f20746865206f7065726174696f6e2e44556e6b6e6f776e436f6c6c656374696f6e0001047454686520676976656e206974656d20494420697320756e6b6e6f776e2e34416c7265616479457869737473000204b8546865206974656d2049442068617320616c7265616479206265656e207573656420666f7220616e206974656d2e3c417070726f76616c45787069726564000304390154686520617070726f76616c20686164206120646561646c696e65207468617420657870697265642c20736f2074686520617070726f76616c2069736e27742076616c696420616e796d6f72652e2857726f6e674f776e6572000404e8546865206f776e6572207475726e6564206f757420746f20626520646966666572656e7420746f2077686174207761732065787065637465642e284261645769746e6573730005041501546865207769746e657373206461746120676976656e20646f6573206e6f74206d61746368207468652063757272656e74207374617465206f662074686520636861696e2e44436f6c6c656374696f6e4964496e5573650006047c436f6c6c656374696f6e20494420697320616c72656164792074616b656e2e504974656d734e6f6e5472616e7366657261626c65000704c84974656d732077697468696e207468617420636f6c6c656374696f6e20617265206e6f6e2d7472616e7366657261626c652e2c4e6f7444656c65676174650008049c5468652070726f7669646564206163636f756e74206973206e6f7420612064656c65676174652e3457726f6e6744656c6567617465000904f45468652064656c6567617465207475726e6564206f757420746f20626520646966666572656e7420746f2077686174207761732065787065637465642e28556e617070726f766564000a04c44e6f20617070726f76616c20657869737473207468617420776f756c6420616c6c6f7720746865207472616e736665722e28556e6163636570746564000b041901546865206e616d6564206f776e657220686173206e6f74207369676e6564206f776e65727368697020616363657074616e6365206f662074686520636f6c6c656374696f6e2e284974656d4c6f636b6564000c0498546865206974656d206973206c6f636b656420286e6f6e2d7472616e7366657261626c65292e504c6f636b65644974656d41747472696275746573000d04744974656d2773206174747269627574657320617265206c6f636b65642e684c6f636b6564436f6c6c656374696f6e41747472696275746573000e048c436f6c6c656374696f6e2773206174747269627574657320617265206c6f636b65642e484c6f636b65644974656d4d65746164617461000f04684974656d2773206d65746164617461206973206c6f636b65642e604c6f636b6564436f6c6c656374696f6e4d6574616461746100100480436f6c6c656374696f6e2773206d65746164617461206973206c6f636b65642e404d6178537570706c79526561636865640011046c416c6c206974656d732068617665206265656e206d696e7465642e3c4d6178537570706c794c6f636b6564001204b8546865206d617820737570706c79206973206c6f636b656420616e642063616e2774206265206368616e6765642e444d6178537570706c79546f6f536d616c6c00130449015468652070726f7669646564206d617820737570706c79206973206c657373207468616e20746865206e756d626572206f66206974656d73206120636f6c6c656374696f6e20616c7265616479206861732e2c556e6b6e6f776e4974656d0014047454686520676976656e206974656d20494420697320756e6b6e6f776e2e2c556e6b6e6f776e537761700015044c5377617020646f65736e27742065786973742e404d657461646174614e6f74466f756e640016048c54686520676976656e206974656d20686173206e6f206d65746164617461207365742e444174747269627574654e6f74466f756e64001704985468652070726f7669646564206174747269627574652063616e277420626520666f756e642e284e6f74466f7253616c65001804544974656d206973206e6f7420666f722073616c652e24426964546f6f4c6f77001904705468652070726f76696465642062696420697320746f6f206c6f772e5052656163686564417070726f76616c4c696d6974001a04a0546865206974656d2068617320726561636865642069747320617070726f76616c206c696d69742e3c446561646c696e6545787069726564001b048454686520646561646c696e652068617320616c726561647920657870697265642e3457726f6e674475726174696f6e001c043101546865206475726174696f6e2070726f76696465642073686f756c64206265206c657373207468616e206f7220657175616c20746f20604d6178446561646c696e654475726174696f6e602e384d6574686f6444697361626c6564001d04a8546865206d6574686f642069732064697361626c65642062792073797374656d2073657474696e67732e3057726f6e6753657474696e67001e04885468652070726f76696465642073657474696e672063616e2774206265207365742e58496e636f6e73697374656e744974656d436f6e666967001f0415014974656d277320636f6e66696720616c72656164792065786973747320616e642073686f756c6420626520657175616c20746f207468652070726f7669646564206f6e652e204e6f436f6e666967002004c8436f6e66696720666f72206120636f6c6c656374696f6e206f7220616e206974656d2063616e277420626520666f756e642e3c526f6c65734e6f74436c656172656400210470536f6d6520726f6c65732077657265206e6f7420636c65617265642e384d696e744e6f7453746172746564002204644d696e7420686173206e6f742073746172746564207965742e244d696e74456e6465640023045c4d696e742068617320616c726561647920656e6465642e38416c7265616479436c61696d6564002404c05468652070726f7669646564204974656d2077617320616c7265616479207573656420666f7220636c61696d696e672e34496e636f7272656374446174610025047c5468652070726f7669646564206461746120697320696e636f72726563742e2c57726f6e674f726967696e002604ac5468652065787472696e736963207761732073656e74206279207468652077726f6e67206f726967696e2e3857726f6e675369676e6174757265002704905468652070726f7669646564207369676e617475726520697320696e636f72726563742e44496e636f72726563744d65746164617461002804a05468652070726f7669646564206d65746164617461206d6967687420626520746f6f206c6f6e672e644d6178417474726962757465734c696d6974526561636865640029049c43616e277420736574206d6f7265206174747269627574657320706572206f6e652063616c6c2e3857726f6e674e616d657370616365002a04d05468652070726f7669646564206e616d6573706163652069736e277420737570706f7274656420696e20746869732063616c6c2e48436f6c6c656374696f6e4e6f74456d707479002b048c43616e27742064656c657465206e6f6e2d656d70747920636f6c6c656374696f6e732e3c5769746e6573735265717569726564002c0490546865207769746e65737320646174612073686f756c642062652070726f76696465642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ee107102873705f72756e74696d651c67656e657269634c756e636865636b65645f65787472696e73696348556e636865636b656445787472696e736963101c416464726573730189041043616c6c01a104245369676e617475726501f90514457874726101e50700040038000000e50700000428e907ed07f107f507f9070108050809080d08110800e90710306672616d655f73797374656d28657874656e73696f6e7354636865636b5f6e6f6e5f7a65726f5f73656e64657248436865636b4e6f6e5a65726f53656e64657204045400000000ed0710306672616d655f73797374656d28657874656e73696f6e7348636865636b5f737065635f76657273696f6e40436865636b5370656356657273696f6e04045400000000f10710306672616d655f73797374656d28657874656e73696f6e7340636865636b5f74785f76657273696f6e38436865636b547856657273696f6e04045400000000f50710306672616d655f73797374656d28657874656e73696f6e7334636865636b5f67656e6573697330436865636b47656e6573697304045400000000f90710306672616d655f73797374656d28657874656e73696f6e733c636865636b5f6d6f7274616c69747938436865636b4d6f7274616c69747904045400000400fd07010c4572610000fd07102873705f72756e74696d651c67656e657269630c6572610c4572610001010420496d6d6f7274616c0000001c4d6f7274616c31040008000001001c4d6f7274616c32040008000002001c4d6f7274616c33040008000003001c4d6f7274616c34040008000004001c4d6f7274616c35040008000005001c4d6f7274616c36040008000006001c4d6f7274616c37040008000007001c4d6f7274616c38040008000008001c4d6f7274616c3904000800000900204d6f7274616c313004000800000a00204d6f7274616c313104000800000b00204d6f7274616c313204000800000c00204d6f7274616c313304000800000d00204d6f7274616c313404000800000e00204d6f7274616c313504000800000f00204d6f7274616c313604000800001000204d6f7274616c313704000800001100204d6f7274616c313804000800001200204d6f7274616c313904000800001300204d6f7274616c323004000800001400204d6f7274616c323104000800001500204d6f7274616c323204000800001600204d6f7274616c323304000800001700204d6f7274616c323404000800001800204d6f7274616c323504000800001900204d6f7274616c323604000800001a00204d6f7274616c323704000800001b00204d6f7274616c323804000800001c00204d6f7274616c323904000800001d00204d6f7274616c333004000800001e00204d6f7274616c333104000800001f00204d6f7274616c333204000800002000204d6f7274616c333304000800002100204d6f7274616c333404000800002200204d6f7274616c333504000800002300204d6f7274616c333604000800002400204d6f7274616c333704000800002500204d6f7274616c333804000800002600204d6f7274616c333904000800002700204d6f7274616c343004000800002800204d6f7274616c343104000800002900204d6f7274616c343204000800002a00204d6f7274616c343304000800002b00204d6f7274616c343404000800002c00204d6f7274616c343504000800002d00204d6f7274616c343604000800002e00204d6f7274616c343704000800002f00204d6f7274616c343804000800003000204d6f7274616c343904000800003100204d6f7274616c353004000800003200204d6f7274616c353104000800003300204d6f7274616c353204000800003400204d6f7274616c353304000800003500204d6f7274616c353404000800003600204d6f7274616c353504000800003700204d6f7274616c353604000800003800204d6f7274616c353704000800003900204d6f7274616c353804000800003a00204d6f7274616c353904000800003b00204d6f7274616c363004000800003c00204d6f7274616c363104000800003d00204d6f7274616c363204000800003e00204d6f7274616c363304000800003f00204d6f7274616c363404000800004000204d6f7274616c363504000800004100204d6f7274616c363604000800004200204d6f7274616c363704000800004300204d6f7274616c363804000800004400204d6f7274616c363904000800004500204d6f7274616c373004000800004600204d6f7274616c373104000800004700204d6f7274616c373204000800004800204d6f7274616c373304000800004900204d6f7274616c373404000800004a00204d6f7274616c373504000800004b00204d6f7274616c373604000800004c00204d6f7274616c373704000800004d00204d6f7274616c373804000800004e00204d6f7274616c373904000800004f00204d6f7274616c383004000800005000204d6f7274616c383104000800005100204d6f7274616c383204000800005200204d6f7274616c383304000800005300204d6f7274616c383404000800005400204d6f7274616c383504000800005500204d6f7274616c383604000800005600204d6f7274616c383704000800005700204d6f7274616c383804000800005800204d6f7274616c383904000800005900204d6f7274616c393004000800005a00204d6f7274616c393104000800005b00204d6f7274616c393204000800005c00204d6f7274616c393304000800005d00204d6f7274616c393404000800005e00204d6f7274616c393504000800005f00204d6f7274616c393604000800006000204d6f7274616c393704000800006100204d6f7274616c393804000800006200204d6f7274616c393904000800006300244d6f7274616c31303004000800006400244d6f7274616c31303104000800006500244d6f7274616c31303204000800006600244d6f7274616c31303304000800006700244d6f7274616c31303404000800006800244d6f7274616c31303504000800006900244d6f7274616c31303604000800006a00244d6f7274616c31303704000800006b00244d6f7274616c31303804000800006c00244d6f7274616c31303904000800006d00244d6f7274616c31313004000800006e00244d6f7274616c31313104000800006f00244d6f7274616c31313204000800007000244d6f7274616c31313304000800007100244d6f7274616c31313404000800007200244d6f7274616c31313504000800007300244d6f7274616c31313604000800007400244d6f7274616c31313704000800007500244d6f7274616c31313804000800007600244d6f7274616c31313904000800007700244d6f7274616c31323004000800007800244d6f7274616c31323104000800007900244d6f7274616c31323204000800007a00244d6f7274616c31323304000800007b00244d6f7274616c31323404000800007c00244d6f7274616c31323504000800007d00244d6f7274616c31323604000800007e00244d6f7274616c31323704000800007f00244d6f7274616c31323804000800008000244d6f7274616c31323904000800008100244d6f7274616c31333004000800008200244d6f7274616c31333104000800008300244d6f7274616c31333204000800008400244d6f7274616c31333304000800008500244d6f7274616c31333404000800008600244d6f7274616c31333504000800008700244d6f7274616c31333604000800008800244d6f7274616c31333704000800008900244d6f7274616c31333804000800008a00244d6f7274616c31333904000800008b00244d6f7274616c31343004000800008c00244d6f7274616c31343104000800008d00244d6f7274616c31343204000800008e00244d6f7274616c31343304000800008f00244d6f7274616c31343404000800009000244d6f7274616c31343504000800009100244d6f7274616c31343604000800009200244d6f7274616c31343704000800009300244d6f7274616c31343804000800009400244d6f7274616c31343904000800009500244d6f7274616c31353004000800009600244d6f7274616c31353104000800009700244d6f7274616c31353204000800009800244d6f7274616c31353304000800009900244d6f7274616c31353404000800009a00244d6f7274616c31353504000800009b00244d6f7274616c31353604000800009c00244d6f7274616c31353704000800009d00244d6f7274616c31353804000800009e00244d6f7274616c31353904000800009f00244d6f7274616c3136300400080000a000244d6f7274616c3136310400080000a100244d6f7274616c3136320400080000a200244d6f7274616c3136330400080000a300244d6f7274616c3136340400080000a400244d6f7274616c3136350400080000a500244d6f7274616c3136360400080000a600244d6f7274616c3136370400080000a700244d6f7274616c3136380400080000a800244d6f7274616c3136390400080000a900244d6f7274616c3137300400080000aa00244d6f7274616c3137310400080000ab00244d6f7274616c3137320400080000ac00244d6f7274616c3137330400080000ad00244d6f7274616c3137340400080000ae00244d6f7274616c3137350400080000af00244d6f7274616c3137360400080000b000244d6f7274616c3137370400080000b100244d6f7274616c3137380400080000b200244d6f7274616c3137390400080000b300244d6f7274616c3138300400080000b400244d6f7274616c3138310400080000b500244d6f7274616c3138320400080000b600244d6f7274616c3138330400080000b700244d6f7274616c3138340400080000b800244d6f7274616c3138350400080000b900244d6f7274616c3138360400080000ba00244d6f7274616c3138370400080000bb00244d6f7274616c3138380400080000bc00244d6f7274616c3138390400080000bd00244d6f7274616c3139300400080000be00244d6f7274616c3139310400080000bf00244d6f7274616c3139320400080000c000244d6f7274616c3139330400080000c100244d6f7274616c3139340400080000c200244d6f7274616c3139350400080000c300244d6f7274616c3139360400080000c400244d6f7274616c3139370400080000c500244d6f7274616c3139380400080000c600244d6f7274616c3139390400080000c700244d6f7274616c3230300400080000c800244d6f7274616c3230310400080000c900244d6f7274616c3230320400080000ca00244d6f7274616c3230330400080000cb00244d6f7274616c3230340400080000cc00244d6f7274616c3230350400080000cd00244d6f7274616c3230360400080000ce00244d6f7274616c3230370400080000cf00244d6f7274616c3230380400080000d000244d6f7274616c3230390400080000d100244d6f7274616c3231300400080000d200244d6f7274616c3231310400080000d300244d6f7274616c3231320400080000d400244d6f7274616c3231330400080000d500244d6f7274616c3231340400080000d600244d6f7274616c3231350400080000d700244d6f7274616c3231360400080000d800244d6f7274616c3231370400080000d900244d6f7274616c3231380400080000da00244d6f7274616c3231390400080000db00244d6f7274616c3232300400080000dc00244d6f7274616c3232310400080000dd00244d6f7274616c3232320400080000de00244d6f7274616c3232330400080000df00244d6f7274616c3232340400080000e000244d6f7274616c3232350400080000e100244d6f7274616c3232360400080000e200244d6f7274616c3232370400080000e300244d6f7274616c3232380400080000e400244d6f7274616c3232390400080000e500244d6f7274616c3233300400080000e600244d6f7274616c3233310400080000e700244d6f7274616c3233320400080000e800244d6f7274616c3233330400080000e900244d6f7274616c3233340400080000ea00244d6f7274616c3233350400080000eb00244d6f7274616c3233360400080000ec00244d6f7274616c3233370400080000ed00244d6f7274616c3233380400080000ee00244d6f7274616c3233390400080000ef00244d6f7274616c3234300400080000f000244d6f7274616c3234310400080000f100244d6f7274616c3234320400080000f200244d6f7274616c3234330400080000f300244d6f7274616c3234340400080000f400244d6f7274616c3234350400080000f500244d6f7274616c3234360400080000f600244d6f7274616c3234370400080000f700244d6f7274616c3234380400080000f800244d6f7274616c3234390400080000f900244d6f7274616c3235300400080000fa00244d6f7274616c3235310400080000fb00244d6f7274616c3235320400080000fc00244d6f7274616c3235330400080000fd00244d6f7274616c3235340400080000fe00244d6f7274616c3235350400080000ff0000010810306672616d655f73797374656d28657874656e73696f6e732c636865636b5f6e6f6e636528436865636b4e6f6e636504045400000400cc0120543a3a4e6f6e63650000050810306672616d655f73797374656d28657874656e73696f6e7330636865636b5f7765696768742c436865636b576569676874040454000000000908086870616c6c65745f7472616e73616374696f6e5f7061796d656e74604368617267655472616e73616374696f6e5061796d656e7404045400000400dc013042616c616e63654f663c543e00000d0808a463756d756c75735f7072696d6974697665735f73746f726167655f7765696768745f7265636c61696d5053746f726167655765696768745265636c61696d04045400000000110808746672616d655f6d657461646174615f686173685f657874656e73696f6e44436865636b4d657461646174614861736804045400000401106d6f6465150801104d6f64650000150808746672616d655f6d657461646174615f686173685f657874656e73696f6e104d6f64650001082044697361626c65640000001c456e61626c6564000100001908084c73746f726167655f6875625f72756e74696d651c52756e74696d6500000000601853797374656d011853797374656d481c4163636f756e7401010402000c4101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008004e8205468652066756c6c206163636f756e7420696e666f726d6174696f6e20666f72206120706172746963756c6172206163636f756e742049442e3845787472696e736963436f756e74000010040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e40496e686572656e74734170706c696564010020040004a4205768657468657220616c6c20696e686572656e74732068617665206265656e206170706c6965642e2c426c6f636b576569676874010024180000000000000488205468652063757272656e742077656967687420666f722074686520626c6f636b2e40416c6c45787472696e736963734c656e000010040004410120546f74616c206c656e6774682028696e2062797465732920666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e24426c6f636b486173680101040510348000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e3445787472696e736963446174610101040510380400043d012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e184e756d6265720100101000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801003480000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e1844696765737401003c040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e184576656e747301004c04001ca0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e001d01204e4f54453a20546865206974656d20697320756e626f756e6420616e642073686f756c64207468657265666f7265206e657665722062652072656164206f6e20636861696e2ed020497420636f756c64206f746865727769736520696e666c6174652074686520506f562073697a65206f66206120626c6f636b2e002d01204576656e747320686176652061206c6172676520696e2d6d656d6f72792073697a652e20426f7820746865206576656e747320746f206e6f7420676f206f75742d6f662d6d656d6f7279fc206a75737420696e206361736520736f6d656f6e65207374696c6c207265616473207468656d2066726f6d2077697468696e207468652072756e74696d652e284576656e74436f756e74010010100000000004b820546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e2c4576656e74546f70696373010104023441030400282501204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e646578657394206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e00510120416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e2054686973450120616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e64e420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e005901205468652076616c756520686173207468652074797065206028426c6f636b4e756d626572466f723c543e2c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573744d012074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b0101206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e484c61737452756e74696d65557067726164650000490304000455012053746f726573207468652060737065635f76657273696f6e6020616e642060737065635f6e616d6560206f66207768656e20746865206c6173742072756e74696d6520757067726164652068617070656e65642e545570677261646564546f553332526566436f756e740100200400044d012054727565206966207765206861766520757067726164656420736f207468617420607479706520526566436f756e74602069732060753332602e2046616c7365202864656661756c7429206966206e6f742e605570677261646564546f547269706c65526566436f756e740100200400085d012054727565206966207765206861766520757067726164656420736f2074686174204163636f756e74496e666f20636f6e7461696e73207468726565207479706573206f662060526566436f756e74602e2046616c736548202864656661756c7429206966206e6f742e38457865637574696f6e506861736500003d03040004882054686520657865637574696f6e207068617365206f662074686520626c6f636b2e44417574686f72697a65645570677261646500005103040004b82060536f6d6560206966206120636f6465207570677261646520686173206265656e20617574686f72697a65642e01550301581830426c6f636b57656967687473610389010700f2052a01000b00204aa9d101020040010265cd1d00010bc0560def45010200e000010b0098f73e5d010200f0000100000265cd1d00010bc0de5f59ba0102003001010b00204aa9d1010200400101070088526a74020050000265cd1d0000000004d020426c6f636b20262065787472696e7369637320776569676874733a20626173652076616c75657320616e64206c696d6974732e2c426c6f636b4c656e67746871033000003c00000050000000500004a820546865206d6178696d756d206c656e677468206f66206120626c6f636b2028696e206279746573292e38426c6f636b48617368436f756e74101000100000045501204d6178696d756d206e756d626572206f6620626c6f636b206e756d62657220746f20626c6f636b2068617368206d617070696e677320746f206b65657020286f6c64657374207072756e6564206669727374292e20446257656967687479034040787d010000000000e1f505000000000409012054686520776569676874206f662072756e74696d65206461746162617365206f7065726174696f6e73207468652072756e74696d652063616e20696e766f6b652e1c56657273696f6e7d03a9044c73746f726167652d6875622d72756e74696d654c73746f726167652d6875622d72756e74696d6501000000010000000000000050d7bdd8a272ca0d6501000000dd718d5cc53262d401000000df6acb689907609b0500000037e397fc7c91f5e40200000040fe3ad401f8959a06000000d2bc9897eed08f1503000000f78b278be53f454c02000000ab3c0572291feb8b01000000bc9d89904f5b923f0100000037c8bb1350a9a2a804000000f3ff14d5ab527059030000006ff52ee858e6c5bd0100000091b1c8b16328eb92010000009ffb505aa738d69c01000000ea93e3f16f3d696202000000fbc577b9d747efd601000000b9e7717ace5b45cd010000001078d7ac24a07b0e010000000be7208954c7c6c901000000966604ffe78eb0920100000001000000010484204765742074686520636861696e277320696e2d636f64652076657273696f6e2e28535335385072656669788d03082a0014a8205468652064657369676e61746564205353353820707265666978206f66207468697320636861696e2e0039012054686973207265706c6163657320746865202273733538466f726d6174222070726f7065727479206465636c6172656420696e2074686520636861696e20737065632e20526561736f6e20697331012074686174207468652072756e74696d652073686f756c64206b6e6f772061626f7574207468652070726566697820696e206f7264657220746f206d616b6520757365206f662069742061737020616e206964656e746966696572206f662074686520636861696e2e019103003c50617261636861696e53797374656d013c50617261636861696e53797374656d6044556e696e636c756465645365676d656e74010095030400184901204c617465737420696e636c7564656420626c6f636b2064657363656e64616e7473207468652072756e74696d652061636365707465642e20496e206f7468657220776f7264732c20746865736520617265610120616e636573746f7273206f66207468652063757272656e746c7920657865637574696e6720626c6f636b2077686963682068617665206e6f74206265656e20696e636c7564656420696e20746865206f627365727665644c2072656c61792d636861696e2073746174652e00750120546865207365676d656e74206c656e677468206973206c696d69746564206279207468652063617061636974792072657475726e65642066726f6d20746865205b60436f6e73656e737573486f6f6b605d20636f6e666967757265643c20696e207468652070616c6c65742e6c41676772656761746564556e696e636c756465645365676d656e740000bd0304000c69012053746f72616765206669656c642074686174206b6565707320747261636b206f662062616e64776964746820757365642062792074686520756e696e636c75646564207365676d656e7420616c6f6e672077697468207468652d01206c61746573742048524d502077617465726d61726b2e205573656420666f72206c696d6974696e672074686520616363657074616e6365206f66206e657720626c6f636b73207769746890207265737065637420746f2072656c617920636861696e20636f6e73747261696e74732e5450656e64696e6756616c69646174696f6e436f6465010038040018590120496e2063617365206f662061207363686564756c656420757067726164652c20746869732073746f72616765206669656c6420636f6e7461696e73207468652076616c69646174696f6e20636f646520746f20626524206170706c6965642e003d0120417320736f6f6e206173207468652072656c617920636861696e2067697665732075732074686520676f2d6168656164207369676e616c2c2077652077696c6c206f7665727772697465207468657101205b603a636f6465605d5b73705f636f72653a3a73746f726167653a3a77656c6c5f6b6e6f776e5f6b6579733a3a434f44455d2077686963682077696c6c20726573756c7420746865206e65787420626c6f636b2070726f636573730901207769746820746865206e65772076616c69646174696f6e20636f64652e205468697320636f6e636c756465732074686520757067726164652070726f636573732e444e657756616c69646174696f6e436f64650000380400145d012056616c69646174696f6e20636f6465207468617420697320736574206279207468652070617261636861696e20616e6420697320746f20626520636f6d6d756e69636174656420746f20636f6c6c61746f7220616e647820636f6e73657175656e746c79207468652072656c61792d636861696e2e00650120546869732077696c6c20626520636c656172656420696e20606f6e5f696e697469616c697a6560206f662065616368206e657720626c6f636b206966206e6f206f746865722070616c6c657420616c7265616479207365742c207468652076616c75652e3856616c69646174696f6e446174610000c10304000cd020546865205b6050657273697374656456616c69646174696f6e44617461605d2073657420666f72207468697320626c6f636b2e2d0120546869732076616c756520697320657870656374656420746f20626520736574206f6e6c79206f6e63652070657220626c6f636b20616e642069742773206e657665722073746f7265643420696e2074686520747269652e5044696453657456616c69646174696f6e436f6465010020040004e02057657265207468652076616c69646174696f6e20646174612073657420746f206e6f74696679207468652072656c617920636861696e3f644c61737452656c6179436861696e426c6f636b4e756d62657201001010000000000c1d01205468652072656c617920636861696e20626c6f636b206e756d626572206173736f636961746564207769746820746865206c6173742070617261636861696e20626c6f636b2e00882054686973206973207570646174656420696e20606f6e5f66696e616c697a65602e60557067726164655265737472696374696f6e5369676e616c0100c90304001c750120416e206f7074696f6e20776869636820696e64696361746573206966207468652072656c61792d636861696e20726573747269637473207369676e616c6c696e6720612076616c69646174696f6e20636f646520757067726164652e610120496e206f7468657220776f7264732c20696620746869732069732060536f6d656020616e64205b604e657756616c69646174696f6e436f6465605d2069732060536f6d6560207468656e207468652070726f64756365646c2063616e6469646174652077696c6c20626520696e76616c69642e00710120546869732073746f72616765206974656d2069732061206d6972726f72206f662074686520636f72726573706f6e64696e672076616c756520666f72207468652063757272656e742070617261636861696e2066726f6d207468656d012072656c61792d636861696e2e20546869732076616c756520697320657068656d6572616c207768696368206d65616e7320697420646f65736e277420686974207468652073746f726167652e20546869732076616c756520697360207365742061667465722074686520696e686572656e742e3855706772616465476f41686561640100b503040014dc204f7074696f6e616c207570677261646520676f2d6168656164207369676e616c2066726f6d207468652072656c61792d636861696e2e00710120546869732073746f72616765206974656d2069732061206d6972726f72206f662074686520636f72726573706f6e64696e672076616c756520666f72207468652063757272656e742070617261636861696e2066726f6d207468656d012072656c61792d636861696e2e20546869732076616c756520697320657068656d6572616c207768696368206d65616e7320697420646f65736e277420686974207468652073746f726167652e20546869732076616c756520697360207365742061667465722074686520696e686572656e742e3c52656c6179537461746550726f6f660000d103040018c4205468652073746174652070726f6f6620666f7220746865206c6173742072656c617920706172656e7420626c6f636b2e006d012054686973206669656c64206973206d65616e7420746f2062652075706461746564206561636820626c6f636b2077697468207468652076616c69646174696f6e206461746120696e686572656e742e205468657265666f72652c4d01206265666f72652070726f63657373696e67206f662074686520696e686572656e742c20652e672e20696e20606f6e5f696e697469616c697a656020746869732064617461206d6179206265207374616c652e00ac2054686973206461746120697320616c736f20616273656e742066726f6d207468652067656e657369732e5852656c6576616e744d6573736167696e6753746174650000d90304001c65012054686520736e617073686f74206f6620736f6d652073746174652072656c6174656420746f206d6573736167696e672072656c6576616e7420746f207468652063757272656e742070617261636861696e2061732070657248207468652072656c617920706172656e742e006d012054686973206669656c64206973206d65616e7420746f2062652075706461746564206561636820626c6f636b2077697468207468652076616c69646174696f6e206461746120696e686572656e742e205468657265666f72652c4d01206265666f72652070726f63657373696e67206f662074686520696e686572656e742c20652e672e20696e20606f6e5f696e697469616c697a656020746869732064617461206d6179206265207374616c652e00ac2054686973206461746120697320616c736f20616273656e742066726f6d207468652067656e657369732e44486f7374436f6e66696775726174696f6e0000ed030400182901205468652070617261636861696e20686f737420636f6e66696775726174696f6e207468617420776173206f627461696e65642066726f6d207468652072656c617920706172656e742e006d012054686973206669656c64206973206d65616e7420746f2062652075706461746564206561636820626c6f636b2077697468207468652076616c69646174696f6e206461746120696e686572656e742e205468657265666f72652c4d01206265666f72652070726f63657373696e67206f662074686520696e686572656e742c20652e672e20696e20606f6e5f696e697469616c697a656020746869732064617461206d6179206265207374616c652e00ac2054686973206461746120697320616c736f20616273656e742066726f6d207468652067656e657369732e384c617374446d714d7163486561640100f50380000000000000000000000000000000000000000000000000000000000000000010f420546865206c61737420646f776e77617264206d65737361676520717565756520636861696e20686561642077652068617665206f627365727665642e00650120546869732076616c7565206973206c6f61646564206265666f726520616e642073617665642061667465722070726f63657373696e6720696e626f756e6420646f776e77617264206d65737361676573206361727269656460206279207468652073797374656d20696e686572656e742e404c61737448726d704d716348656164730100f903040010490120546865206d65737361676520717565756520636861696e2068656164732077652068617665206f62736572766564207065722065616368206368616e6e656c20696e636f6d696e67206368616e6e656c2e00650120546869732076616c7565206973206c6f61646564206265666f726520616e642073617665642061667465722070726f63657373696e6720696e626f756e6420646f776e77617264206d65737361676573206361727269656460206279207468652073797374656d20696e686572656e742e6450726f636573736564446f776e776172644d6573736167657301001010000000000cc8204e756d626572206f6620646f776e77617264206d657373616765732070726f63657373656420696e206120626c6f636b2e00ec20546869732077696c6c20626520636c656172656420696e20606f6e5f696e697469616c697a6560206f662065616368206e657720626c6f636b2e3448726d7057617465726d61726b01001010000000000ca02048524d502077617465726d61726b2074686174207761732073657420696e206120626c6f636b2e00ec20546869732077696c6c20626520636c656172656420696e20606f6e5f696e697469616c697a6560206f662065616368206e657720626c6f636b2e5048726d704f7574626f756e644d657373616765730100050404000ca42048524d50206d65737361676573207468617420776572652073656e7420696e206120626c6f636b2e00ec20546869732077696c6c20626520636c656172656420696e20606f6e5f696e697469616c697a6560206f662065616368206e657720626c6f636b2e385570776172644d6573736167657301006d0204000cac20557077617264206d65737361676573207468617420776572652073656e7420696e206120626c6f636b2e00ec20546869732077696c6c20626520636c656172656420696e20606f6e5f696e697469616c697a6560206f662065616368206e657720626c6f636b2e5450656e64696e675570776172644d6573736167657301006d02040004310120557077617264206d65737361676573207468617420617265207374696c6c2070656e64696e6720616e64206e6f74207965742073656e6420746f207468652072656c617920636861696e2e5c55707761726444656c6976657279466565466163746f7201000d0440000064a7b3b6e00d000000000000000004e42054686520666163746f7220746f206d756c7469706c792074686520626173652064656c69766572792066656520627920666f7220554d502e84416e6e6f756e63656448726d704d6573736167657350657243616e646964617465010010100000000008650120546865206e756d626572206f662048524d50206d65737361676573207765206f6273657276656420696e20606f6e5f696e697469616c697a656020616e64207468757320757365642074686174206e756d62657220666f72f020616e6e6f756e63696e672074686520776569676874206f6620606f6e5f696e697469616c697a656020616e6420606f6e5f66696e616c697a65602e68526573657276656458636d705765696768744f766572726964650000280400085d01205468652077656967687420776520726573657276652061742074686520626567696e6e696e67206f662074686520626c6f636b20666f722070726f63657373696e672058434d50206d657373616765732e2054686973b8206f76657272696465732074686520616d6f756e742073657420696e2074686520436f6e6669672074726169742e645265736572766564446d705765696768744f766572726964650000280400085901205468652077656967687420776520726573657276652061742074686520626567696e6e696e67206f662074686520626c6f636b20666f722070726f63657373696e6720444d50206d657373616765732e2054686973b8206f76657272696465732074686520616d6f756e742073657420696e2074686520436f6e6669672074726169742e60437573746f6d56616c69646174696f6e486561644461746100003804000c2901204120637573746f6d2068656164206461746120746861742073686f756c642062652072657475726e656420617320726573756c74206f66206076616c69646174655f626c6f636b602e00110120536565206050616c6c65743a3a7365745f637573746f6d5f76616c69646174696f6e5f686561645f646174616020666f72206d6f726520696e666f726d6174696f6e2e011104017c042853656c66506172614964e90110e803000004b82052657475726e73207468652070617261636861696e204944207765206172652072756e6e696e6720776974682e013504012454696d657374616d70012454696d657374616d70080c4e6f7701003020000000000000000004a0205468652063757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e24446964557064617465010020040010d82057686574686572207468652074696d657374616d7020686173206265656e207570646174656420696e207468697320626c6f636b2e00550120546869732076616c7565206973207570646174656420746f206074727565602075706f6e207375636365737366756c207375626d697373696f6e206f6620612074696d657374616d702062792061206e6f64652e4501204974206973207468656e20636865636b65642061742074686520656e64206f66206561636820626c6f636b20657865637574696f6e20696e2074686520606f6e5f66696e616c697a656020686f6f6b2e0139040004344d696e696d756d506572696f6430200000000000000000188c20546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e004d012042652061776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a20706572696f6420746861742074686520626c6f636b2070726f64756374696f6e4901206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c2067656e6572616c6c7920776f726b2077697468207468697320746f61012064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20466f72206578616d706c652c20696e2074686520417572612070616c6c65742069742077696c6c20626520646f75626c6520746869737020706572696f64206f6e2064656661756c742073657474696e67732e00023450617261636861696e496e666f013450617261636861696e496e666f042c50617261636861696e49640100e901106400000000013d04000000032042616c616e636573012042616c616e6365731c34546f74616c49737375616e6365010018400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e40496e61637469766549737375616e636501001840000000000000000000000000000000000409012054686520746f74616c20756e697473206f66206f75747374616e64696e672064656163746976617465642062616c616e636520696e207468652073797374656d2e1c4163636f756e74010104020014010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080600901205468652042616c616e6365732070616c6c6574206578616d706c65206f662073746f72696e67207468652062616c616e6365206f6620616e206163636f756e742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b19022020202074797065204163636f756e7453746f7265203d2053746f726167654d61705368696d3c53656c663a3a4163636f756e743c52756e74696d653e2c206672616d655f73797374656d3a3a50726f76696465723c52756e74696d653e2c204163636f756e7449642c2053656c663a3a4163636f756e74446174613c42616c616e63653e3e0c20207d102060606000150120596f752063616e20616c736f2073746f7265207468652062616c616e6365206f6620616e206163636f756e7420696e20746865206053797374656d602070616c6c65742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b7420202074797065204163636f756e7453746f7265203d2053797374656d0c20207d102060606000510120427574207468697320636f6d657320776974682074726164656f6666732c2073746f72696e67206163636f756e742062616c616e63657320696e207468652073797374656d2070616c6c65742073746f7265736d0120606672616d655f73797374656d60206461746120616c6f6e677369646520746865206163636f756e74206461746120636f6e747261727920746f2073746f72696e67206163636f756e742062616c616e63657320696e207468652901206042616c616e636573602070616c6c65742c20776869636820757365732061206053746f726167654d61706020746f2073746f72652062616c616e6365732064617461206f6e6c792e4101204e4f54453a2054686973206973206f6e6c79207573656420696e207468652063617365207468617420746869732070616c6c6574206973207573656420746f2073746f72652062616c616e6365732e144c6f636b7301010402004104040010b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e2501204e4f54453a2053686f756c64206f6e6c79206265206163636573736564207768656e2073657474696e672c206368616e67696e6720616e642066726565696e672061206c6f636b2e00ad0120557365206f66206c6f636b73206973206465707265636174656420696e206661766f7572206f6620667265657a65732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f602052657365727665730101040200510404000ca4204e616d6564207265736572766573206f6e20736f6d65206163636f756e742062616c616e6365732e00b10120557365206f66207265736572766573206973206465707265636174656420696e206661766f7572206f6620686f6c64732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f6014486f6c647301010402005d040400046c20486f6c6473206f6e206163636f756e742062616c616e6365732e1c467265657a6573010104020079040400048820467265657a65206c6f636b73206f6e206163636f756e742062616c616e6365732e018504018410484578697374656e7469616c4465706f736974184000ca9a3b00000000000000000000000020410120546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e204d5553542042452047524541544552205448414e205a45524f2100590120496620796f75202a7265616c6c792a206e65656420697420746f206265207a65726f2c20796f752063616e20656e61626c652074686520666561747572652060696e7365637572655f7a65726f5f65646020666f72610120746869732070616c6c65742e20486f77657665722c20796f7520646f20736f20617420796f7572206f776e207269736b3a20746869732077696c6c206f70656e2075702061206d616a6f7220446f5320766563746f722e590120496e206361736520796f752068617665206d756c7469706c6520736f7572636573206f662070726f7669646572207265666572656e6365732c20796f75206d617920616c736f2067657420756e65787065637465648c206265686176696f757220696620796f7520736574207468697320746f207a65726f2e00f020426f74746f6d206c696e653a20446f20796f757273656c662061206661766f757220616e64206d616b65206974206174206c65617374206f6e6521204d61784c6f636b7310103200000010f420546865206d6178696d756d206e756d626572206f66206c6f636b7320746861742073686f756c64206578697374206f6e20616e206163636f756e742edc204e6f74207374726963746c7920656e666f726365642c20627574207573656420666f722077656967687420657374696d6174696f6e2e00ad0120557365206f66206c6f636b73206973206465707265636174656420696e206661766f7572206f6620667265657a65732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f602c4d617852657365727665731010320000000c0d0120546865206d6178696d756d206e756d626572206f66206e616d656420726573657276657320746861742063616e206578697374206f6e20616e206163636f756e742e00b10120557365206f66207265736572766573206973206465707265636174656420696e206661766f7572206f6620686f6c64732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f60284d6178467265657a657310100000000004610120546865206d6178696d756d206e756d626572206f6620696e646976696475616c20667265657a65206c6f636b7320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e0195040a485472616e73616374696f6e5061796d656e7401485472616e73616374696f6e5061796d656e7408444e6578744665654d756c7469706c69657201000d0440000064a7b3b6e00d0000000000000000003853746f7261676556657273696f6e0100990404000000018c04604f7065726174696f6e616c4665654d756c7469706c696572080405545901204120666565206d756c7469706c69657220666f7220604f7065726174696f6e616c602065787472696e7369637320746f20636f6d7075746520227669727475616c207469702220746f20626f6f73742074686569722c20607072696f726974796000510120546869732076616c7565206973206d756c7469706c69656420627920746865206066696e616c5f6665656020746f206f627461696e206120227669727475616c20746970222074686174206973206c61746572f420616464656420746f20612074697020636f6d706f6e656e7420696e20726567756c617220607072696f72697479602063616c63756c6174696f6e732e4d01204974206d65616e732074686174206120604e6f726d616c60207472616e73616374696f6e2063616e2066726f6e742d72756e20612073696d696c61726c792d73697a656420604f7065726174696f6e616c6041012065787472696e736963202877697468206e6f20746970292c20627920696e636c7564696e672061207469702076616c75652067726561746572207468616e20746865207669727475616c207469702e003c20606060727573742c69676e6f726540202f2f20466f7220604e6f726d616c608c206c6574207072696f72697479203d207072696f726974795f63616c6328746970293b0054202f2f20466f7220604f7065726174696f6e616c601101206c6574207669727475616c5f746970203d2028696e636c7573696f6e5f666565202b2074697029202a204f7065726174696f6e616c4665654d756c7469706c6965723bc4206c6574207072696f72697479203d207072696f726974795f63616c6328746970202b207669727475616c5f746970293b1020606060005101204e6f746520746861742073696e636520776520757365206066696e616c5f6665656020746865206d756c7469706c696572206170706c69657320616c736f20746f2074686520726567756c61722060746970605d012073656e74207769746820746865207472616e73616374696f6e2e20536f2c206e6f74206f6e6c7920646f657320746865207472616e73616374696f6e206765742061207072696f726974792062756d702062617365646101206f6e207468652060696e636c7573696f6e5f666565602c2062757420776520616c736f20616d706c6966792074686520696d70616374206f662074697073206170706c69656420746f20604f7065726174696f6e616c6038207472616e73616374696f6e732e000b105375646f01105375646f040c4b6579000000040004842054686520604163636f756e74496460206f6620746865207375646f206b65792e019d040190000119060f28417574686f72736869700128417574686f72736869700418417574686f720000000400046420417574686f72206f662063757272656e7420626c6f636b2e000000001444436f6c6c61746f7253656c656374696f6e0144436f6c6c61746f7253656c656374696f6e1434496e76756c6e657261626c657301001d0604000411012054686520696e76756c6e657261626c652c207065726d697373696f6e656420636f6c6c61746f72732e2054686973206c697374206d75737420626520736f727465642e3443616e6469646174654c697374010021060400146901205468652028636f6d6d756e6974792c206c696d697465642920636f6c6c6174696f6e2063616e646964617465732e206043616e646964617465736020616e642060496e76756c6e657261626c6573602073686f756c6420626550206d757475616c6c79206578636c75736976652e0075012054686973206c69737420697320736f7274656420696e20617363656e64696e67206f72646572206279206465706f73697420616e64207768656e20746865206465706f736974732061726520657175616c2c20746865206c65617374a020726563656e746c79207570646174656420697320636f6e7369646572656420677265617465722e444c617374417574686f726564426c6f636b01010405001010000000000484204c61737420626c6f636b20617574686f72656420627920636f6c6c61746f722e444465736972656443616e6469646174657301001010000000000c782044657369726564206e756d626572206f662063616e646964617465732e00750120546869732073686f756c6420696465616c6c7920616c77617973206265206c657373207468616e205b60436f6e6669673a3a4d617843616e64696461746573605d20666f72207765696768747320746f20626520636f72726563742e3443616e646964616379426f6e6401001840000000000000000000000000000000000cb820466978656420616d6f756e7420746f206465706f73697420746f206265636f6d65206120636f6c6c61746f722e004101205768656e206120636f6c6c61746f722063616c6c7320606c656176655f696e74656e7460207468657920696d6d6564696174656c79207265636569766520746865206465706f736974206261636b2e01a50401a000012d06151c53657373696f6e011c53657373696f6e1c2856616c696461746f72730100a40400047c205468652063757272656e7420736574206f662076616c696461746f72732e3043757272656e74496e646578010010100000000004782043757272656e7420696e646578206f66207468652073657373696f6e2e345175657565644368616e676564010020040008390120547275652069662074686520756e6465726c79696e672065636f6e6f6d6963206964656e746974696573206f7220776569676874696e6720626568696e64207468652076616c696461746f7273a420686173206368616e67656420696e20746865207175657565642076616c696461746f72207365742e285175657565644b657973010031060400083d012054686520717565756564206b65797320666f7220746865206e6578742073657373696f6e2e205768656e20746865206e6578742073657373696f6e20626567696e732c207468657365206b657973e02077696c6c206265207573656420746f2064657465726d696e65207468652076616c696461746f7227732073657373696f6e206b6579732e4844697361626c656456616c696461746f72730100c1020400148020496e6469636573206f662064697361626c65642076616c696461746f72732e003d01205468652076656320697320616c77617973206b65707420736f7274656420736f20746861742077652063616e2066696e642077686574686572206120676976656e2076616c696461746f722069733d012064697361626c6564207573696e672062696e617279207365617263682e204974206765747320636c6561726564207768656e20606f6e5f73657373696f6e5f656e64696e67602072657475726e73642061206e657720736574206f66206964656e7469746965732e204e6578744b6579730001040500ad040400049c20546865206e6578742073657373696f6e206b65797320666f7220612076616c696461746f722e204b65794f776e657200010405390600040004090120546865206f776e6572206f662061206b65792e20546865206b65792069732074686520604b657954797065496460202b2074686520656e636f646564206b65792e01a90401a800014106161041757261011041757261082c417574686f726974696573010045060400046c205468652063757272656e7420617574686f72697479207365742e2c43757272656e74536c6f7401004d062000000000000000000c80205468652063757272656e7420736c6f74206f66207468697320626c6f636b2e009420546869732077696c6c2062652073657420696e20606f6e5f696e697469616c697a65602e00000430536c6f744475726174696f6e30207017000000000000100d012054686520736c6f74206475726174696f6e20417572612073686f756c642072756e20776974682c2065787072657373656420696e206d696c6c697365636f6e64732e3d0120546865206566666563746976652076616c7565206f66207468697320747970652073686f756c64206e6f74206368616e6765207768696c652074686520636861696e2069732072756e6e696e672e00350120466f72206261636b776172647320636f6d7061746962696c6974792065697468657220757365205b604d696e696d756d506572696f6454696d657354776f605d206f72206120636f6e73742e00171c41757261457874011c41757261457874082c417574686f72697469657301004506040014942053657276657320617320636163686520666f722074686520617574686f7269746965732e0071012054686520617574686f72697469657320696e204175526120617265206f7665727772697474656e20696e20606f6e5f696e697469616c697a6560207768656e2077652073776974636820746f2061206e65772073657373696f6e2c5d0120627574207765207265717569726520746865206f6c6420617574686f72697469657320746f2076657269667920746865207365616c207768656e2076616c69646174696e67206120506f562e20546869732077696c6c0d0120616c77617973206265207570646174656420746f20746865206c6174657374204175526120617574686f72697469657320696e20606f6e5f66696e616c697a65602e20536c6f74496e666f0000510604000cd82043757272656e7420736c6f742070616972656420776974682061206e756d626572206f6620617574686f72656420626c6f636b732e00982055706461746564206f6e206561636820626c6f636b20696e697469616c697a6174696f6e2e00000000182458636d705175657565012458636d7051756575651c50496e626f756e6458636d7053757370656e646564010055060400200d01205468652073757370656e64656420696e626f756e642058434d50206368616e6e656c732e20416c6c206f746865727320617265206e6f742073757370656e6465642e00710120546869732069732061206053746f7261676556616c75656020696e7374656164206f662061206053746f726167654d6170602073696e636520776520657870656374206d756c7469706c652072656164732070657220626c6f636b690120746f20646966666572656e74206b65797320776974682061206f6e652062797465207061796c6f61642e205468652061636365737320746f2060426f756e6465644254726565536574602077696c6c2062652063616368656415012077697468696e2074686520626c6f636b20616e64207468657265666f7265206f6e6c7920696e636c75646564206f6e636520696e207468652070726f6f662073697a652e006501204e4f54453a2054686520506f562062656e63686d61726b696e672063616e6e6f74206b6e6f77207468697320616e642077696c6c206f7665722d657374696d6174652c20627574207468652061637475616c2070726f6f66442077696c6c20626520736d616c6c65722e484f7574626f756e6458636d70537461747573010061060400185d0120546865206e6f6e2d656d7074792058434d50206368616e6e656c7320696e206f72646572206f66206265636f6d696e67206e6f6e2d656d7074792c20616e642074686520696e646578206f6620746865206669727374510120616e64206c617374206f7574626f756e64206d6573736167652e204966207468652074776f20696e64696365732061726520657175616c2c207468656e20697420696e6469636174657320616e20656d707479590120717565756520616e64207468657265206d7573742062652061206e6f6e2d604f6b6020604f7574626f756e64537461747573602e20576520617373756d65207175657565732067726f77206e6f20677265617465725901207468616e203635353335206974656d732e20517565756520696e646963657320666f72206e6f726d616c206d6573736167657320626567696e206174206f6e653b207a65726f20697320726573657276656420696e11012063617365206f6620746865206e65656420746f2073656e64206120686967682d7072696f72697479207369676e616c206d657373616765207468697320626c6f636b2e09012054686520626f6f6c20697320747275652069662074686572652069732061207369676e616c206d6573736167652077616974696e6720746f2062652073656e742e504f7574626f756e6458636d704d65737361676573010108020571067506040004bc20546865206d65737361676573206f7574626f756e6420696e206120676976656e2058434d50206368616e6e656c2e385369676e616c4d6573736167657301010402e9017506040004a020416e79207369676e616c206d657373616765732077616974696e6720746f2062652073656e742e2c5175657565436f6e66696701007906302000000030000000080000000415012054686520636f6e66696775726174696f6e20776869636820636f6e74726f6c73207468652064796e616d696373206f6620746865206f7574626f756e642071756575652e38517565756553757370656e64656401002004000441012057686574686572206f72206e6f74207468652058434d502071756575652069732073757370656e6465642066726f6d20657865637574696e6720696e636f6d696e672058434d73206f72206e6f742e4444656c6976657279466565466163746f7201010405e9010d0440000064a7b3b6e00d000000000000000004c42054686520666163746f7220746f206d756c7469706c792074686520626173652064656c6976657279206665652062792e01b50401ac0c4c4d6178496e626f756e6453757370656e6465641010e803000014490120546865206d6178696d756d206e756d626572206f6620696e626f756e642058434d50206368616e6e656c7320746861742063616e2062652073757370656e6465642073696d756c74616e656f75736c792e005d0120416e792066757274686572206368616e6e656c2073757370656e73696f6e732077696c6c206661696c20616e64206d65737361676573206d6179206765742064726f7070656420776974686f757420667572746865724501206e6f746963652e2043686f6f73696e67206120686967682076616c756520283130303029206973206f6b61793b207468652074726164652d6f666620746861742069732064657363726962656420696ed8205b60496e626f756e6458636d7053757370656e646564605d207374696c6c206170706c6965732061742074686174207363616c652e644d61784163746976654f7574626f756e644368616e6e656c73101080000000206501204d6178696d616c206e756d626572206f66206f7574626f756e642058434d50206368616e6e656c7320746861742063616e2068617665206d6573736167657320717565756564206174207468652073616d652074696d652e005501204966207468697320697320726561636865642c207468656e206e6f2066757274686572206d657373616765732063616e2062652073656e7420746f206368616e6e656c73207468617420646f206e6f74207965745d0120686176652061206d657373616765207175657565642e20546869732073686f756c642062652073657420746f20746865206578706563746564206d6178696d756d206f66206f7574626f756e64206368616e6e656c7361012077686963682069732064657465726d696e6564206279205b6053656c663a3a4368616e6e656c496e666f605d2e20497420697320696d706f7274616e7420746f207365742074686973206c6172676520656e6f7567682c5d012073696e6365206f74686572776973652074686520636f6e67657374696f6e20636f6e74726f6c2070726f746f636f6c2077696c6c206e6f7420776f726b20617320696e74656e64656420616e64206d657373616765735101206d61792062652064726f707065642e20546869732076616c756520696e637265617365732074686520506f5620616e642073686f756c64207468657265666f7265206e6f74206265207069636b656420746f6f4d0120686967682e20476f7665726e616e6365206e6565647320746f2070617920617474656e74696f6e20746f206e6f74206f70656e206d6f7265206368616e6e656c73207468616e20746869732076616c75652e2c4d61785061676553697a6510100000010014b820546865206d6178696d616c20706167652073697a6520666f722048524d50206d6573736167652070616765732e0061012041206c6f776572206c696d69742063616e206265207365742064796e616d6963616c6c792c2062757420746869732069732074686520686172642d6c696d697420666f722074686520506f5620776f727374206361736555012062656e63686d61726b696e672e20546865206c696d697420666f72207468652073697a65206f662061206d65737361676520697320736c696768746c792062656c6f7720746869732c2073696e636520736f6d65b8206f7665726865616420697320696e63757272656420666f7220656e636f64696e672074686520666f726d61742e017d061e2c506f6c6b61646f7458636d012c506f6c6b61646f7458636d38305175657279436f756e746572010030200000000000000000048820546865206c617465737420617661696c61626c6520717565727920696e6465782e1c51756572696573000104023081060400045420546865206f6e676f696e6720717565726965732e28417373657454726170730101040634101000000000106820546865206578697374696e672061737365742074726170732e006101204b65792069732074686520626c616b6532203235362068617368206f6620286f726967696e2c2076657273696f6e65642060417373657473602920706169722e2056616c756520697320746865206e756d626572206f661d012074696d65732074686973207061697220686173206265656e20747261707065642028757375616c6c79206a75737420312069662069742065786973747320617420616c6c292e385361666558636d56657273696f6e00001004000861012044656661756c742076657273696f6e20746f20656e636f64652058434d207768656e206c61746573742076657273696f6e206f662064657374696e6174696f6e20697320756e6b6e6f776e2e20496620604e6f6e65602c3d01207468656e207468652064657374696e6174696f6e732077686f73652058434d2076657273696f6e20697320756e6b6e6f776e2061726520636f6e7369646572656420756e726561636861626c652e40537570706f7274656456657273696f6e0001080502950610040004f020546865204c61746573742076657273696f6e732074686174207765206b6e6f7720766172696f7573206c6f636174696f6e7320737570706f72742e4056657273696f6e4e6f746966696572730001080502950630040004050120416c6c206c6f636174696f6e7320746861742077652068617665207265717565737465642076657273696f6e206e6f74696669636174696f6e732066726f6d2e5056657273696f6e4e6f746966795461726765747300010805029506990604000871012054686520746172676574206c6f636174696f6e73207468617420617265207375627363726962656420746f206f75722076657273696f6e206368616e6765732c2061732077656c6c20617320746865206d6f737420726563656e7494206f66206f75722076657273696f6e7320776520696e666f726d6564207468656d206f662e5456657273696f6e446973636f76657279517565756501009d0604000c65012044657374696e6174696f6e732077686f7365206c61746573742058434d2076657273696f6e20776520776f756c64206c696b6520746f206b6e6f772e204475706c696361746573206e6f7420616c6c6f7765642c20616e6471012074686520607533326020636f756e74657220697320746865206e756d626572206f662074696d6573207468617420612073656e6420746f207468652064657374696e6174696f6e20686173206265656e20617474656d707465642c8c20776869636820697320757365642061732061207072696f726974697a6174696f6e2e4043757272656e744d6967726174696f6e0000a9060400049c205468652063757272656e74206d6967726174696f6e27732073746167652c20696620616e792e5452656d6f74654c6f636b656446756e6769626c657300010c050202b106b506040004f02046756e6769626c6520617373657473207768696368207765206b6e6f7720617265206c6f636b6564206f6e20612072656d6f746520636861696e2e3c4c6f636b656446756e6769626c65730001040200c506040004e02046756e6769626c6520617373657473207768696368207765206b6e6f7720617265206c6f636b6564206f6e207468697320636861696e2e5458636d457865637574696f6e53757370656e646564010020040004b420476c6f62616c2073757370656e73696f6e207374617465206f66207468652058434d206578656375746f722e3c53686f756c645265636f726458636d01002004001c59012057686574686572206f72206e6f7420696e636f6d696e672058434d732028626f7468206578656375746564206c6f63616c6c7920616e64207265636569766564292073686f756c64206265207265636f726465642ec4204f6e6c79206f6e652058434d2070726f6772616d2077696c6c206265207265636f7264656420617420612074696d652e29012054686973206973206d65616e7420746f206265207573656420696e2072756e74696d6520415049732c20616e64206974277320616476697365642069742073746179732066616c73650d0120666f7220616c6c206f74686572207573652063617365732c20736f20617320746f206e6f74206465677261646520726567756c617220706572666f726d616e63652e005901204f6e6c792072656c6576616e7420696620746869732070616c6c6574206973206265696e67207573656420617320746865205b6078636d5f6578656375746f723a3a7472616974733a3a5265636f726458636d605dc820696d706c656d656e746174696f6e20696e207468652058434d206578656375746f7220636f6e66696775726174696f6e2e2c5265636f7264656458636d000005010400184901204966205b6053686f756c645265636f726458636d605d2069732073657420746f20747275652c207468656e20746865206c6173742058434d2070726f6772616d206578656375746564206c6f63616c6c79542077696c6c2062652073746f72656420686572652e29012052756e74696d6520415049732063616e206665746368207468652058434d20746861742077617320657865637574656420627920616363657373696e6720746869732076616c75652e005901204f6e6c792072656c6576616e7420696620746869732070616c6c6574206973206265696e67207573656420617320746865205b6078636d5f6578656375746f723a3a7472616974733a3a5265636f726458636d605dc820696d706c656d656e746174696f6e20696e207468652058434d206578656375746f7220636f6e66696775726174696f6e2e01b90401b00001d1061f2843756d756c757358636d0001590501dd01000020304d657373616765517565756501304d65737361676551756575650c30426f6f6b5374617465466f7201010405e501d50674000000000000000000000000000000000000000000000000000000000004cc2054686520696e646578206f662074686520666972737420616e64206c61737420286e6f6e2d656d707479292070616765732e2c53657276696365486561640000e501040004bc20546865206f726967696e2061742077686963682077652073686f756c6420626567696e20736572766963696e672e1450616765730001080505e106e5060400048820546865206d6170206f66207061676520696e646963657320746f2070616765732e015d0501e10110204865617053697a651010009c0100143d01205468652073697a65206f662074686520706167653b207468697320696d706c69657320746865206d6178696d756d206d6573736167652073697a652077686963682063616e2062652073656e742e005901204120676f6f642076616c756520646570656e6473206f6e20746865206578706563746564206d6573736167652073697a65732c20746865697220776569676874732c207468652077656967687420746861742069735d0120617661696c61626c6520666f722070726f63657373696e67207468656d20616e6420746865206d6178696d616c206e6565646564206d6573736167652073697a652e20546865206d6178696d616c206d65737361676511012073697a6520697320736c696768746c79206c6f776572207468616e207468697320617320646566696e6564206279205b604d61784d6573736167654c656e4f66605d2e204d61785374616c651010080000000c5d0120546865206d6178696d756d206e756d626572206f66207374616c652070616765732028692e652e206f66206f766572776569676874206d657373616765732920616c6c6f776564206265666f72652063756c6c696e6751012063616e2068617070656e2e204f6e636520746865726520617265206d6f7265207374616c65207061676573207468616e20746869732c207468656e20686973746f726963616c207061676573206d6179206265fc2064726f707065642c206576656e206966207468657920636f6e7461696e20756e70726f636573736564206f766572776569676874206d657373616765732e34536572766963655765696768746d032c0107005840fba2020070001841012054686520616d6f756e74206f66207765696768742028696620616e79292077686963682073686f756c642062652070726f766964656420746f20746865206d65737361676520717565756520666f72a820736572766963696e6720656e717565756564206974656d7320606f6e5f696e697469616c697a65602e00fc2054686973206d6179206265206c65676974696d6174656c7920604e6f6e656020696e207468652063617365207468617420796f752077696c6c2063616c6c5d012060536572766963655175657565733a3a736572766963655f71756575657360206d616e75616c6c79206f7220736574205b6053656c663a3a49646c654d617853657276696365576569676874605d20746f2068617665542069742072756e20696e20606f6e5f69646c65602e5049646c654d6178536572766963655765696768746d030400145d0120546865206d6178696d756d20616d6f756e74206f66207765696768742028696620616e792920746f20626520757365642066726f6d2072656d61696e696e672077656967687420606f6e5f69646c656020776869636841012073686f756c642062652070726f766964656420746f20746865206d65737361676520717565756520666f7220736572766963696e6720656e717565756564206974656d7320606f6e5f69646c65602e3d012055736566756c20666f722070617261636861696e7320746f2070726f63657373206d65737361676573206174207468652073616d6520626c6f636b2074686579206172652072656365697665642e00290120496620604e6f6e65602c2069742077696c6c206e6f742063616c6c2060536572766963655175657565733a3a736572766963655f7175657565736020696e20606f6e5f69646c65602e01ed06212450726f766964657273012450726f76696465727334385369676e557052657175657374730001040200f106040028ed0120546865206d617070696e672066726f6d20616e204163636f756e74496420746861742072657175657374656420746f207369676e20757020746f2061207475706c65206f6620746865206d6574616461746120776974682074797065206f662074686520726571756573742c20616e642074686520626c6f636b88206e756d626572207768656e20746865207265717565737420776173206d6164652e00d1012054686973206973207573656420666f72207468652074776f2d737465702070726f63657373206f66207265676973746572696e673a207768656e2061207573657220726571756573747320746f20726567697374657220617320612053502028656974686572204d5350206f7220425350292cb10120746861742072657175657374207769746820746865206d6574616461746120616e6420746865206465706f7369742068656c642069732073746f72656420686572652e205768656e20746865207573657220636f6e6669726d7320746865207369676e2075702c20746865250120726571756573742069732072656d6f7665642066726f6d20746869732073746f7261676520616e64207468652075736572206973207265676973746572656420617320612053502e007020546869732073746f72616765206973207570646174656420696e3aad02202d205b726571756573745f6d73705f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a726571756573745f6d73705f7369676e5f75702920616e64205b726571756573745f6273705f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a726571756573745f6273705f7369676e5f7570292c207768696368206164642061206e657720656e74727920746f20746865206d61702e9102202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f75702920616e64205b63616e63656c5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a63616e63656c5f7369676e5f7570292c2077686963682072656d6f766520616e206578697374696e6720656e7472792066726f6d20746865206d61702e804163636f756e744964546f4d61696e53746f7261676550726f7669646572496400010402003404001ce820546865206d617070696e672066726f6d20616e204163636f756e74496420746f2061204d61696e53746f7261676550726f766964657249642e007d012054686973206973207573656420746f206765742061204d61696e2053746f726167652050726f7669646572277320756e69717565206964656e746966696572206e656564656420746f2061636365737320697473206d657461646174612e007020546869732073746f72616765206973207570646174656420696e3a5102202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c20776869636820616464732061206e657720656e74727920746f20746865206d617020696620746865206163636f756e7420746f20636f6e6669726d2069732061204d61696e2053746f726167652050726f76696465722ea901202d205b6d73705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6d73705f7369676e5f6f6666292c2077686963682072656d6f7665732074686520636f72726573706f6e64696e6720656e7472792066726f6d20746865206d61702e504d61696e53746f7261676550726f766964657273000104023401070400240d0120546865206d617070696e672066726f6d2061204d61696e53746f7261676550726f7669646572496420746f2061204d61696e53746f7261676550726f76696465722e00e02054686973206973207573656420746f206765742061204d61696e2053746f726167652050726f76696465722773206d657461646174612ebd012049742072657475726e7320604e6f6e656020696620746865204d61696e2053746f726167652050726f766964657220494420646f6573206e6f7420636f72726573706f6e6420746f20616e792072656769737465726564204d61696e2053746f726167652050726f76696465722e007020546869732073746f72616765206973207570646174656420696e3a5102202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c20776869636820616464732061206e657720656e74727920746f20746865206d617020696620746865206163636f756e7420746f20636f6e6669726d2069732061204d61696e2053746f726167652050726f76696465722ea901202d205b6d73705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6d73705f7369676e5f6f6666292c2077686963682072656d6f7665732074686520636f72726573706f6e64696e6720656e7472792066726f6d20746865206d61702e8901202d205b6368616e67655f63617061636974795d2863726174653a3a646973706174636861626c65733a3a6368616e67655f6361706163697479292c207768696368206368616e6765732074686520656e747279277320606361706163697479602e1c4275636b65747300010402340507040024dc20546865206d617070696e672066726f6d2061204275636b6574496420746f2074686174206275636b65742773206d657461646174612e0031012054686973206973207573656420746f206765742061206275636b65742773206d657461646174612c207375636820617320726f6f742c20757365722049442c20616e64204d53502049442e45012049742072657475726e7320604e6f6e656020696620746865204275636b657420494420646f6573206e6f7420636f72726573706f6e6420746f20616e792072656769737465726564206275636b65742e007020546869732073746f72616765206973207570646174656420696e3a9501202d205b6164645f6275636b65745d287368705f7472616974733a3a4d757461746550726f766964657273496e746572666163653a3a6164645f6275636b6574292c20776869636820616464732061206e657720656e74727920746f20746865206d61702e0502202d205b6368616e67655f726f6f745f6275636b65745d287368705f7472616974733a3a4d757461746550726f766964657273496e746572666163653a3a6368616e67655f726f6f745f6275636b6574292c207768696368206368616e6765732074686520636f72726573706f6e64696e67206275636b6574277320726f6f742e1d02202d205b72656d6f76655f726f6f745f6275636b65745d287368705f7472616974733a3a4d757461746550726f766964657273496e746572666163653a3a72656d6f76655f726f6f745f6275636b6574292c2077686963682072656d6f7665732074686520656e747279206f662074686520636f72726573706f6e64696e67206275636b65742e7c4d61696e53746f7261676550726f7669646572496473546f4275636b657473000108020209079804001c01012054686520646f75626c65206d617070696e672066726f6d2061204d61696e53746f7261676550726f7669646572496420746f2061204275636b65744964732e00b1012054686973206973207573656420746f20656666696369656e746c7920726574726965766520746865206c697374206f66206275636b65747320746861742061204d61696e2053746f726167652050726f76696465722069732063757272656e746c792073746f72696e672e007020546869732073746f72616765206973207570646174656420696e3a0501202d205b6164645f6275636b65745d287368705f7472616974733a3a4d757461746550726f766964657273496e746572666163653a3a6164645f6275636b6574294501202d205b72656d6f76655f726f6f745f6275636b65745d287368705f7472616974733a3a4d757461746550726f766964657273496e746572666163653a3a72656d6f76655f726f6f745f6275636b657429884163636f756e744964546f4261636b757053746f7261676550726f76696465724964000104020034040020f020546865206d617070696e672066726f6d20616e204163636f756e74496420746f2061204261636b757053746f7261676550726f766964657249642e0085012054686973206973207573656420746f206765742061204261636b75702053746f726167652050726f7669646572277320756e69717565206964656e746966696572206e656564656420746f2061636365737320697473206d657461646174612e007020546869732073746f72616765206973207570646174656420696e3a005902202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c20776869636820616464732061206e657720656e74727920746f20746865206d617020696620746865206163636f756e7420746f20636f6e6669726d2069732061204261636b75702053746f726167652050726f76696465722ea901202d205b6273705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6273705f7369676e5f6f6666292c2077686963682072656d6f7665732074686520636f72726573706f6e64696e6720656e7472792066726f6d20746865206d61702e584261636b757053746f7261676550726f7669646572730001040234f9060400241d0120546865206d617070696e672066726f6d2061204261636b757053746f7261676550726f7669646572496420746f2061204261636b757053746f7261676550726f76696465722e00e82054686973206973207573656420746f206765742061204261636b75702053746f726167652050726f76696465722773206d657461646174612ecd012049742072657475726e7320604e6f6e656020696620746865204261636b75702053746f726167652050726f766964657220494420646f6573206e6f7420636f72726573706f6e6420746f20616e792072656769737465726564204261636b75702053746f726167652050726f76696465722e007020546869732073746f72616765206973207570646174656420696e3a5902202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c20776869636820616464732061206e657720656e74727920746f20746865206d617020696620746865206163636f756e7420746f20636f6e6669726d2069732061204261636b75702053746f726167652050726f76696465722ea901202d205b6273705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6273705f7369676e5f6f6666292c2077686963682072656d6f7665732074686520636f72726573706f6e64696e6720656e7472792066726f6d20746865206d61702e8901202d205b6368616e67655f63617061636974795d2863726174653a3a646973706174636861626c65733a3a6368616e67655f6361706163697479292c207768696368206368616e6765732074686520656e747279277320606361706163697479602e204d7370436f756e7401001010000000001c4d012054686520616d6f756e74206f66204d61696e2053746f726167652050726f7669646572732074686174206172652063757272656e746c79207265676973746572656420696e207468652072756e74696d652e0019012054686973206973207573656420746f206b65657020747261636b206f662074686520746f74616c20616d6f756e74206f66204d53507320696e207468652073797374656d2e007020546869732073746f72616765206973207570646174656420696e3a4502202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c2077686963682061646473206f6e6520746f20746869732073746f7261676520696620746865206163636f756e7420746f20636f6e6669726d2069732061204d61696e2053746f726167652050726f76696465722e7501202d205b6d73705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6d73705f7369676e5f6f6666292c20776869636820737562747261637473206f6e652066726f6d20746869732073746f726167652e20427370436f756e7401001010000000001c55012054686520616d6f756e74206f66204261636b75702053746f726167652050726f7669646572732074686174206172652063757272656e746c79207265676973746572656420696e207468652072756e74696d652e0019012054686973206973207573656420746f206b65657020747261636b206f662074686520746f74616c20616d6f756e74206f66204253507320696e207468652073797374656d2e007020546869732073746f72616765206973207570646174656420696e3a4d02202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c2077686963682061646473206f6e6520746f20746869732073746f7261676520696620746865206163636f756e7420746f20636f6e6669726d2069732061204261636b75702053746f726167652050726f76696465722e7501202d205b6273705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6273705f7369676e5f6f6666292c20776869636820737562747261637473206f6e652066726f6d20746869732073746f726167652e44546f74616c42737073436170616369747901003020000000000000000020d02054686520746f74616c20616d6f756e74206f662073746f7261676520636170616369747920616c6c204253507320686176652e00c9012054686973206973207573656420746f206b65657020747261636b206f662074686520746f74616c20616d6f756e74206f662073746f7261676520636170616369747920616c6c2042535073206861766520696e207468652073797374656d2c20776869636820697320616c736f207468658d0120746f74616c20616d6f756e74206f662073746f7261676520636170616369747920746861742063616e206265207573656420627920757365727320696620776520666163746f7220696e20746865207265706c69636174696f6e20666163746f722e007020546869732073746f72616765206973207570646174656420696e3afd02202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c207768696368206164647320746865206361706163697479206f662074686520726567697374657265642053746f726167652050726f766964657220746f20746869732073746f7261676520696620746865206163636f756e7420746f20636f6e6669726d2069732061204261636b75702053746f726167652050726f76696465722e4502202d205b6273705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6273705f7369676e5f6f6666292c2077686963682073756274726163747320746865206361706163697479206f6620746865204261636b75702053746f726167652050726f766964657220746f207369676e206f66662066726f6d20746869732073746f726167652e4055736564427370734361706163697479010030200000000000000000101d012054686520746f74616c20616d6f756e74206f662073746f72616765206361706163697479206f66204253507320746861742069732063757272656e746c7920696e207573652e00e9012054686973206973207573656420746f206b65657020747261636b206f662074686520746f74616c20616d6f756e74206f662073746f7261676520636170616369747920746861742069732063757272656e746c7920696e207573652062792075736572732c2077686963682069732075736566756c20666f720d012073797374656d206d65747269637320616e6420616c736f20746f2063616c63756c617465207468652063757272656e74207072696365206f662073746f726167652e68476c6f62616c4273707352657075746174696f6e576569676874010010100000000004c02054686520746f74616c20676c6f62616c2072657075746174696f6e20776569676874206f6620616c6c20425350732ea44d61696e53746f7261676550726f7669646572496473546f56616c756550726f706f736974696f6e73000108020209070502040010290120446f75626c65206d617070696e672066726f6d2061205b604d61696e53746f7261676550726f76696465724964605d20746f205b6056616c756550726f706f736974696f6e605d732e00d10120546865736520617265206170706c69656420617420746865206275636b6574206c6576656c2e2050726f706f736974696f6e73206172652074686520707269636520706572205b60436f6e6669673a3a53746f7261676544617461556e6974605d2070657220626c6f636b20616e6420746865c0206c696d6974206f66206461746120746861742063616e2062652073746f72656420696e20746865206275636b65742e01610501f1014820547265617375727900800000000000000000000000000000000000000000000000000000000000000000106020546865205472656173757279204163636f756e7449642e5820546865206163636f756e7420746f2077686963683adc202d20546865206665657320666f72207375626d697474696e672061206368616c6c656e676520617265207472616e736665727265642e94202d2054686520736c61736865642066756e647320617265207472616e736665727265642e3053704d696e4465706f736974184000407a10f35a0000000000000000000004410120546865206d696e696d756d20616d6f756e74207468617420616e206163636f756e742068617320746f206465706f73697420746f206265636f6d6520612073746f726167652070726f76696465722e3453704d696e4361706163697479302002000000000000000481012054686520616d6f756e74207468617420612042535020726563656976657320617320616c6c6f636174696f6e206f662073746f72616765206361706163697479207768656e206974206465706f736974732053704d696e4465706f7369742e384465706f736974506572446174611840020000000000000000000000000000000411032054686520736c6f7065206f662074686520636f6c6c61746572616c2076732073746f726167652063617061636974792063757276652e20496e206f74686572207465726d732c20686f77206d616e7920746f6b656e7320612053746f726167652050726f76696465722073686f756c642061646420617320636f6c6c61746572616c20746f20696e637265617365206974732073746f7261676520636170616369747920696e206f6e6520756e6974206f662053746f7261676544617461556e69742e2c4d617846696c6553697a653020ffffffffffffffff0cbc2054686520657374696d61746564206d6178696d756d2073697a65206f6620616e20756e6b6e6f776e2066696c652e00b9012055736564207072696d6172696c7920746f20736c61736820612053746f726167652050726f7669646572207768656e206974206661696c7320746f2070726f766964652061206368756e6b206f66206461746120666f7220616e20756e6b6e6f776e2066696c652073697a652e4c4d61784d756c74694164647265737353697a65101064000000049020546865206d6178696d756d2073697a65206f662061206d756c7469616464726573732e544d61784d756c746941646472657373416d6f756e74101005000000041d0120546865206d6178696d756d20616d6f756e74206f66206d756c7469616464726573736573207468617420612053746f726167652050726f76696465722063616e20686176652e304d617850726f746f636f6c73101064000000044d0120546865206d6178696d756d206e756d626572206f662070726f746f636f6c7320746865204d53502063616e20737570706f727420286174206c656173742077697468696e207468652072756e74696d65292e344275636b65744465706f736974184000407a10f35a0000000000000000000004f82054686520616d6f756e74207468617420616e206163636f756e742068617320746f206465706f73697420746f206372656174652061206275636b65742e3c4275636b65744e616d654c696d697410106400000004d82054797065207468617420726570726573656e7473207468652062797465206c696d6974206f662061206275636b6574206e616d652e584d6178426c6f636b73466f7252616e646f6d6e6573731010b004000004990120546865206d6178696d756d20616d6f756e74206f6620626c6f636b732061667465722077686963682061207369676e2075702072657175657374206578706972657320736f207468652072616e646f6d6e6573732063616e6e6f742062652063686f73656e7c4d696e426c6f636b734265747765656e43617061636974794368616e67657310100a00000004fc20546865206d696e696d756d20616d6f756e74206f6620626c6f636b73206265747765656e206361706163697479206368616e67657320666f7220612053504444656661756c744d65726b6c65526f6f74348003170a2e7597b7b7e3d84c05391d139a62b157e78786d8c082f29dcf4c111314042501205468652064656661756c742076616c7565206f662074686520726f6f74206f6620746865204d65726b6c652050617472696369612054726965206f66207468652072756e74696d6564536c617368416d6f756e745065724d617846696c6553697a6518400040e59c30120000000000000000000004c5012054686520736c61736820666163746f722064656475637465642066726f6d20612053746f726167652050726f76696465722773206465706f73697420666f722065766572792073696e676c652073746f726167652070726f6f662074686579206661696c20746f2070726f766964652e605374617274696e6752657075746174696f6e57656967687410100100000004dc205374617274696e672072657075746174696f6e2077656967687420666f722061206e65776c792072656769737465726564204253502e4c4273705369676e55704c6f636b506572696f64101080c613001481012054686520616d6f756e74206f6620626c6f636b732074686174206120425350206d7573742077616974206265666f7265206265696e672061626c6520746f207369676e206f66662c206166746572206265696e67207369676e65642075702e008d01205468697320697320746f2070726576656e7420425350732066726f6d207369676e696e6720757020616e64206f666620746f6f20717569636b6c792c2074687573206d616b696e672069742068617264657220666f7220616e2061747461636b65727d0120746f2073756464656e6c7920686176652061206c6172676520706f7274696f6e206f662074686520746f74616c206e756d626572206f6620425350732e2054686520726561736f6e20666f7220746869732c20697320746861742074686541012061747461636b657220776f756c64206861766520746f206c6f636b2075702061206c6172676520616d6f756e74206f662066756e647320666f72207468697320706572696f64206f662074696d652e444d6178436f6d6d69746d656e7453697a651010e8030000005c5a65726f53697a654275636b657446697865645261746518403000000000000000000000000000000008350120302d73697a65206275636b65742066697865642072617465207061796d656e742073747265616d2028692e652e2074686520616d6f756e742063686172676564206173206120626173652020c82066656520666f722061206275636b6574207468617420646f65736e2774206861766520616e792066696c65732079657429010d07282846696c6553797374656d012846696c6553797374656d403c53746f726167655265717565737473000104023411070400004853746f726167655265717565737442737073000108020209071d070400186901204120646f75626c65206d61702066726f6d2073746f72616765207265717565737420746f2042535020604163636f756e7449646073207468617420766f6c756e74656572656420746f2073746f7265207468652066696c652e009d0120416e792042535020756e64657220612073746f7261676520726571756573742070726566697820697320636f6e7369646572656420746f206265206120766f6c756e7465657220616e642063616e2062652072656d6f76656420617420616e792074696d652e8102204f6e6365206120425350207375626d69747320612076616c69642070726f6f6620746f20746865207669612074686520606273705f636f6e6669726d5f73746f72696e67602065787472696e7369632c207468652060636f6e6669726d656460206669656c6420696e205b6053746f7261676552657175657374427370734d65746164617461605d2077696c6c2062652073657420746f206074727565602e00bd01205768656e20612073746f7261676520726571756573742069732065787069726564206f722072656d6f7665642c2074686520636f72726573706f6e64696e672073746f7261676520726571756573742070726566697820696e2074686973206d61702069732072656d6f7665642e684275636b6574735769746853746f7261676552657175657374730001080202090798040004f420426f6f6b6b656570696e67206f6620746865206275636b65747320636f6e7461696e696e67206f70656e2073746f726167652072657175657374732e6453746f726167655265717565737445787069726174696f6e7301010402102107040004b42041206d6170206f6620626c6f636b7320746f20657870697265642073746f726167652072657175657374732e7846696c6544656c6574696f6e5265717565737445787069726174696f6e7301010402102507040004cc2041206d6170206f6620626c6f636b7320746f20657870697265642066696c652064656c6574696f6e2072657175657374732e704d6f76654275636b65745265717565737445787069726174696f6e7301010402103107040004c42041206d6170206f6620626c6f636b7320746f2065787069726564206d6f7665206275636b65742072657175657374732ea84e657874417661696c61626c6553746f726167655265717565737445787069726174696f6e426c6f636b01001010000000000c5901204120706f696e74657220746f20746865206561726c6965737420617661696c61626c6520626c6f636b20746f20696e736572742061206e65772073746f7261676520726571756573742065787069726174696f6e2e006d0120546869732073686f756c6420616c776179732062652067726561746572206f7220657175616c207468616e2063757272656e7420626c6f636b202b205b60436f6e6669673a3a53746f726167655265717565737454746c605d2ebc4e657874417661696c61626c6546696c6544656c6574696f6e5265717565737445787069726174696f6e426c6f636b01001010000000000c7101204120706f696e74657220746f20746865206561726c6965737420617661696c61626c6520626c6f636b20746f20696e736572742061206e65772066696c652064656c6574696f6e20726571756573742065787069726174696f6e2e009d0120546869732073686f756c6420616c776179732062652067726561746572206f7220657175616c207468616e2063757272656e7420626c6f636b202b205b60436f6e6669673a3a50656e64696e6746696c6544656c6574696f6e5265717565737454746c605d2eb44e657874417661696c61626c654d6f76654275636b65745265717565737445787069726174696f6e426c6f636b01001010000000000c6901204120706f696e74657220746f20746865206561726c6965737420617661696c61626c6520626c6f636b20746f20696e736572742061206e6577206d6f7665206275636b657420726571756573742065787069726174696f6e2e00790120546869732073686f756c6420616c776179732062652067726561746572206f7220657175616c207468616e2063757272656e7420626c6f636b202b205b60436f6e6669673a3a4d6f76654275636b65745265717565737454746c605d2e684e6578745374617274696e67426c6f636b546f436c65616e55700100101000000000141901204120706f696e74657220746f20746865207374617274696e6720626c6f636b20746f20636c65616e20757020657870697265642073746f726167652072657175657374732e006901204966207468697320626c6f636b20697320626568696e64207468652063757272656e7420626c6f636b206e756d6265722c2074686520636c65616e757020616c676f726974686d20696e20606f6e5f69646c65602077696c6c750120617474656d707420746f20616363656c6572617465207468697320626c6f636b20706f696e74657220617320636c6f736520746f206f7220757020746f207468652063757272656e7420626c6f636b206e756d6265722e205468697319012077696c6c20657865637574652070726f7669646564207468617420746865726520697320656e6f7567682072656d61696e696e672077656967687420746f20646f20736f2e6c50656e64696e6746696c6544656c6574696f6e52657175657374730101040200390704000c802050656e64696e672066696c652064656c6574696f6e2072657175657374732e00f5012041206d617070696e672066726f6d20612075736572206163636f756e7420696420746f2061206c697374206f662070656e64696e672066696c652064656c6574696f6e2072657175657374732c20686f6c64696e672061207475706c65206f66207468652066696c65206b657920616e64206275636b65742069642e6850656e64696e6753746f7053746f72696e675265717565737473000108020209073d07040018902050656e64696e672066696c652073746f702073746f72696e672072657175657374732e001102204120646f75626c65206d617070696e672066726f6d204253502049447320746f2061206c697374206f662066696c65206b6579732070656e64696e672073746f702073746f72696e6720726571756573747320746f2074686520626c6f636b20696e2077686963682074686f73652072657175657374732077657265206f70656e65648420616e64207468652070726f76656e2073697a65206f66207468652066696c652efd012054686520626c6f636b206e756d626572206973207573656420746f2061766f69642042535073206265696e672061626c6520746f2073746f702073746f72696e672066696c657320696d6d6564696174656c7920776869636820776f756c6420616c6c6f77207468656d20746f2061766f6964206368616c6c656e676573d501206f66206d697373696e672066696c65732e205468652073697a6520697320746f2062652061626c6520746f2064656372656173652074686569722075736564206361706163697479207768656e207468657920636f6e6669726d20746f2073746f702073746f72696e67207468652066696c652e6450656e64696e674d6f76654275636b65745265717565737473000108020209074107040010782050656e64696e67206d6f7665206275636b65742072657175657374732e009501204120646f75626c65206d617070696e672066726f6d204d53502049447320746f2061206c697374206f66206275636b65742049447320776869636820746865792063616e20616363657074206f72206465636c696e6520746f2074616b65206f7665722eb8205468652076616c75652069732074686520757365722077686f2072657175657374656420746865206d6f76652e5050656e64696e674275636b657473546f4d6f76650101040234980004090120426f6f6b6b656570696e67206f66206275636b6574732074686174206172652070656e64696e6720746f206265206d6f76656420746f2061206e6577204d53502e445265706c69636174696f6e54617267657401001010000000000cd4204e756d626572206f66204253507320726571756972656420746f2066756c66696c6c20612073746f72616765207265717565737400b501205468697320697320616c736f207573656420617320612064656661756c742076616c756520696620746865204253507320726571756972656420617265206e6f7420737065636966696564207768656e206372656174696e6720612073746f7261676520726571756573742e6c5469636b52616e6765546f4d6178696d756d5468726573686f6c64010010100000000004ed01204e756d626572206f66207469636b7320756e74696c20616c6c204253507320776f756c6420726561636820746865205b60436f6e6669673a3a4d6178696d756d5468726573686f6c64605d20746f20656e73757265207468617420616c6c2042535073206172652061626c6520746f20766f6c756e746565722e016505011102403c54726561737572794163636f756e740080000000000000000000000000000000000000000000000000000000000000000004310120546865207472656173757279206163636f756e74206f66207468652072756e74696d652c2077686572652061206672616374696f6e206f662065616368207061796d656e7420676f65732e6442737053746f7053746f72696e6746696c6550656e616c7479184000a0724e1809000000000000000000000405012050656e616c7479207061796564206279206120425350207768656e207468657920666f72636566756c6c792073746f702073746f72696e6720612066696c652e784d61784261746368436f6e6669726d53746f72616765526571756573747310100a000000049101204d6178696d756d206261746368206f662073746f7261676520726571756573747320746861742063616e20626520636f6e6669726d6564206174206f6e6365207768656e2063616c6c696e6720606273705f636f6e6669726d5f73746f72696e67602e844d617842617463684d7370526573706f6e6453746f72616765526571756573747310100a000000040502204d6178696d756d206261746368206f662073746f7261676520726571756573747320746861742063616e20626520726573706f6e64656420746f206174206f6e6365207768656e2063616c6c696e6720606d73705f726573706f6e645f73746f726167655f72657175657374735f6d756c7469706c655f6275636b657473602e3c4d617846696c655061746853697a651010000200000488204d6178696d756d20627974652073697a65206f6620612066696c6520706174682e344d617850656572496453697a651010640000000480204d6178696d756d20627974652073697a65206f66206120706565722069642e484d61784e756d6265724f665065657249647310100500000004c8204d6178696d756d206e756d626572206f6620706565722069647320666f7220612073746f7261676520726571756573742e6c4d6178446174615365727665724d756c746941646472657373657310100a00000004e0204d6178696d756d206e756d626572206f66206d756c746961646472657373657320666f7220612073746f7261676520726571756573742e584d6178457870697265644974656d73496e426c6f636b101064000000042901204d6178696d756d206e756d626572206f662065787069726564206974656d73202870657220747970652920746f20636c65616e20757020696e20612073696e676c6520626c6f636b2e4453746f726167655265717565737454746c10102800000004902054696d652d746f2d6c69766520666f7220612073746f7261676520726571756573742e7450656e64696e6746696c6544656c6574696f6e5265717565737454746c10102800000004e1012054696d652d746f2d6c69766520666f7220612070656e64696e672066696c652064656c6574696f6e20726571756573742c2061667465722077686963682061207072696f72697479206368616c6c656e67652069732073656e74206f757420746f20656e666f726365207468652064656c6574696f6e2e504d6f76654275636b65745265717565737454746c101028000000045d012054696d652d746f2d6c69766520666f722061206d6f7665206275636b657420726571756573742c20616674657220776869636820746865207265717565737420697320636f6e7369646572656420657870697265642e784d61785573657250656e64696e6744656c6574696f6e526571756573747310100a000000040901204d6178696d756d206e756d626572206f662066696c652064656c6574696f6e207265717565737473206120757365722063616e20686176652070656e64696e672e804d61785573657250656e64696e674d6f76654275636b6574526571756573747310100a000000040101204d6178696d756d206e756d626572206f66206d6f7665206275636b6574207265717565737473206120757365722063616e20686176652070656e64696e672e544d696e57616974466f7253746f7053746f72696e6710100a000000040d02204e756d626572206f6620626c6f636b7320726571756972656420746f2070617373206265747765656e2061204253502072657175657374696e6720746f2073746f702073746f72696e6720612066696c6520616e64206974206265696e672061626c6520746f20636f6e6669726d20746f2073746f702073746f72696e672069742e7453746f72616765526571756573744372656174696f6e4465706f73697418400a00000000000000000000000000000004fc204465706f7369742068656c642066726f6d207468652055736572207768656e206372656174696e672061206e65772073746f726167652072657175657374014507293050726f6f66734465616c6572013050726f6f66734465616c657238505469636b546f4368616c6c656e6765735365656400010402103404001085012041206d617070696e672066726f6d206368616c6c656e676573207469636b20746f20612072616e646f6d2073656564207573656420666f722067656e65726174696e6720746865206368616c6c656e67657320696e2074686174207469636b2e0001012054686973206973207573656420746f206b65657020747261636b206f6620746865206368616c6c656e67657327207365656420696e2074686520706173742e8d012054686973206d617070696e6720676f6573206261636b206f6e6c79205b604368616c6c656e6765486973746f72794c656e677468466f72605d20626c6f636b732e2050726576696f7573206368616c6c656e676573206172652072656d6f7665642e685469636b546f436865636b706f696e744368616c6c656e67657300010402108d0204001851012041206d617070696e672066726f6d206368616c6c656e676573207469636b20746f206120766563746f72206f6620637573746f6d206368616c6c656e676564206b65797320666f722074686174207469636b2e006d012054686973206973207573656420746f206b65657020747261636b206f6620746865206368616c6c656e67657320746861742068617665206265656e206d61646520696e2074686520706173742c207370656369666963616c6c799020696e2074686520636865636b706f696e74206368616c6c656e676520726f756e64732ef42054686520766563746f7220697320626f756e646564206279205b604d6178437573746f6d4368616c6c656e676573506572426c6f636b466f72605d2e89012054686973206d617070696e6720676f6573206261636b206f6e6c79205b604368616c6c656e6765486973746f72794c656e677468466f72605d207469636b732e2050726576696f7573206368616c6c656e676573206172652072656d6f7665642e484c617374436865636b706f696e745469636b010010100000000018ec20546865206368616c6c656e6765207469636b206f6620746865206c61737420636865636b706f696e74206368616c6c656e676520726f756e642e0069012054686973206973207573656420746f2064657465726d696e65207768656e20746f20696e636c75646520746865206368616c6c656e6765732066726f6d20746865205b604368616c6c656e6765735175657565605d20616e647d01205b605072696f726974794368616c6c656e6765735175657565605d20696e20746865205b605469636b546f436865636b706f696e744368616c6c656e676573605d2053746f726167654d61702e20546865736520636865636b706f696e744d01206368616c6c656e676520726f756e6473206861766520746f20626520616e73776572656420627920414c4c2050726f7669646572732c20616e64207468697320697320656e666f72636564206279207468656820607375626d69745f70726f6f66602065787472696e7369632e605469636b546f50726f766964657273446561646c696e6573000108020249079804002045012041206d617070696e672066726f6d206368616c6c656e6765207469636b20746f206120766563746f72206f66206368616c6c656e6765642050726f76696465727320666f722074686174207469636b2e0049012054686973206973207573656420746f206b65657020747261636b206f66207468652050726f76696465727320746861742068617665206265656e206368616c6c656e6765642c20616e642073686f756c644901207375626d697420612070726f6f66206279207468652074696d65206f6620746865205b604368616c6c656e6765735469636b6572605d207265616368657320746865206e756d62657220757365642061735901206b657920696e20746865206d617070696e672e2050726f7669646572732077686f20646f207375626d697420612070726f6f66206172652072656d6f7665642066726f6d20746865697220726573706563746976653d0120656e74727920616e642070757368656420666f727761726420746f20746865206e657874207469636b20696e20776869636820746865792073686f756c64207375626d697420612070726f6f662e4d012054686f73652077686f20617265207374696c6c20696e2074686520656e747279206279207468652074696d6520746865207469636b20697320726561636865642061726520636f6e7369646572656420746fdc2068617665206661696c656420746f207375626d697420612070726f6f6620616e64207375626a65637420746f20736c617368696e672e884c6173745469636b50726f76696465725375626d69747465644150726f6f66466f7200010402341004002465012041206d617070696e672066726f6d20612050726f766964657220746f20746865206c617374207469636b20666f7220776869636820746865792053484f554c442068617665207375626d697474656420612070726f6f662e410120496620666f7220612050726f7669646572206070602c20604c6173745469636b50726f76696465725375626d69747465644150726f6f66466f725b705d6020697320606e602c207468656e2074686531012050726f76696465722073686f756c64207375626d697420612070726f6f6620666f72207469636b20606e202b207374616b655f746f5f6368616c6c656e67655f706572696f64287029602e007101205468697320676574732075706461746564207768656e20612050726f7669646572207375626d69747320612070726f6f66207375636365737366756c6c7920616e64206973207573656420746f2064657465726d696e65207468652d01206e657874207469636b20666f72207768696368207468652050726f76696465722073686f756c64207375626d697420612070726f6f662c20616e64206974277320646561646c696e652e007101204966207468652050726f7669646572206661696c7320746f207375626d697420612070726f6f6620696e2074696d6520616e6420697320736c61736865642c20746869732077696c6c207374696c6c206765742075706461746564c820746f20746865207469636b2069742073686f756c642068617665207375626d697474656420612070726f6f6620666f722e3c4368616c6c656e676573517565756501004d07040018d02041207175657565206f66206b65797320746861742068617665206265656e206368616c6c656e676564206d616e75616c6c792e0011012054686520656c656d656e747320696e20746869732071756575652077696c6c206265206368616c6c656e67656420696e2074686520636f6d696e6720626c6f636b732c450120616c7761797320656e737572696e67207468617420746865206d6178696d756d206e756d626572206f66206368616c6c656e6765732070657220626c6f636b206973206e6f742065786365656465642e350120412060426f756e64656456656360206973207573656420626563617573652074686520607061726974795f7363616c655f636f6465633a3a4d6178456e636f6465644c656e6020747261697455012069732072657175697265642c20627574207573696e672061206056656344657175656020776f756c64206265206d6f726520656666696369656e7420617320746869732069732061204649464f2071756575652e5c5072696f726974794368616c6c656e676573517565756501005107040028f42041207072696f72697479207175657565206f66206b65797320746861742068617665206265656e206368616c6c656e676564206d616e75616c6c792e0025012054686520646966666572656e6365206265747765656e207468697320616e6420604368616c6c656e676573517565756560206973207468617420746865206368616c6c656e676573290120696e20746869732071756575652061726520676976656e207072696f72697479206f76657220746865206f74686572732e20536f20746869732071756575652073686f756c64206265390120656d7074696564206265666f726520616e79206f6620746865206368616c6c656e67657320696e2074686520604368616c6c656e6765735175657565602061726520646973706174636865642ecc20546869732071756575652073686f756c64206e6f742062652061636365737369626c6520746f20746865207075626c69632e11012054686520656c656d656e747320696e20746869732071756575652077696c6c206265206368616c6c656e67656420696e2074686520636f6d696e6720626c6f636b732c450120616c7761797320656e737572696e67207468617420746865206d6178696d756d206e756d626572206f66206368616c6c656e6765732070657220626c6f636b206973206e6f742065786365656465642e350120412060426f756e64656456656360206973207573656420626563617573652074686520607061726974795f7363616c655f636f6465633a3a4d6178456e636f6465644c656e6020747261697455012069732072657175697265642c20627574207573696e672061206056656344657175656020776f756c64206265206d6f726520656666696369656e7420617320746869732069732061204649464f2071756575652e404368616c6c656e6765735469636b6572010010100000000018e8204120636f756e746572206f6620626c6f636b7320696e207768696368206368616c6c656e67657320776572652064697374726962757465642e004101205468697320636f756e746572206973206e6f74206e65636573736172696c79207468652073616d652061732074686520626c6f636b206e756d6265722c206173206368616c6c656e67657320617265490120646973747269627574656420696e2074686520606f6e5f706f6c6c6020686f6f6b2c2077686963682068617070656e732061742074686520626567696e6e696e67206f6620657665727920626c6f636b2ced0120736f206c6f6e672061732074686520626c6f636b206973206e6f742070617274206f662061205b4d756c74692d426c6f636b2d4d6967726174696f6e5d2868747470733a2f2f6769746875622e636f6d2f706172697479746563682f706f6c6b61646f742d73646b2f70756c6c2f313738312920284d424d292e350120447572696e67204d424d736d2c2074686520626c6f636b206e756d62657220696e637265617365732c20627574205b604368616c6c656e6765735469636b6572605d20646f6573206e6f742e48536c61736861626c6550726f7669646572730001040234100400007456616c696450726f6f665375626d6974746572734c6173745469636b730001040210550704001495012041206d617070696e672066726f6d207469636b20746f2050726f7669646572732c20776869636820697320736574206966207468652050726f7669646572207375626d697474656420612076616c69642070726f6f6620696e2074686174207469636b2e005d012054686973206973207573656420746f206b65657020747261636b206f66207468652050726f76696465727320746861742068617665207375626d69747465642070726f6f667320696e20746865206c61737420666577b901207469636b732c20776865726520617661696c6162696c697479206f6e6c7920757020746f20746865206c617374205b60436f6e6669673a3a5461726765745469636b7353746f726167654f665375626d697474657273605d207469636b732069732067756172616e746565642e950120546869732073746f72616765206973207468656e206d61646520617661696c61626c6520666f72206f746865722070616c6c65747320746f20757365207468726f75676820746865206050726f6f665375626d697474657273496e74657266616365602e3c4c61737444656c657465645469636b010010100000000010b90120412076616c7565207468617420726570726573656e747320746865206c617374207469636b2074686174207761732064656c657465642066726f6d20746865205b6056616c696450726f6f665375626d6974746572734c6173745469636b73605d2053746f726167654d61702e00a5012054686973206973207573656420746f206b6e6f77207768696368207469636b20746f2064656c6574652066726f6d20746865205b6056616c696450726f6f665375626d6974746572734c6173745469636b73605d2053746f726167654d6170207768656e207468656820606f6e5f69646c656020686f6f6b2069732063616c6c65642e584368616c6c656e6765735469636b65725061757365640000980400201901204120626f6f6c65616e207468617420726570726573656e7473207768657468657220746865205b604368616c6c656e6765735469636b6572605d206973207061757365642e00c9012042792064656661756c742c2074686973206973206066616c7365602c206d65616e696e67207468617420746865205b604368616c6c656e6765735469636b6572605d20697320696e6372656d656e7465642065766572792074696d6520606f6e5f706f6c6c602069732063616c6c65642ec10120546869732063616e2062652073657420746f2060747275656020776869636820776f756c6420706175736520746865205b604368616c6c656e6765735469636b6572605d2c2070726576656e74696e672060646f5f6e65775f6368616c6c656e6765735f726f756e64602066726f6d6c206265696e672065786563757465642e205468657265666f72653a4d01202d204e6f206e65772072616e646f6d206368616c6c656e67657320776f756c6420626520656d697474656420616e6420616464656420746f205b605469636b546f4368616c6c656e67657353656564605d2e7501202d204e6f206e657720636865636b706f696e74206368616c6c656e67657320776f756c6420626520656d697474656420616e6420616464656420746f205b605469636b546f436865636b706f696e744368616c6c656e676573605d2ef8202d20446561646c696e657320666f722070726f6f66207375626d697373696f6e732061726520696e646566696e6974656c7920706f7374706f6e65642e4050617374426c6f636b73576569676874000104021028040010f82041206d617070696e672066726f6d20626c6f636b206e756d62657220746f2074686520776569676874207573656420696e207468617420626c6f636b2e0021012054686973206973207573656420746f20636865636b20696620746865206e6574776f726b2069732070726573756d61626c7920756e6465722061207370616d2061747461636b2e750120497420697320636c656172656420666f7220626c6f636b73206f6c646572207468616e206063757272656e745f626c6f636b60202d20285b60436f6e6669673a3a426c6f636b46756c6c6e657373506572696f64605d202b2031292e484e6f7446756c6c426c6f636b73436f756e7401001010000000000c9d0120546865206e756d626572206f6620626c6f636b7320746861742068617665206265656e20636f6e73696465726564205f6e6f745f2066756c6c20696e20746865206c617374205b60436f6e6669673a3a426c6f636b46756c6c6e657373506572696f64605d2e0021012054686973206973207573656420746f20636865636b20696620746865206e6574776f726b2069732070726573756d61626c7920756e6465722061207370616d2061747461636b2e0199050161023c6052616e646f6d4368616c6c656e676573506572426c6f636b10100a00000008510120546865206e756d626572206f662072616e646f6d206368616c6c656e6765732074686174206172652067656e6572617465642070657220626c6f636b2c207573696e67207468652072616e646f6d2073656564682067656e65726174656420666f72207468617420626c6f636b2e6c4d6178437573746f6d4368616c6c656e676573506572426c6f636b10100a000000045d0120546865206d6178696d756d206e756d626572206f6620637573746f6d206368616c6c656e67657320746861742063616e206265206d61646520696e20612073696e676c6520636865636b706f696e7420626c6f636b2e584368616c6c656e6765486973746f72794c656e6774681010640000000ce420546865206e756d626572206f66207469636b732074686174206368616c6c656e67657320686973746f7279206973206b65707420666f722e61012041667465722074686973206d616e79207469636b732c206368616c6c656e676573206172652072656d6f7665642066726f6d205b605469636b546f4368616c6c656e67657353656564605d2053746f726167654d61702e4501204120227469636b2220697320757375616c6c79206f6e6520626c6f636b2c2062757420736f6d6520626c6f636b73206d617920626520736b69707065642064756520746f206d6967726174696f6e732e544368616c6c656e67657351756575654c656e6774681010640000000cc820546865206c656e677468206f662074686520604368616c6c656e6765735175657565602053746f7261676556616c75652e1101205468697320697320746f206c696d6974207468652073697a65206f66207468652071756575652c20616e64207468657265666f726520746865206e756d626572206f6690206d616e75616c206368616c6c656e67657320746861742063616e206265206d6164652e64436865636b706f696e744368616c6c656e6765506572696f641010b80b000024750120546865206e756d626572206f6620626c6f636b7320696e206265747765656e206120636865636b706f696e74206368616c6c656e67657320726f756e642028692e652e207769746820637573746f6d206368616c6c656e676573292e61012054686973206973207573656420746f2064657465726d696e65207768656e20746f20696e636c75646520746865206368616c6c656e6765732066726f6d2074686520604368616c6c656e67657351756575656020616e64710120605072696f726974794368616c6c656e67657351756575656020696e207468652060426c6f636b546f4368616c6c656e676573602053746f726167654d61702e20546865736520636865636b706f696e74206368616c6c656e6765610120726f756e6473206861766520746f20626520616e73776572656420627920414c4c2050726f7669646572732c20616e64207468697320697320656e666f726365642062792074686520607375626d69745f70726f6f66602c2065787472696e7369632e006d01205741524e494e473a205468697320706572696f64206e6565647320746f20626520657175616c206f72206c6172676572207468616e20746865206368616c6c656e676520706572696f64206f662074686520736d616c6c6573747d012050726f766964657220696e20746865206e6574776f726b2e2049662074686520736d616c6c6573742050726f7669646572206861732061206368616c6c656e676520706572696f64206f66203130207469636b732028626c6f636b73292c1101207468656e2074686520636865636b706f696e74206368616c6c656e676520706572696f64206e6565647320746f206265206174206c65617374203130207469636b732e585374616b65546f4368616c6c656e6765506572696f64184000009e1869d0290400000000000000000cd42054686520726174696f20746f20636f6e76657274207374616b65642062616c616e636520746f20626c6f636b20706572696f642e65012054686973206973207573656420746f2064657465726d696e652074686520706572696f6420696e20776869636820612050726f76696465722073686f756c64207375626d697420612070726f6f662c206261736564206f6ee501207468656972207374616b652e2054686520706572696f642069732063616c63756c6174656420617320605374616b65546f4368616c6c656e6765506572696f64202f207374616b65602c2073617475726174696e67206174205b60436f6e6669673a3a4d696e4368616c6c656e6765506572696f64605d2e484d696e4368616c6c656e6765506572696f6410101e00000004550120546865206d696e696d756d20706572696f6420696e20776869636820612050726f76696465722063616e206265206368616c6c656e6765642c207265676172646c657373206f66207468656972207374616b652e5c4368616c6c656e67655469636b73546f6c6572616e63651010320000001c59012054686520746f6c6572616e636520696e206e756d626572206f66207469636b732028616c6d6f7374206571756976616c656e7420746f20626c6f636b732c2062757420736b697070696e67204d424d292074686174590120612050726f76696465722068617320746f207375626d697420612070726f6f662c20636f756e74696e672066726f6d20746865207469636b20746865206368616c6c656e676520697320656d697474656420666f723c20746861742050726f76696465722e00650120466f72206578616d706c652c20696620612050726f766964657220697320737570706f73656420746f207375626d697420612070726f6f6620666f72207469636b20606e602c20616e642074686520746f6c6572616e636569012069732073657420746f206074602c207468656e207468652050726f76696465722068617320746f207375626d697420612070726f6f6620666f72206368616c6c656e67657320696e207469636b20606e602c206265666f72652420606e202b2074602e344368616c6c656e67657346656518400010a5d4e800000000000000000000000cb02054686520666565206368617267656420666f72207375626d697474696e672061206368616c6c656e67652e550120546869732066656520676f657320746f207468652054726561737572792c20616e64206973207573656420746f2070726576656e74207370616d2e20526567697374657265642050726f7669646572732061726558206578656d70742066726f6d2074686973206665652e785461726765745469636b7353746f726167654f665375626d6974746572731010030000000c89012054686520746172676574206e756d626572206f66207469636b7320666f7220776869636820746f2073746f726520746865207375626d6974746572732074686174207375626d69747465642076616c69642070726f6f667320696e207468656d2cad012073746f72656420696e20746865206056616c696450726f6f665375626d6974746572734c6173745469636b73602053746f726167654d61702e20546861742073746f726167652077696c6c206265207472696d6d656420646f776e20746f2074686973206e756d6265723101206f66207469636b7320696e2074686520606f6e5f69646c656020686f6f6b206f6620746869732070616c6c65742c20746f2061766f696420626c6f6174696e67207468652073746174652e504d61785375626d6974746572735065725469636b1010e8030000102d0120546865206d6178696d756d20616d6f756e74206f662050726f76696465727320746861742063616e207375626d697420612070726f6f6620696e20612073696e676c6520626c6f636b2e410120416c74686f75676820746869732063616e206265207365656e20617320616e20617262697472617279206c696d69742c2069662073657420746f2074686520616c7265616479206578697374696e67410120696d706c69636974206c696d697420746861742069732022686f77206d616e7920607375626d69745f70726f6f66602065787472696e736963732066697420696e2074686520776569676874206f66f0206120626c6f636b2c207468697320776f756c646e27742061646420616e79206164646974696f6e616c206172746966696369616c206c696d69742e20547265617375727900800000000000000000000000000000000000000000000000000000000000000000106020546865205472656173757279204163636f756e7449642e5820546865206163636f756e7420746f2077686963683adc202d20546865206665657320666f72207375626d697474696e672061206368616c6c656e676520617265207472616e736665727265642e94202d2054686520736c61736865642066756e647320617265207472616e736665727265642e4c426c6f636b46756c6c6e657373506572696f6410103200000024f82054686520706572696f64206f6620626c6f636b7320666f722077686963682074686520626c6f636b2066756c6c6e65737320697320636865636b65642e00690120546869732069732074686520616d6f756e74206f6620626c6f636b732066726f6d2074686520706173742c20666f722077686963682074686520626c6f636b2066756c6c6e65737320686173206265656e20636865636b65645d0120616e642069732073746f7265642e20426c6f636b73206f6c646572207468616e206063757272656e745f626c6f636b60202d205b60436f6e6669673a3a426c6f636b46756c6c6e657373506572696f64605d206172655820636c65617265642066726f6d2073746f726167652e008101205468697320636f6e7374616e742073686f756c6420626520657175616c206f7220736d616c6c6572207468616e20746865205b60436f6e6669673a3a4368616c6c656e67655469636b73546f6c6572616e6365605d20636f6e7374616e742c7d012069662074686520676f616c20697320746f2070726576656e74207370616d6d696e672061747461636b73207468617420776f756c642070726576656e7420686f6e6573742050726f7669646572732066726f6d207375626d697474696e67582074686569722070726f6f667320696e2074696d652e54426c6f636b46756c6c6e65737348656164726f6f6d2818a291e146d10414390120546865206d696e696d756d20756e75736564207765696768742074686174206120626c6f636b206d757374206861766520746f20626520636f6e73696465726564205f6e6f745f2066756c6c2e009101205468697320697320757365642061732070617274206f662074686520637269746572696120666f7220636865636b696e6720696620746865206e6574776f726b2069732070726573756d61626c7920756e6465722061207370616d2061747461636b2e890120466f72206578616d706c652c20746869732063616e2062652073657420746f207468652062656e63686d61726b656420776569676874206f66206120607375626d69745f70726f6f66602065787472696e7369632c20776869636820776f756c648d01206d65616e2074686174206120626c6f636b206973206e6f7420636f6e736964657265642066756c6c206966206120607375626d69745f70726f6f66602065787472696e73696320636f756c642068617665207374696c6c2066697420696e2069742e544d696e4e6f7446756c6c426c6f636b73526174696f3903100065cd1d24710120546865206d696e696d756d20726174696f20286f722070657263656e7461676520696620796f752077696c6c29206f6620626c6f636b732074686174206d75737420626520636f6e73696465726564205f6e6f745f2066756c6c2c51012066726f6d2074686520746f74616c206e756d626572206f66205b60436f6e6669673a3a426c6f636b46756c6c6e657373506572696f64605d20626c6f636b732074616b656e20696e746f206163636f756e742e008501204966206c657373207468616e20746869732070657263656e74616765206f6620626c6f636b7320617265206e6f742066756c6c2c20746865206e6574776f726b7320697320636f6e7369646572656420746f2062652070726573756d61626c795420756e6465722061207370616d2061747461636b2e890120546869732063616e20616c736f2062652074686f75676874206f6620617320746865206d6178696d756d20726174696f206f66206d69736265686176696e6720636f6c6c61746f727320746f6c6572617465642e20466f72206578616d706c652ca10120696620746869732069732073657420746f206050657262696c6c3a3a66726f6d5f70657263656e7428353029602c207468656e206966206d6f7265207468616e2068616c66206f6620746865206c6173742060426c6f636b46756c6c6e657373506572696f6460850120626c6f636b7320617265206e6f742066756c6c2c207468656e206f6e65206f662074686f736520626c6f636b7320737572656c79207761732070726f647563656420627920616e20686f6e65737420636f6c6c61746f722c206d65616e696e677501207468617420746865726520776173206174206c65617374206f6e65207472756c79205f6e6f745f2066756c6c20626c6f636b20696e20746865206c6173742060426c6f636b46756c6c6e657373506572696f646020626c6f636b732e015d072a2852616e646f6d6e657373012852616e646f6d6e657373146c4c61746573744f6e6545706f636841676f52616e646f6d6e657373000061070400042d02204c61746573742072616e646f6d2073656564206f627461696e65642066726f6d20746865206f6e652065706f63682061676f2072616e646f6d6e6573732066726f6d20424142452c20616e6420746865206c617465737420626c6f636b20746861742069742063616e2070726f636573732072616e646f6d6e6573732072657175657374732066726f6d6c4c6174657374506172656e74426c6f636b52616e646f6d6e657373000061070400042902204c61746573742072616e646f6d2073656564206f627461696e65642066726f6d2074686520706172656e7420626c6f636b2072616e646f6d6e6573732066726f6d20424142452c20616e6420746865206c617465737420626c6f636b20746861742069742063616e2070726f636573732072616e646f6d6e6573732072657175657374732066726f6d2852656c617945706f636801003020000000000000000004502043757272656e742072656c61792065706f6368ac4c61737452656c6179426c6f636b416e6450617261426c6f636b56616c6964466f724e65787445706f636801004503200000000000000000043d01205468652072656c617920636861696e20626c6f636b2028616e6420616e63686f7265642070617261636861696e20626c6f636b2920746f20757365207768656e2065706f6368206368616e67657340496e686572656e74496e636c75646564000098040004e420456e737572657320746865206d616e6461746f727920696e686572656e742077617320696e636c7564656420696e2074686520626c6f636b019d0501a90200002b385061796d656e7453747265616d7301385061796d656e7453747265616d7328304f6e506f6c6c5469636b65720100101000000000180901204120636f756e746572206f6620626c6f636b7320666f722077686963682050726f7669646572732063616e206368617267652074686569722073747265616d732e009d01205468697320636f756e746572206973206e6f74206e65636573736172696c79207468652073616d652061732074686520626c6f636b206e756d6265722c20617320746865206c6173742063686172676561626c6520696e666f206f662050726f766964657273bd012028616e642074686520676c6f62616c20707269636520696e6465782920617265207570646174656420696e2074686520606f6e5f706f6c6c6020686f6f6b2c2077686963682068617070656e732061742074686520626567696e6e696e67206f6620657665727920626c6f636b2ced0120736f206c6f6e672061732074686520626c6f636b206973206e6f742070617274206f662061205b4d756c74692d426c6f636b2d4d6967726174696f6e5d2868747470733a2f2f6769746875622e636f6d2f706172697479746563682f706f6c6b61646f742d73646b2f70756c6c2f313738312920284d424d292e190120447572696e67204d424d732c2074686520626c6f636b206e756d62657220696e637265617365732c2062757420604f6e506f6c6c5469636b65726020646f6573206e6f742e5c4669786564526174655061796d656e7453747265616d7300010802026507690704002481012054686520646f75626c65206d617070696e672066726f6d20612050726f76696465722c20746f206974732070726f76696465642055736572732c20746f2074686569722066697865642d72617465207061796d656e742073747265616d732e0065012054686973206973207573656420746f2073746f726520616e64206d616e6167652066697865642d72617465207061796d656e742073747265616d73206265747765656e20557365727320616e642050726f7669646572732e007020546869732073746f72616765206973207570646174656420696e3a0502202d205b6372656174655f66697865645f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a6372656174655f66697865645f726174655f7061796d656e745f73747265616d292c20776869636820616464732061206e657720656e74727920746f20746865206d61702e4902202d205b64656c6574655f66697865645f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a64656c6574655f66697865645f726174655f7061796d656e745f73747265616d292c2077686963682072656d6f7665732074686520636f72726573706f6e64696e6720656e7472792066726f6d20746865206d61702e0102202d205b7570646174655f66697865645f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a7570646174655f66697865645f726174655f7061796d656e745f73747265616d292c20776869636820757064617465732074686520656e7472792773206072617465602ee501202d205b6368617267655f7061796d656e745f73747265616d735d2863726174653a3a646973706174636861626c65733a3a6368617267655f7061796d656e745f73747265616d73292c20776869636820757064617465732074686520656e747279277320606c6173745f636861726765645f7469636b602e6444796e616d6963526174655061796d656e7453747265616d73000108020265076d0704002489012054686520646f75626c65206d617070696e672066726f6d20612050726f76696465722c20746f206974732070726f76696465642055736572732c20746f2074686569722064796e616d69632d72617465207061796d656e742073747265616d732e006d012054686973206973207573656420746f2073746f726520616e64206d616e6167652064796e616d69632d72617465207061796d656e742073747265616d73206265747765656e20557365727320616e642050726f7669646572732e007020546869732073746f72616765206973207570646174656420696e3a1502202d205b6372656174655f64796e616d69635f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a6372656174655f64796e616d69635f726174655f7061796d656e745f73747265616d292c20776869636820616464732061206e657720656e74727920746f20746865206d61702e5902202d205b64656c6574655f64796e616d69635f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a64656c6574655f64796e616d69635f726174655f7061796d656e745f73747265616d292c2077686963682072656d6f7665732074686520636f72726573706f6e64696e6720656e7472792066726f6d20746865206d61702e3d02202d205b7570646174655f64796e616d69635f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a7570646174655f64796e616d69635f726174655f7061796d656e745f73747265616d292c20776869636820757064617465732074686520656e74727927732060616d6f756e745f70726f7669646564602e1502202d205b6368617267655f7061796d656e745f73747265616d735d2863726174653a3a646973706174636861626c65733a3a6368617267655f7061796d656e745f73747265616d73292c20776869636820757064617465732074686520656e7472792773206070726963655f696e6465785f7768656e5f6c6173745f63686172676564602e484c61737443686172676561626c65496e666f0101040234710750000000000000000000000000000000000000000018750220546865206d617070696e672066726f6d20612050726f766964657220746f20697473206c6173742063686172676561626c6520707269636520696e6465782028666f722064796e616d69632d72617465207061796d656e742073747265616d732920616e64206c6173742063686172676561626c65207469636b2028666f722066697865642d72617465207061796d656e742073747265616d73292e0069022054686973206973207573656420746f206b65657020747261636b206f6620746865206c6173742063686172676561626c6520707269636520696e64657820616e64207469636b206e756d62657220666f7220656163682050726f76696465722c20736f20746869732070616c6c65742063616e2063686172676520746865207061796d656e742073747265616d7320636f72726563746c792e007020546869732073746f72616765206973207570646174656420696e3a6502202d205b7570646174655f6c6173745f63686172676561626c655f696e666f5d2863726174653a3a5061796d656e744d616e616765723a3a7570646174655f6c6173745f63686172676561626c655f696e666f292c20776869636820757064617465732074686520656e747279277320606c6173745f63686172676561626c655f7469636b6020616e64206070726963655f696e646578602e704c6173745375626d6974746572735469636b52656769737465726564010010100000000014390120546865206c617374207469636b2066726f6d207468652050726f7669646572732050726f6f66205375626d6974746572732070616c6c657420746861742077617320726567697374657265642e00a5012054686973206973207573656420746f206b65657020747261636b206f6620746865206c617374207469636b2066726f6d207468652050726f7669646572732050726f6f66205375626d6974746572732070616c6c65742c207468617420746869732070616c6c6574a50120726567697374657265642e20466f7220746865207469636b20696e20746869732073746f7261676520656c656d656e742c20746869732070616c6c657420616c7265616479206b6e6f7773207468652050726f7669646572732074686174207375626d69747465643c20612076616c69642070726f6f662e445573657273576974686f757446756e6473000104020010040020c50120546865206d617070696e672066726f6d2061207573657220746f20696620697420686173206265656e20666c616767656420666f72206e6f7420686176696e6720656e6f7567682066756e647320746f2070617920666f7220697473207265717565737465642073657276696365732e00c5012054686973206973207573656420746f20666c6167207573657273207468617420646f206e6f74206861766520656e6f7567682066756e647320746f2070617920666f72207468656972207265717565737465642073657276696365732c20736f206f746865722050726f766964657273942063616e2073746f702070726f766964696e6720736572766963657320746f207468656d2e007020546869732073746f72616765206973207570646174656420696e3a9902202d205b6368617267655f7061796d656e745f73747265616d735d2863726174653a3a646973706174636861626c65733a3a6368617267655f7061796d656e745f73747265616d73292c20776869636820656d6974732061206055736572576974686f757446756e647360206576656e7420616e642073657473207468652075736572277320656e74727920696e2074686973206d617020696620697420646f6573206e6f745501206861766520656e6f7567682066756e64732c20616e6420636c656172732074686520656e747279206966206974207761732073657420616e642074686520757365722068617320656e6f7567682066756e64732e3c526567697374657265645573657273010104020010100000000028b90120546865206d617070696e672066726f6d2061207573657220746f20696620697420686173206265656e207265676973746572656420746f20746865206e6574776f726b20616e642074686520616d6f756e74206f66207061796d656e742073747265616d73206974206861732e0029022053696e6365207573657273206861766520746f2070726f766964652061206465706f73697420746f2062652061626c6520746f206f70656e2065616368207061796d656e742073747265616d2c2074686973206973207573656420746f206b65657020747261636b206f662074686520616d6f756e74206f66207061796d656e742073747265616d7361012074686174206120757365722068617320616e6420697420697320616c736f2075736566756c20746f20636865636b2069662061207573657220686173207265676973746572656420746f20746865206e6574776f726b2e007020546869732073746f72616765206973207570646174656420696e3a8102202d205b6372656174655f66697865645f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a6372656174655f66697865645f726174655f7061796d656e745f73747265616d292c20776869636820686f6c647320746865206465706f736974206f6620746865207573657220616e642061646473206f6e6520746f20746869732073746f726167652e9102202d205b6372656174655f64796e616d69635f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a6372656174655f64796e616d69635f726174655f7061796d656e745f73747265616d292c20776869636820686f6c647320746865206465706f736974206f6620746865207573657220616e642061646473206f6e6520746f20746869732073746f726167652e7102202d205b72656d6f76655f66697865645f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a72656d6f76655f66697865645f726174655f7061796d656e745f73747265616d292c2077686963682072656d6f766573206f6e652066726f6d20746869732073746f7261676520616e642072656c656173657320746865206465706f7369742e8102202d205b72656d6f76655f64796e616d69635f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a72656d6f76655f64796e616d69635f726174655f7061796d656e745f73747265616d292c2077686963682072656d6f766573206f6e652066726f6d20746869732073746f7261676520616e642072656c656173657320746865206465706f7369742e6843757272656e745072696365506572556e69745065725469636b0100184000000000000000000000000000000000181902205468652063757272656e742070726963652070657220756e697420706572207469636b206f66207468652070726f766964656420736572766963652c207573656420746f2063616c63756c6174652074686520616d6f756e7420746f2063686172676520666f722064796e616d69632d72617465207061796d656e742073747265616d732e009102205468697320697320757064617465642065616368207469636b207573696e672074686520666f726d756c61207468617420636f6e7369646572732063757272656e742073797374656d2063617061636974792028746f74616c2073746f72616765206f66207468652073797374656d2920616e642073797374656d20617661696c6162696c6974792028746f74616c2073746f7261676520617661696c61626c65292e007020546869732073746f72616765206973207570646174656420696e3a6d02202d205b646f5f7570646174655f63757272656e745f70726963655f7065725f756e69745f7065725f7469636b5d2863726174653a3a7574696c733a3a646f5f7570646174655f63757272656e745f70726963655f7065725f756e69745f7065725f7469636b292c2077686963682075706461746573207468652063757272656e742070726963652070657220756e697420706572207469636b2e54416363756d756c617465645072696365496e646578010018400000000000000000000000000000000020d1012054686520616363756d756c6174656420707269636520696e6465782073696e63652067656e657369732c207573656420746f2063616c63756c6174652074686520616d6f756e7420746f2063686172676520666f722064796e616d69632d72617465207061796d656e742073747265616d732e00f9012054686973206973206571756976616c656e7420746f207768617420697420776f756c64206861766520636f737420746f2070726f76696465206f6e6520756e6974206f66207468652070726f766964656420736572766963652073696e63652074686520626567696e6e696e67206f6620746865206e6574776f726b2e050220576520757365207468697320746f2063616c63756c6174652074686520616d6f756e7420746f2063686172676520666f722064796e616d69632d72617465207061796d656e742073747265616d732c20627920636865636b696e67206f75742074686520646966666572656e6365206265747765656e2074686520696e6465785501207768656e20746865207061796d656e742073747265616d20776173206c61737420636861726765642c20616e642074686520696e64657820617420746865206c6173742063686172676561626c65207469636b2e007020546869732073746f72616765206973207570646174656420696e3a2d02202d205b646f5f7570646174655f70726963655f696e6465785d2863726174653a3a7574696c733a3a646f5f7570646174655f70726963655f696e646578292c20776869636820757064617465732074686520616363756d756c6174656420707269636520696e6465782c20616464696e6720746f206974207468652063757272656e742070726963652e4c50726976696c6567656450726f76696465727300010402349804001084204d617070696e67206f662050726976696c656765642050726f7669646572732e004d012050726976696c656765642050726f766964657273206172652074686f73652077686f2061726520616c6c6f77656420746f2063686172676520757020746f207468652063757272656e74207469636b20696e21012066697865642072617465207061796d656e742073747265616d732c207265676172646c657373206f66207468656972205b604c61737443686172676561626c65496e666f605d2e01a10501ad0210404e657753747265616d4465706f73697410100a00000014910120546865206e756d626572206f66207469636b73207468617420636f72726573706f6e6420746f20746865206465706f7369742074686174206120557365722068617320746f2070617920746f206f70656e2061207061796d656e742073747265616d2ea1012054686973206d65616e7320746861742c2066726f6d207468652062616c616e6365206f6620746865205573657220666f7220776869636820746865207061796d656e742073747265616d206973206265696e6720637265617465642c2074686520616d6f756e74d420604e657753747265616d4465706f736974202a2072617465602077696c6c2062652068656c642061732061206465706f7369742e250220496e207468652063617365206f662064796e616d69632d72617465207061796d656e742073747265616d732c206072617465602077696c6c2062652060616d6f756e745f70726f7669646564202a2063757272656e745f736572766963655f7072696365602c207768657265206063757272656e745f736572766963655f70726963656020686173310120746f2062652070726f7669646564206279207468652070616c6c6574207573696e672074686520605061796d656e7453747265616d73496e746572666163656020696e746572666163652e6055736572576974686f757446756e6473436f6f6c646f776e10106400000008ed0120546865206e756d626572206f66207469636b732074686174206120757365722077696c6c206861766520746f207761697420616674657220697420686173206265656e20666c616767656420617320776974686f75742066756e647320746f2062652061626c6520746f20636c656172207468617420666c6167c90120616e642062652061626c6520746f2070617920666f7220736572766963657320616761696e2e204966207468657265277320616e79206f75747374616e64696e672064656274207768656e2074686520666c616720697320636c65617265642c2069742077696c6c20626520706169642e3c54726561737572794163636f756e740080000000000000000000000000000000000000000000000000000000000000000004310120546865207472656173757279206163636f756e74206f66207468652072756e74696d652c2077686572652061206672616374696f6e206f662065616368207061796d656e7420676f65732e404d61785573657273546f43686172676510100a00000008610120546865206d6178696d756d20616d6f756e74206f66205573657273207468617420612050726f76696465722063616e2063686172676520696e20612073696e676c652065787472696e73696320657865637574696f6e2ed5012054686973206973207573656420746f2070726576656e7420612050726f76696465722066726f6d206368617267696e6720746f6f206d616e7920557365727320696e20612073696e676c6520626c6f636b2c20776869636820636f756c64206c65616420746f206120446f532061747461636b2e0175072c284275636b65744e6674730001a50501b502000179072d104e66747301104e6674733c28436f6c6c656374696f6e00010402107d07040004642044657461696c73206f66206120636f6c6c656374696f6e2e4c4f776e657273686970416363657074616e636500010402001004000429012054686520636f6c6c656374696f6e2c20696620616e792c206f6620776869636820616e206163636f756e742069732077696c6c696e6720746f2074616b65206f776e6572736869702e1c4163636f756e7400010c020202810798040008590120546865206974656d732068656c6420627920616e7920676976656e206163636f756e743b20736574206f757420746869732077617920736f2074686174206974656d73206f776e656420627920612073696e676c656c206163636f756e742063616e20626520656e756d6572617465642e44436f6c6c656374696f6e4163636f756e74000108020285079804000869012054686520636f6c6c656374696f6e73206f776e656420627920616e7920676976656e206163636f756e743b20736574206f757420746869732077617920736f207468617420636f6c6c656374696f6e73206f776e65642062799020612073696e676c65206163636f756e742063616e20626520656e756d6572617465642e40436f6c6c656374696f6e526f6c654f66000108020289078d07040008d020546865206974656d7320696e206578697374656e636520616e64207468656972206f776e6572736869702064657461696c732ea02053746f72657320636f6c6c656374696f6e20726f6c657320617320706572206163636f756e742e104974656d000108020245039507040004d020546865206974656d7320696e206578697374656e636520616e64207468656972206f776e6572736869702064657461696c732e50436f6c6c656374696f6e4d657461646174614f660001040210ad0704000468204d65746164617461206f66206120636f6c6c656374696f6e2e384974656d4d657461646174614f6600010802024503b10704000454204d65746164617461206f6620616e206974656d2e2441747472696275746500011002020202b907bd07040004702041747472696275746573206f66206120636f6c6c656374696f6e2e2c4974656d50726963654f6600010802024503c507040004502041207072696365206f6620616e206974656d2e644974656d41747472696275746573417070726f76616c734f6601010802024503c90704000468204974656d2061747472696275746520617070726f76616c732e404e657874436f6c6c656374696f6e496400001004000831012053746f726573207468652060436f6c6c656374696f6e496460207468617420697320676f696e6720746f206265207573656420666f7220746865206e65787420636f6c6c656374696f6e2ef02054686973206765747320696e6372656d656e746564207768656e657665722061206e657720636f6c6c656374696f6e20697320637265617465642e3450656e64696e67537761704f6600010802024503d1070400047c2048616e646c657320616c6c207468652070656e64696e672073776170732e48436f6c6c656374696f6e436f6e6669674f660001040210b1050400046020436f6e666967206f66206120636f6c6c656374696f6e2e304974656d436f6e6669674f6600010802024503dd050400044c20436f6e666967206f6620616e206974656d2e01ad0501b9023844436f6c6c656374696f6e4465706f736974184000407a10f35a000000000000000000000401012054686520626173696320616d6f756e74206f662066756e64732074686174206d75737420626520726573657276656420666f7220636f6c6c656374696f6e2e2c4974656d4465706f73697418400010a5d4e8000000000000000000000004f42054686520626173696320616d6f756e74206f662066756e64732074686174206d75737420626520726573657276656420666f7220616e206974656d2e4c4d657461646174614465706f73697442617365184000a0724e180900000000000000000000044d012054686520626173696320616d6f756e74206f662066756e64732074686174206d757374206265207265736572766564207768656e20616464696e67206d6574616461746120746f20796f7572206974656d2e504174747269627574654465706f73697442617365184000a0724e1809000000000000000000000455012054686520626173696320616d6f756e74206f662066756e64732074686174206d757374206265207265736572766564207768656e20616464696e6720616e2061747472696275746520746f20616e206974656d2e384465706f7369745065724279746518400010a5d4e8000000000000000000000008590120546865206164646974696f6e616c2066756e64732074686174206d75737420626520726573657276656420666f7220746865206e756d626572206f662062797465732073746f726520696e206d657461646174612cc02065697468657220226e6f726d616c22206d65746164617461206f7220617474726962757465206d657461646174612e2c537472696e674c696d697410100001000004b020546865206d6178696d756d206c656e677468206f6620646174612073746f726564206f6e2d636861696e2e204b65794c696d697410104000000004a020546865206d6178696d756d206c656e677468206f6620616e20617474726962757465206b65792e2856616c75654c696d697410100001000004a820546865206d6178696d756d206c656e677468206f6620616e206174747269627574652076616c75652e38417070726f76616c734c696d697410101400000004a820546865206d6178696d756d20617070726f76616c7320616e206974656d20636f756c6420686176652e704974656d41747472696275746573417070726f76616c734c696d697410101400000004d420546865206d6178696d756d206174747269627574657320617070726f76616c7320616e206974656d20636f756c6420686176652e1c4d61785469707310100a00000004a820546865206d6178206e756d626572206f6620746970732061207573657220636f756c642073656e642e4c4d6178446561646c696e654475726174696f6e1010001a4f0004a820546865206d6178206475726174696f6e20696e20626c6f636b7320666f7220646561646c696e65732e504d61784174747269627574657350657243616c6c10100a00000004e020546865206d6178206e756d626572206f6620617474726962757465732061207573657220636f756c6420736574207065722063616c6c2e204665617475726573d50720000000000000000004902044697361626c657320736f6d65206f662070616c6c657427732066656174757265732e01dd073228506172616d65746572730128506172616d65746572730428506172616d657465727300010402e10231030400044c2053746f72656420706172616d65746572732e01090601dd02000033e107042848436865636b4e6f6e5a65726f53656e646572e9079840436865636b5370656356657273696f6eed071038436865636b547856657273696f6ef1071030436865636b47656e65736973f5073438436865636b4d6f7274616c697479f9073428436865636b4e6f6e63650108982c436865636b576569676874050898604368617267655472616e73616374696f6e5061796d656e740908985053746f726167655765696768745265636c61696d0d089844436865636b4d65746164617461486173681108801908" + "result": "0x6d6574610ef907000c1c73705f636f72651863727970746f2c4163636f756e7449643332000004000401205b75383b2033325d0000040000032000000008000800000503000c08306672616d655f73797374656d2c4163636f756e74496e666f08144e6f6e636501102c4163636f756e74446174610114001401146e6f6e63651001144e6f6e6365000124636f6e73756d657273100120526566436f756e7400012470726f766964657273100120526566436f756e7400012c73756666696369656e7473100120526566436f756e740001106461746114012c4163636f756e74446174610000100000050500140c3c70616c6c65745f62616c616e6365731474797065732c4163636f756e7444617461041c42616c616e63650118001001106672656518011c42616c616e6365000120726573657276656418011c42616c616e636500011866726f7a656e18011c42616c616e6365000114666c6167731c01284578747261466c61677300001800000507001c0c3c70616c6c65745f62616c616e636573147479706573284578747261466c61677300000400180110753132380000200000050000240c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540128000c01186e6f726d616c2801045400012c6f7065726174696f6e616c280104540001246d616e6461746f7279280104540000280c2873705f77656967687473247765696768745f76321857656967687400000801207265665f74696d652c010c75363400012870726f6f665f73697a652c010c75363400002c000006300030000005060034083c7072696d69746976655f74797065731048323536000004000401205b75383b2033325d00003800000208003c102873705f72756e74696d651c67656e65726963186469676573741844696765737400000401106c6f677340013c5665633c4469676573744974656d3e000040000002440044102873705f72756e74696d651c67656e6572696318646967657374284469676573744974656d0001142850726552756e74696d650800480144436f6e73656e737573456e67696e654964000038011c5665633c75383e00060024436f6e73656e7375730800480144436f6e73656e737573456e67696e654964000038011c5665633c75383e000400105365616c0800480144436f6e73656e737573456e67696e654964000038011c5665633c75383e000500144f74686572040038011c5665633c75383e0000006452756e74696d65456e7669726f6e6d656e745570646174656400080000480000030400000008004c00000250005008306672616d655f73797374656d2c4576656e745265636f7264080445015404540134000c011470686173650d03011450686173650001146576656e7454010445000118746f70696373250201185665633c543e000054084c73746f726167655f6875625f72756e74696d653052756e74696d654576656e7400014c1853797374656d04005801706672616d655f73797374656d3a3a4576656e743c52756e74696d653e0000003c50617261636861696e53797374656d04007c01bc63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d3a3a4576656e743c52756e74696d653e0001002042616c616e636573040084017c70616c6c65745f62616c616e6365733a3a4576656e743c52756e74696d653e000a00485472616e73616374696f6e5061796d656e7404008c01a870616c6c65745f7472616e73616374696f6e5f7061796d656e743a3a4576656e743c52756e74696d653e000b00105375646f040090016c70616c6c65745f7375646f3a3a4576656e743c52756e74696d653e000f0044436f6c6c61746f7253656c656374696f6e0400a001a470616c6c65745f636f6c6c61746f725f73656c656374696f6e3a3a4576656e743c52756e74696d653e0015001c53657373696f6e0400a8015470616c6c65745f73657373696f6e3a3a4576656e740016002458636d7051756575650400ac01a463756d756c75735f70616c6c65745f78636d705f71756575653a3a4576656e743c52756e74696d653e001e002c506f6c6b61646f7458636d0400b0016870616c6c65745f78636d3a3a4576656e743c52756e74696d653e001f002843756d756c757358636d0400dd01018863756d756c75735f70616c6c65745f78636d3a3a4576656e743c52756e74696d653e002000304d65737361676551756575650400e101019070616c6c65745f6d6573736167655f71756575653a3a4576656e743c52756e74696d653e0021002450726f7669646572730400f10101a070616c6c65745f73746f726167655f70726f7669646572733a3a4576656e743c52756e74696d653e0028002846696c6553797374656d04001102018870616c6c65745f66696c655f73797374656d3a3a4576656e743c52756e74696d653e0029003050726f6f66734465616c657204003102019070616c6c65745f70726f6f66735f6465616c65723a3a4576656e743c52756e74696d653e002a002852616e646f6d6e65737304007902018470616c6c65745f72616e646f6d6e6573733a3a4576656e743c52756e74696d653e002b00385061796d656e7453747265616d7304007d02019870616c6c65745f7061796d656e745f73747265616d733a3a4576656e743c52756e74696d653e002c00284275636b65744e66747304008502018870616c6c65745f6275636b65745f6e6674733a3a4576656e743c52756e74696d653e002d00104e66747304008902016c70616c6c65745f6e6674733a3a4576656e743c52756e74696d653e00320028506172616d65746572730400ad02018470616c6c65745f706172616d65746572733a3a4576656e743c52756e74696d653e00330000580c306672616d655f73797374656d1870616c6c6574144576656e7404045400011c4045787472696e7369635375636365737304013464697370617463685f696e666f5c01304469737061746368496e666f00000490416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e3c45787472696e7369634661696c656408013864697370617463685f6572726f7268013444697370617463684572726f7200013464697370617463685f696e666f5c01304469737061746368496e666f00010450416e2065787472696e736963206661696c65642e2c436f64655570646174656400020450603a636f6465602077617320757064617465642e284e65774163636f756e7404011c6163636f756e74000130543a3a4163636f756e7449640003046841206e6577206163636f756e742077617320637265617465642e344b696c6c65644163636f756e7404011c6163636f756e74000130543a3a4163636f756e74496400040458416e206163636f756e7420776173207265617065642e2052656d61726b656408011873656e646572000130543a3a4163636f756e7449640001106861736834011c543a3a48617368000504704f6e206f6e2d636861696e2072656d61726b2068617070656e65642e4455706772616465417574686f72697a6564080124636f64655f6861736834011c543a3a48617368000134636865636b5f76657273696f6e200110626f6f6c00060468416e20757067726164652077617320617574686f72697a65642e04704576656e7420666f72207468652053797374656d2070616c6c65742e5c0c346672616d655f737570706f7274206469737061746368304469737061746368496e666f00000c0118776569676874280118576569676874000114636c6173736001344469737061746368436c617373000120706179735f666565640110506179730000600c346672616d655f737570706f7274206469737061746368344469737061746368436c61737300010c184e6f726d616c0000002c4f7065726174696f6e616c000100244d616e6461746f727900020000640c346672616d655f737570706f727420646973706174636810506179730001080c596573000000084e6f0001000068082873705f72756e74696d653444697370617463684572726f72000138144f746865720000003043616e6e6f744c6f6f6b7570000100244261644f726967696e000200184d6f64756c6504006c012c4d6f64756c654572726f7200030044436f6e73756d657252656d61696e696e670004002c4e6f50726f76696465727300050040546f6f4d616e79436f6e73756d65727300060014546f6b656e0400700128546f6b656e4572726f720007002841726974686d65746963040074013c41726974686d657469634572726f72000800345472616e73616374696f6e616c04007801485472616e73616374696f6e616c4572726f7200090024457868617573746564000a0028436f7272757074696f6e000b002c556e617661696c61626c65000c0038526f6f744e6f74416c6c6f776564000d00006c082873705f72756e74696d652c4d6f64756c654572726f720000080114696e64657808010875380001146572726f7248018c5b75383b204d41585f4d4f44554c455f4552524f525f454e434f4445445f53495a455d000070082873705f72756e74696d6528546f6b656e4572726f720001284046756e6473556e617661696c61626c65000000304f6e6c7950726f76696465720001003042656c6f774d696e696d756d0002003043616e6e6f7443726561746500030030556e6b6e6f776e41737365740004001846726f7a656e0005002c556e737570706f727465640006004043616e6e6f74437265617465486f6c64000700344e6f74457870656e6461626c650008001c426c6f636b65640009000074083473705f61726974686d657469633c41726974686d657469634572726f7200010c24556e646572666c6f77000000204f766572666c6f77000100384469766973696f6e42795a65726f0002000078082873705f72756e74696d65485472616e73616374696f6e616c4572726f72000108304c696d6974526561636865640000001c4e6f4c61796572000100007c0c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d1870616c6c6574144576656e740404540001186056616c69646174696f6e46756e6374696f6e53746f726564000004d05468652076616c69646174696f6e2066756e6374696f6e20686173206265656e207363686564756c656420746f206170706c792e6456616c69646174696f6e46756e6374696f6e4170706c69656404015472656c61795f636861696e5f626c6f636b5f6e756d10015452656c6179436861696e426c6f636b4e756d62657200010445015468652076616c69646174696f6e2066756e6374696f6e20776173206170706c696564206173206f662074686520636f6e7461696e65642072656c617920636861696e20626c6f636b206e756d6265722e6c56616c69646174696f6e46756e6374696f6e446973636172646564000204b05468652072656c61792d636861696e2061626f727465642074686520757067726164652070726f636573732e60446f776e776172644d657373616765735265636569766564040114636f756e7410010c7533320003040101536f6d6520646f776e77617264206d657373616765732068617665206265656e20726563656976656420616e642077696c6c2062652070726f6365737365642e64446f776e776172644d6573736167657350726f63657373656408012c7765696768745f75736564280118576569676874000120646d715f6865616434014472656c61795f636861696e3a3a48617368000404e0446f776e77617264206d6573736167657320776572652070726f636573736564207573696e672074686520676976656e207765696768742e445570776172644d65737361676553656e740401306d6573736167655f6861736880013c4f7074696f6e3c58636d486173683e000504b8416e20757077617264206d657373616765207761732073656e7420746f207468652072656c617920636861696e2e047c54686520604576656e746020656e756d206f6620746869732070616c6c65748004184f7074696f6e04045401040108104e6f6e6500000010536f6d650400040000010000840c3c70616c6c65745f62616c616e6365731870616c6c6574144576656e740804540004490001581c456e646f77656408011c6163636f756e74000130543a3a4163636f756e744964000130667265655f62616c616e6365180128543a3a42616c616e6365000004b8416e206163636f756e74207761732063726561746564207769746820736f6d6520667265652062616c616e63652e20447573744c6f737408011c6163636f756e74000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650001083d01416e206163636f756e74207761732072656d6f7665642077686f73652062616c616e636520776173206e6f6e2d7a65726f206275742062656c6f77204578697374656e7469616c4465706f7369742c78726573756c74696e6720696e20616e206f75747269676874206c6f73732e205472616e736665720c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650002044c5472616e73666572207375636365656465642e2842616c616e636553657408010c77686f000130543a3a4163636f756e74496400011066726565180128543a3a42616c616e636500030468412062616c616e6365207761732073657420627920726f6f742e20526573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000404e0536f6d652062616c616e63652077617320726573657276656420286d6f7665642066726f6d206672656520746f207265736572766564292e28556e726573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000504e8536f6d652062616c616e63652077617320756e726573657276656420286d6f7665642066726f6d20726573657276656420746f2066726565292e4852657365727665526570617472696174656410011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500014864657374696e6174696f6e5f7374617475738801185374617475730006084d01536f6d652062616c616e636520776173206d6f7665642066726f6d207468652072657365727665206f6620746865206669727374206163636f756e7420746f20746865207365636f6e64206163636f756e742ed846696e616c20617267756d656e7420696e64696361746573207468652064657374696e6174696f6e2062616c616e636520747970652e1c4465706f73697408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000704d8536f6d6520616d6f756e7420776173206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e20576974686472617708010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650008041d01536f6d6520616d6f756e74207761732077697468647261776e2066726f6d20746865206163636f756e742028652e672e20666f72207472616e73616374696f6e2066656573292e1c536c617368656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650009040101536f6d6520616d6f756e74207761732072656d6f7665642066726f6d20746865206163636f756e742028652e672e20666f72206d69736265686176696f72292e184d696e74656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000a049c536f6d6520616d6f756e7420776173206d696e74656420696e746f20616e206163636f756e742e184275726e656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000b049c536f6d6520616d6f756e7420776173206275726e65642066726f6d20616e206163636f756e742e2453757370656e64656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000c041501536f6d6520616d6f756e74207761732073757370656e6465642066726f6d20616e206163636f756e74202869742063616e20626520726573746f726564206c61746572292e20526573746f72656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000d04a4536f6d6520616d6f756e742077617320726573746f72656420696e746f20616e206163636f756e742e20557067726164656404010c77686f000130543a3a4163636f756e744964000e0460416e206163636f756e74207761732075706772616465642e18497373756564040118616d6f756e74180128543a3a42616c616e6365000f042d01546f74616c2069737375616e63652077617320696e637265617365642062792060616d6f756e74602c206372656174696e6720612063726564697420746f2062652062616c616e6365642e2452657363696e646564040118616d6f756e74180128543a3a42616c616e63650010042501546f74616c2069737375616e636520776173206465637265617365642062792060616d6f756e74602c206372656174696e672061206465627420746f2062652062616c616e6365642e184c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500110460536f6d652062616c616e636520776173206c6f636b65642e20556e6c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500120468536f6d652062616c616e63652077617320756e6c6f636b65642e1846726f7a656e08010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500130460536f6d652062616c616e6365207761732066726f7a656e2e1854686177656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500140460536f6d652062616c616e636520776173207468617765642e4c546f74616c49737375616e6365466f7263656408010c6f6c64180128543a3a42616c616e636500010c6e6577180128543a3a42616c616e6365001504ac5468652060546f74616c49737375616e6365602077617320666f72636566756c6c79206368616e6765642e047c54686520604576656e746020656e756d206f6620746869732070616c6c65748814346672616d655f737570706f72741874726169747318746f6b656e73106d6973633442616c616e63655374617475730001081046726565000000205265736572766564000100008c0c6870616c6c65745f7472616e73616374696f6e5f7061796d656e741870616c6c6574144576656e74040454000104485472616e73616374696f6e466565506169640c010c77686f000130543a3a4163636f756e74496400012861637475616c5f66656518013042616c616e63654f663c543e00010c74697018013042616c616e63654f663c543e000008590141207472616e73616374696f6e20666565206061637475616c5f666565602c206f662077686963682060746970602077617320616464656420746f20746865206d696e696d756d20696e636c7573696f6e206665652c5c686173206265656e2070616964206279206077686f602e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574900c2c70616c6c65745f7375646f1870616c6c6574144576656e7404045400011014537564696404012c7375646f5f726573756c749401384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e00047041207375646f2063616c6c206a75737420746f6f6b20706c6163652e284b65794368616e67656408010c6f6c649c01504f7074696f6e3c543a3a4163636f756e7449643e04b4546865206f6c64207375646f206b657920286966206f6e65207761732070726576696f75736c7920736574292e010c6e6577000130543a3a4163636f756e7449640488546865206e6577207375646f206b657920286966206f6e652077617320736574292e010478546865207375646f206b657920686173206265656e20757064617465642e284b657952656d6f76656400020480546865206b657920776173207065726d616e656e746c792072656d6f7665642e285375646f4173446f6e6504012c7375646f5f726573756c749401384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e0304c841205b7375646f5f61735d2850616c6c65743a3a7375646f5f6173292063616c6c206a75737420746f6f6b20706c6163652e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574940418526573756c740804540198044501680108084f6b040098000000000c45727204006800000100009800000400009c04184f7074696f6e04045401000108104e6f6e6500000010536f6d650400000000010000a00c6470616c6c65745f636f6c6c61746f725f73656c656374696f6e1870616c6c6574144576656e74040454000128404e6577496e76756c6e657261626c6573040134696e76756c6e657261626c6573a401445665633c543a3a4163636f756e7449643e0000046c4e657720496e76756c6e657261626c65732077657265207365742e44496e76756c6e657261626c6541646465640401286163636f756e745f6964000130543a3a4163636f756e7449640001047441206e657720496e76756c6e657261626c65207761732061646465642e4c496e76756c6e657261626c6552656d6f7665640401286163636f756e745f6964000130543a3a4163636f756e74496400020470416e20496e76756c6e657261626c65207761732072656d6f7665642e504e65774465736972656443616e64696461746573040148646573697265645f63616e6469646174657310010c753332000304a4546865206e756d626572206f6620646573697265642063616e6469646174657320776173207365742e404e657743616e646964616379426f6e6404012c626f6e645f616d6f756e7418013042616c616e63654f663c543e0004046c5468652063616e64696461637920626f6e6420776173207365742e3843616e64696461746541646465640801286163636f756e745f6964000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e0005045c41206e65772063616e646964617465206a6f696e65642e5043616e646964617465426f6e64557064617465640801286163636f756e745f6964000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e00060470426f6e64206f6620612063616e64696461746520757064617465642e4043616e64696461746552656d6f7665640401286163636f756e745f6964000130543a3a4163636f756e74496400070460412063616e646964617465207761732072656d6f7665642e4443616e6469646174655265706c616365640c010c6f6c64000130543a3a4163636f756e74496400010c6e6577000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e000804f4416e206163636f756e7420776173207265706c6163656420696e207468652063616e646964617465206c69737420627920616e6f74686572206f6e652e68496e76616c6964496e76756c6e657261626c65536b69707065640401286163636f756e745f6964000130543a3a4163636f756e7449640009085501416e206163636f756e742077617320756e61626c6520746f20626520616464656420746f2074686520496e76756c6e657261626c65732062656361757365207468657920646964206e6f742068617665206b657973c8726567697374657265642e204f7468657220496e76756c6e657261626c6573206d61792068617665206265656e207365742e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574a40000020000a80c3870616c6c65745f73657373696f6e1870616c6c6574144576656e74000104284e657753657373696f6e04013473657373696f6e5f696e64657810013053657373696f6e496e64657800000839014e65772073657373696f6e206861732068617070656e65642e204e6f746520746861742074686520617267756d656e74206973207468652073657373696f6e20696e6465782c206e6f74207468659c626c6f636b206e756d626572206173207468652074797065206d6967687420737567676573742e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574ac0c6463756d756c75735f70616c6c65745f78636d705f71756575651870616c6c6574144576656e740404540001043c58636d704d65737361676553656e740401306d6573736167655f6861736804011c58636d48617368000004c0416e2048524d50206d657373616765207761732073656e7420746f2061207369626c696e672070617261636861696e2e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574b00c2870616c6c65745f78636d1870616c6c6574144576656e7404045400016024417474656d7074656404011c6f7574636f6d65b4015078636d3a3a6c61746573743a3a4f7574636f6d65000004a8457865637574696f6e206f6620616e2058434d206d6573736167652077617320617474656d707465642e1053656e741001186f726967696ebc01204c6f636174696f6e00012c64657374696e6174696f6ebc01204c6f636174696f6e00011c6d6573736167650501011c58636d3c28293e0001286d6573736167655f696404011c58636d486173680001045c412058434d206d657373616765207761732073656e742e48556e6578706563746564526573706f6e73650801186f726967696ebc01204c6f636174696f6e00012071756572795f696430011c5175657279496400020c5901517565727920726573706f6e736520726563656976656420776869636820646f6573206e6f74206d61746368206120726567697374657265642071756572792e2054686973206d61792062652062656361757365206155016d61746368696e6720717565727920776173206e6576657220726567697374657265642c206974206d617920626520626563617573652069742069732061206475706c696361746520726573706f6e73652c206f727062656361757365207468652071756572792074696d6564206f75742e34526573706f6e7365526561647908012071756572795f696430011c51756572794964000120726573706f6e736531010120526573706f6e73650003085d01517565727920726573706f6e736520686173206265656e20726563656976656420616e6420697320726561647920666f722074616b696e672077697468206074616b655f726573706f6e7365602e205468657265206973806e6f2072656769737465726564206e6f74696669636174696f6e2063616c6c2e204e6f7469666965640c012071756572795f696430011c5175657279496400013070616c6c65745f696e646578080108753800012863616c6c5f696e64657808010875380004085901517565727920726573706f6e736520686173206265656e20726563656976656420616e642071756572792069732072656d6f7665642e205468652072656769737465726564206e6f74696669636174696f6e20686173a86265656e206469737061746368656420616e64206578656375746564207375636365737366756c6c792e404e6f746966794f76657277656967687414012071756572795f696430011c5175657279496400013070616c6c65745f696e646578080108753800012863616c6c5f696e646578080108753800013461637475616c5f77656967687428011857656967687400014c6d61785f62756467657465645f77656967687428011857656967687400050c4901517565727920726573706f6e736520686173206265656e20726563656976656420616e642071756572792069732072656d6f7665642e205468652072656769737465726564206e6f74696669636174696f6e5901636f756c64206e6f742062652064697370617463686564206265636175736520746865206469737061746368207765696768742069732067726561746572207468616e20746865206d6178696d756d20776569676874e46f726967696e616c6c7920627564676574656420627920746869732072756e74696d6520666f722074686520717565727920726573756c742e4c4e6f7469667944697370617463684572726f720c012071756572795f696430011c5175657279496400013070616c6c65745f696e646578080108753800012863616c6c5f696e64657808010875380006085501517565727920726573706f6e736520686173206265656e20726563656976656420616e642071756572792069732072656d6f7665642e2054686572652077617320612067656e6572616c206572726f722077697468886469737061746368696e6720746865206e6f74696669636174696f6e2063616c6c2e484e6f746966794465636f64654661696c65640c012071756572795f696430011c5175657279496400013070616c6c65745f696e646578080108753800012863616c6c5f696e646578080108753800070c5101517565727920726573706f6e736520686173206265656e20726563656976656420616e642071756572792069732072656d6f7665642e205468652064697370617463682077617320756e61626c6520746f20626559016465636f64656420696e746f2061206043616c6c603b2074686973206d696768742062652064756520746f2064697370617463682066756e6374696f6e20686176696e672061207369676e6174757265207768696368946973206e6f742060286f726967696e2c20517565727949642c20526573706f6e736529602e40496e76616c6964526573706f6e6465720c01186f726967696ebc01204c6f636174696f6e00012071756572795f696430011c5175657279496400014465787065637465645f6c6f636174696f6e550101404f7074696f6e3c4c6f636174696f6e3e00080c5901457870656374656420717565727920726573706f6e736520686173206265656e2072656365697665642062757420746865206f726967696e206c6f636174696f6e206f662074686520726573706f6e736520646f657355016e6f74206d6174636820746861742065787065637465642e205468652071756572792072656d61696e73207265676973746572656420666f722061206c617465722c2076616c69642c20726573706f6e736520746f6c626520726563656976656420616e642061637465642075706f6e2e5c496e76616c6964526573706f6e64657256657273696f6e0801186f726967696ebc01204c6f636174696f6e00012071756572795f696430011c5175657279496400091c5101457870656374656420717565727920726573706f6e736520686173206265656e2072656365697665642062757420746865206578706563746564206f726967696e206c6f636174696f6e20706c6163656420696e4d0173746f7261676520627920746869732072756e74696d652070726576696f75736c792063616e6e6f74206265206465636f6465642e205468652071756572792072656d61696e7320726567697374657265642e0041015468697320697320756e6578706563746564202873696e63652061206c6f636174696f6e20706c6163656420696e2073746f7261676520696e20612070726576696f75736c7920657865637574696e674d0172756e74696d652073686f756c64206265207265616461626c65207072696f7220746f2071756572792074696d656f75742920616e642064616e6765726f75732073696e63652074686520706f737369626c79590176616c696420726573706f6e73652077696c6c2062652064726f707065642e204d616e75616c20676f7665726e616e636520696e74657276656e74696f6e2069732070726f6261626c7920676f696e6720746f2062651c6e65656465642e34526573706f6e736554616b656e04012071756572795f696430011c51756572794964000a04c8526563656976656420717565727920726573706f6e736520686173206265656e207265616420616e642072656d6f7665642e34417373657473547261707065640c011068617368340110483235360001186f726967696ebc01204c6f636174696f6e0001186173736574737501013c56657273696f6e6564417373657473000b04b8536f6d65206173736574732068617665206265656e20706c6163656420696e20616e20617373657420747261702e5456657273696f6e4368616e67654e6f74696669656410012c64657374696e6174696f6ebc01204c6f636174696f6e000118726573756c7410012858636d56657273696f6e000110636f7374110101184173736574730001286d6573736167655f696404011c58636d48617368000c0c2501416e2058434d2076657273696f6e206368616e6765206e6f74696669636174696f6e206d65737361676520686173206265656e20617474656d7074656420746f2062652073656e742e00e054686520636f7374206f662073656e64696e672069742028626f726e652062792074686520636861696e2920697320696e636c756465642e5c537570706f7274656456657273696f6e4368616e6765640801206c6f636174696f6ebc01204c6f636174696f6e00011c76657273696f6e10012858636d56657273696f6e000d08390154686520737570706f727465642076657273696f6e206f662061206c6f636174696f6e20686173206265656e206368616e6765642e2054686973206d69676874206265207468726f75676820616ec06175746f6d61746963206e6f74696669636174696f6e206f722061206d616e75616c20696e74657276656e74696f6e2e504e6f7469667954617267657453656e644661696c0c01206c6f636174696f6ebc01204c6f636174696f6e00012071756572795f696430011c517565727949640001146572726f72b8012058636d4572726f72000e0859014120676976656e206c6f636174696f6e2077686963682068616420612076657273696f6e206368616e676520737562736372697074696f6e207761732064726f70706564206f77696e6720746f20616e206572726f727c73656e64696e6720746865206e6f74696669636174696f6e20746f2069742e644e6f746966795461726765744d6967726174696f6e4661696c0801206c6f636174696f6ed901014456657273696f6e65644c6f636174696f6e00012071756572795f696430011c51756572794964000f0859014120676976656e206c6f636174696f6e2077686963682068616420612076657273696f6e206368616e676520737562736372697074696f6e207761732064726f70706564206f77696e6720746f20616e206572726f72b46d6967726174696e6720746865206c6f636174696f6e20746f206f7572206e65772058434d20666f726d61742e54496e76616c69645175657269657256657273696f6e0801186f726967696ebc01204c6f636174696f6e00012071756572795f696430011c5175657279496400101c5501457870656374656420717565727920726573706f6e736520686173206265656e20726563656976656420627574207468652065787065637465642071756572696572206c6f636174696f6e20706c6163656420696e4d0173746f7261676520627920746869732072756e74696d652070726576696f75736c792063616e6e6f74206265206465636f6465642e205468652071756572792072656d61696e7320726567697374657265642e0041015468697320697320756e6578706563746564202873696e63652061206c6f636174696f6e20706c6163656420696e2073746f7261676520696e20612070726576696f75736c7920657865637574696e674d0172756e74696d652073686f756c64206265207265616461626c65207072696f7220746f2071756572792074696d656f75742920616e642064616e6765726f75732073696e63652074686520706f737369626c79590176616c696420726573706f6e73652077696c6c2062652064726f707065642e204d616e75616c20676f7665726e616e636520696e74657276656e74696f6e2069732070726f6261626c7920676f696e6720746f2062651c6e65656465642e38496e76616c6964517565726965721001186f726967696ebc01204c6f636174696f6e00012071756572795f696430011c5175657279496400014065787065637465645f71756572696572bc01204c6f636174696f6e0001506d617962655f61637475616c5f71756572696572550101404f7074696f6e3c4c6f636174696f6e3e00110c5d01457870656374656420717565727920726573706f6e736520686173206265656e20726563656976656420627574207468652071756572696572206c6f636174696f6e206f662074686520726573706f6e736520646f657351016e6f74206d61746368207468652065787065637465642e205468652071756572792072656d61696e73207265676973746572656420666f722061206c617465722c2076616c69642c20726573706f6e736520746f6c626520726563656976656420616e642061637465642075706f6e2e5056657273696f6e4e6f74696679537461727465640c012c64657374696e6174696f6ebc01204c6f636174696f6e000110636f7374110101184173736574730001286d6573736167655f696404011c58636d486173680012085901412072656d6f746520686173207265717565737465642058434d2076657273696f6e206368616e6765206e6f74696669636174696f6e2066726f6d20757320616e64207765206861766520686f6e6f7265642069742e1d01412076657273696f6e20696e666f726d6174696f6e206d6573736167652069732073656e7420746f207468656d20616e642069747320636f737420697320696e636c756465642e5856657273696f6e4e6f746966795265717565737465640c012c64657374696e6174696f6ebc01204c6f636174696f6e000110636f7374110101184173736574730001286d6573736167655f696404011c58636d486173680013043d015765206861766520726571756573746564207468617420612072656d6f746520636861696e2073656e642075732058434d2076657273696f6e206368616e6765206e6f74696669636174696f6e732e6056657273696f6e4e6f74696679556e7265717565737465640c012c64657374696e6174696f6ebc01204c6f636174696f6e000110636f7374110101184173736574730001286d6573736167655f696404011c58636d4861736800140825015765206861766520726571756573746564207468617420612072656d6f746520636861696e2073746f70732073656e64696e672075732058434d2076657273696f6e206368616e6765386e6f74696669636174696f6e732e204665657350616964080118706179696e67bc01204c6f636174696f6e0001106665657311010118417373657473001504310146656573207765726520706169642066726f6d2061206c6f636174696f6e20666f7220616e206f7065726174696f6e20286f6674656e20666f72207573696e67206053656e6458636d60292e34417373657473436c61696d65640c011068617368340110483235360001186f726967696ebc01204c6f636174696f6e0001186173736574737501013c56657273696f6e6564417373657473001604c0536f6d65206173736574732068617665206265656e20636c61696d65642066726f6d20616e20617373657420747261706056657273696f6e4d6967726174696f6e46696e697368656404011c76657273696f6e10012858636d56657273696f6e00170484412058434d2076657273696f6e206d6967726174696f6e2066696e69736865642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574b4102c73746167696e675f78636d087634187472616974731c4f7574636f6d6500010c20436f6d706c6574650401107573656428011857656967687400000028496e636f6d706c657465080110757365642801185765696768740001146572726f72b801144572726f72000100144572726f720401146572726f72b801144572726f7200020000b8100c78636d08763318747261697473144572726f720001a0204f766572666c6f7700000034556e696d706c656d656e74656400010060556e74727573746564526573657276654c6f636174696f6e00020064556e7472757374656454656c65706f72744c6f636174696f6e000300304c6f636174696f6e46756c6c000400544c6f636174696f6e4e6f74496e7665727469626c65000500244261644f726967696e0006003c496e76616c69644c6f636174696f6e0007003441737365744e6f74466f756e64000800544661696c6564546f5472616e7361637441737365740009003c4e6f74576974686472617761626c65000a00484c6f636174696f6e43616e6e6f74486f6c64000b0054457863656564734d61784d65737361676553697a65000c005844657374696e6174696f6e556e737570706f72746564000d00245472616e73706f7274000e0028556e726f757461626c65000f0030556e6b6e6f776e436c61696d001000384661696c6564546f4465636f6465001100404d6178576569676874496e76616c6964001200384e6f74486f6c64696e674665657300130030546f6f457870656e736976650014001054726170040030010c753634001500404578706563746174696f6e46616c73650016003850616c6c65744e6f74466f756e64001700304e616d654d69736d617463680018004c56657273696f6e496e636f6d70617469626c6500190050486f6c64696e67576f756c644f766572666c6f77001a002c4578706f72744572726f72001b00385265616e63686f724661696c6564001c00184e6f4465616c001d0028466565734e6f744d6574001e00244c6f636b4572726f72001f00304e6f5065726d697373696f6e00200028556e616e63686f726564002100384e6f744465706f73697461626c650022004c556e68616e646c656458636d56657273696f6e002300485765696768744c696d69745265616368656404002801185765696768740024001c426172726965720025004c5765696768744e6f74436f6d70757461626c650026004445786365656473537461636b4c696d697400270000bc102c73746167696e675f78636d087634206c6f636174696f6e204c6f636174696f6e000008011c706172656e74730801087538000120696e746572696f72c001244a756e6374696f6e730000c0102c73746167696e675f78636d087634246a756e6374696f6e73244a756e6374696f6e7300012410486572650000000858310400c401484172633c5b4a756e6374696f6e3b20315d3e0001000858320400e801484172633c5b4a756e6374696f6e3b20325d3e0002000858330400ec01484172633c5b4a756e6374696f6e3b20335d3e0003000858340400f001484172633c5b4a756e6374696f6e3b20345d3e0004000858350400f401484172633c5b4a756e6374696f6e3b20355d3e0005000858360400f801484172633c5b4a756e6374696f6e3b20365d3e0006000858370400fc01484172633c5b4a756e6374696f6e3b20375d3e0007000858380400010101484172633c5b4a756e6374696f6e3b20385d3e00080000c400000301000000c800c8102c73746167696e675f78636d087634206a756e6374696f6e204a756e6374696f6e0001282450617261636861696e0400cc010c7533320000002c4163636f756e744964333208011c6e6574776f726bd001444f7074696f6e3c4e6574776f726b49643e00010869640401205b75383b2033325d000100384163636f756e74496e646578363408011c6e6574776f726bd001444f7074696f6e3c4e6574776f726b49643e000114696e6465782c010c753634000200304163636f756e744b6579323008011c6e6574776f726bd001444f7074696f6e3c4e6574776f726b49643e00010c6b6579d801205b75383b2032305d0003003850616c6c6574496e7374616e6365040008010875380004003047656e6572616c496e6465780400dc0110753132380005002847656e6572616c4b65790801186c656e6774680801087538000110646174610401205b75383b2033325d000600244f6e6c794368696c6400070024506c7572616c6974790801086964e00118426f6479496400011070617274e40120426f6479506172740008003c476c6f62616c436f6e73656e7375730400d401244e6574776f726b496400090000cc0000061000d004184f7074696f6e04045401d40108104e6f6e6500000010536f6d650400d40000010000d4102c73746167696e675f78636d087634206a756e6374696f6e244e6574776f726b496400012c24427947656e6573697304000401205b75383b2033325d000000184279466f726b080130626c6f636b5f6e756d62657230010c753634000128626c6f636b5f686173680401205b75383b2033325d00010020506f6c6b61646f74000200184b7573616d610003001c57657374656e6400040018526f636f636f00050018576f636f636f00060020457468657265756d040120636861696e5f69642c010c7536340007002c426974636f696e436f72650008002c426974636f696e4361736800090040506f6c6b61646f7442756c6c6574696e000a0000d8000003140000000800dc0000061800e0100c78636d087633206a756e6374696f6e18426f6479496400012810556e69740000001c4d6f6e696b6572040048011c5b75383b20345d00010014496e6465780400cc010c7533320002002445786563757469766500030024546563686e6963616c0004002c4c656769736c6174697665000500204a7564696369616c0006001c446566656e73650007003841646d696e697374726174696f6e00080020547265617375727900090000e4100c78636d087633206a756e6374696f6e20426f64795061727400011414566f6963650000001c4d656d62657273040114636f756e74cc010c753332000100204672616374696f6e08010c6e6f6dcc010c75333200011464656e6f6dcc010c7533320002004441744c6561737450726f706f7274696f6e08010c6e6f6dcc010c75333200011464656e6f6dcc010c753332000300484d6f72655468616e50726f706f7274696f6e08010c6e6f6dcc010c75333200011464656e6f6dcc010c75333200040000e800000302000000c800ec00000303000000c800f000000304000000c800f400000305000000c800f800000306000000c800fc00000307000000c800010100000308000000c80005010c2c73746167696e675f78636d0876340c58636d041043616c6c00000400090101585665633c496e737472756374696f6e3c43616c6c3e3e000009010000020d01000d010c2c73746167696e675f78636d0876342c496e737472756374696f6e041043616c6c0001c03457697468647261774173736574040011010118417373657473000000545265736572766541737365744465706f7369746564040011010118417373657473000100585265636569766554656c65706f727465644173736574040011010118417373657473000200345175657279526573706f6e736510012071756572795f69642c011c51756572794964000120726573706f6e736531010120526573706f6e73650001286d61785f77656967687428011857656967687400011c71756572696572550101404f7074696f6e3c4c6f636174696f6e3e000300345472616e7366657241737365740801186173736574731101011841737365747300012c62656e6566696369617279bc01204c6f636174696f6e000400505472616e736665725265736572766541737365740c01186173736574731101011841737365747300011064657374bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f6b696e64590101284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737428011857656967687400011063616c6c5d01014c446f75626c65456e636f6465643c43616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572cc010c7533320001406d61785f6d6573736167655f73697a65cc010c7533320001306d61785f6361706163697479cc010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74cc010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72cc010c75333200011873656e646572cc010c753332000124726563697069656e74cc010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e0400c00140496e746572696f724c6f636174696f6e000b002c5265706f72744572726f720400610101445175657279526573706f6e7365496e666f000c00304465706f73697441737365740801186173736574736501012c417373657446696c74657200012c62656e6566696369617279bc01204c6f636174696f6e000d004c4465706f7369745265736572766541737365740c01186173736574736501012c417373657446696c74657200011064657374bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e000e003445786368616e676541737365740c0110676976656501012c417373657446696c74657200011077616e741101011841737365747300011c6d6178696d616c200110626f6f6c000f005c496e6974696174655265736572766557697468647261770c01186173736574736501012c417373657446696c74657200011c72657365727665bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e00100040496e69746961746554656c65706f72740c01186173736574736501012c417373657446696c74657200011064657374bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e001100345265706f7274486f6c64696e67080134726573706f6e73655f696e666f610101445175657279526573706f6e7365496e666f0001186173736574736501012c417373657446696c74657200120030427579457865637574696f6e080110666565731901011441737365740001307765696768745f6c696d69747101012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204000501012458636d3c43616c6c3e0015002c536574417070656e64697804000501012458636d3c43616c6c3e00160028436c6561724572726f7200170028436c61696d4173736574080118617373657473110101184173736574730001187469636b6574bc01204c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f776569676874280118576569676874001a0048556e73756273637269626556657273696f6e001b00244275726e4173736574040011010118417373657473001c002c4578706563744173736574040011010118417373657473001d00304578706563744f726967696e0400550101404f7074696f6e3c4c6f636174696f6e3e001e002c4578706563744572726f720400350101504f7074696f6e3c287533322c204572726f72293e001f00504578706563745472616e7361637453746174757304004d0101384d617962654572726f72436f64650020002c517565727950616c6c657408012c6d6f64756c655f6e616d6538011c5665633c75383e000134726573706f6e73655f696e666f610101445175657279526573706f6e7365496e666f0021003045787065637450616c6c6574140114696e646578cc010c7533320001106e616d6538011c5665633c75383e00012c6d6f64756c655f6e616d6538011c5665633c75383e00012c63726174655f6d616a6f72cc010c75333200013c6d696e5f63726174655f6d696e6f72cc010c753332002200505265706f72745472616e736163745374617475730400610101445175657279526573706f6e7365496e666f0023004c436c6561725472616e736163745374617475730024003c556e6976657273616c4f726967696e0400c801204a756e6374696f6e002500344578706f72744d6573736167650c011c6e6574776f726bd401244e6574776f726b496400012c64657374696e6174696f6ec00140496e746572696f724c6f636174696f6e00010c78636d0501011c58636d3c28293e002600244c6f636b41737365740801146173736574190101144173736574000120756e6c6f636b6572bc01204c6f636174696f6e0027002c556e6c6f636b41737365740801146173736574190101144173736574000118746172676574bc01204c6f636174696f6e002800384e6f7465556e6c6f636b61626c6508011461737365741901011441737365740001146f776e6572bc01204c6f636174696f6e0029003452657175657374556e6c6f636b08011461737365741901011441737365740001186c6f636b6572bc01204c6f636174696f6e002a002c536574466565734d6f64650401306a69745f7769746864726177200110626f6f6c002b0020536574546f70696304000401205b75383b2033325d002c0028436c656172546f706963002d002c416c6961734f726967696e0400bc01204c6f636174696f6e002e003c556e70616964457865637574696f6e0801307765696768745f6c696d69747101012c5765696768744c696d6974000130636865636b5f6f726967696e550101404f7074696f6e3c4c6f636174696f6e3e002f00001101102c73746167696e675f78636d0876341461737365741841737365747300000400150101285665633c41737365743e000015010000021901001901102c73746167696e675f78636d087634146173736574144173736574000008010869641d01011c4173736574496400010c66756e2101012c46756e676962696c69747900001d01102c73746167696e675f78636d0876341461737365741c4173736574496400000400bc01204c6f636174696f6e00002101102c73746167696e675f78636d0876341461737365742c46756e676962696c6974790001082046756e6769626c650400dc0110753132380000002c4e6f6e46756e6769626c650400250101344173736574496e7374616e6365000100002501102c73746167696e675f78636d087634146173736574344173736574496e7374616e636500011824556e646566696e656400000014496e6465780400dc01107531323800010018417272617934040048011c5b75383b20345d0002001841727261793804002901011c5b75383b20385d0003001c4172726179313604002d0101205b75383b2031365d0004001c4172726179333204000401205b75383b2033325d0005000029010000030800000008002d0100000310000000080031010c2c73746167696e675f78636d08763420526573706f6e7365000118104e756c6c000000184173736574730400110101184173736574730001003c457865637574696f6e526573756c740400350101504f7074696f6e3c287533322c204572726f72293e0002001c56657273696f6e040010013873757065723a3a56657273696f6e0003002c50616c6c657473496e666f04003d010198426f756e6465645665633c50616c6c6574496e666f2c204d617850616c6c657473496e666f3e000400384469737061746368526573756c7404004d0101384d617962654572726f72436f646500050000350104184f7074696f6e0404540139010108104e6f6e6500000010536f6d6504003901000001000039010000040810b8003d010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454014101045300000400490101185665633c543e000041010c2c73746167696e675f78636d0876342850616c6c6574496e666f0000180114696e646578cc010c7533320001106e616d6545010180426f756e6465645665633c75382c204d617850616c6c65744e616d654c656e3e00012c6d6f64756c655f6e616d6545010180426f756e6465645665633c75382c204d617850616c6c65744e616d654c656e3e0001146d616a6f72cc010c7533320001146d696e6f72cc010c7533320001147061746368cc010c753332000045010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e000049010000024101004d010c0c78636d087633384d617962654572726f72436f646500010c1c53756363657373000000144572726f7204005101018c426f756e6465645665633c75382c204d617844697370617463684572726f724c656e3e000100385472756e63617465644572726f7204005101018c426f756e6465645665633c75382c204d617844697370617463684572726f724c656e3e0002000051010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000550104184f7074696f6e04045401bc0108104e6f6e6500000010536f6d650400bc000001000059010c0c78636d087633284f726967696e4b696e64000110184e617469766500000040536f7665726569676e4163636f756e74000100245375706572757365720002000c58636d000300005d010c0c78636d38646f75626c655f656e636f64656434446f75626c65456e636f646564040454000004011c656e636f64656438011c5665633c75383e000061010c2c73746167696e675f78636d087634445175657279526573706f6e7365496e666f00000c012c64657374696e6174696f6ebc01204c6f636174696f6e00012071756572795f69642c011c517565727949640001286d61785f77656967687428011857656967687400006501102c73746167696e675f78636d0876341461737365742c417373657446696c74657200010820446566696e6974650400110101184173736574730000001057696c6404006901012457696c644173736574000100006901102c73746167696e675f78636d0876341461737365742457696c6441737365740001100c416c6c00000014416c6c4f6608010869641d01011c4173736574496400010c66756e6d01013c57696c6446756e676962696c69747900010028416c6c436f756e7465640400cc010c75333200020030416c6c4f66436f756e7465640c010869641d01011c4173736574496400010c66756e6d01013c57696c6446756e676962696c697479000114636f756e74cc010c753332000300006d01102c73746167696e675f78636d0876341461737365743c57696c6446756e676962696c6974790001082046756e6769626c650000002c4e6f6e46756e6769626c650001000071010c0c78636d0876332c5765696768744c696d697400010824556e6c696d697465640000001c4c696d697465640400280118576569676874000100007501080c78636d3c56657273696f6e656441737365747300010c08563204007901013c76323a3a4d756c74694173736574730001000856330400ad01013c76333a3a4d756c746941737365747300030008563404001101012876343a3a417373657473000400007901100c78636d087632286d756c746961737365742c4d756c7469417373657473000004007d01013c5665633c4d756c746941737365743e00007d010000028101008101100c78636d087632286d756c74696173736574284d756c74694173736574000008010869648501011c4173736574496400010c66756ea501012c46756e676962696c69747900008501100c78636d087632286d756c746961737365741c4173736574496400010820436f6e63726574650400890101344d756c74694c6f636174696f6e000000204162737472616374040038011c5665633c75383e000100008901100c78636d087632346d756c74696c6f636174696f6e344d756c74694c6f636174696f6e000008011c706172656e74730801087538000120696e746572696f728d0101244a756e6374696f6e7300008d01100c78636d087632346d756c74696c6f636174696f6e244a756e6374696f6e7300012410486572650000000858310400910101204a756e6374696f6e0001000858320800910101204a756e6374696f6e0000910101204a756e6374696f6e0002000858330c00910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0003000858341000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0004000858351400910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0005000858361800910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0006000858371c00910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0007000858382000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e000800009101100c78636d087632206a756e6374696f6e204a756e6374696f6e0001242450617261636861696e0400cc010c7533320000002c4163636f756e744964333208011c6e6574776f726b950101244e6574776f726b496400010869640401205b75383b2033325d000100384163636f756e74496e646578363408011c6e6574776f726b950101244e6574776f726b4964000114696e6465782c010c753634000200304163636f756e744b6579323008011c6e6574776f726b950101244e6574776f726b496400010c6b6579d801205b75383b2032305d0003003850616c6c6574496e7374616e6365040008010875380004003047656e6572616c496e6465780400dc0110753132380005002847656e6572616c4b65790400990101805765616b426f756e6465645665633c75382c20436f6e73745533323c33323e3e000600244f6e6c794368696c6400070024506c7572616c69747908010869649d010118426f6479496400011070617274a1010120426f6479506172740008000095010c0c78636d087632244e6574776f726b49640001100c416e79000000144e616d65640400990101805765616b426f756e6465645665633c75382c20436f6e73745533323c33323e3e00010020506f6c6b61646f74000200184b7573616d610003000099010c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401080453000004003801185665633c543e00009d010c0c78636d08763218426f6479496400012810556e6974000000144e616d65640400990101805765616b426f756e6465645665633c75382c20436f6e73745533323c33323e3e00010014496e6465780400cc010c7533320002002445786563757469766500030024546563686e6963616c0004002c4c656769736c6174697665000500204a7564696369616c0006001c446566656e73650007003841646d696e697374726174696f6e00080020547265617375727900090000a1010c0c78636d08763220426f64795061727400011414566f6963650000001c4d656d62657273040114636f756e74cc010c753332000100204672616374696f6e08010c6e6f6dcc010c75333200011464656e6f6dcc010c7533320002004441744c6561737450726f706f7274696f6e08010c6e6f6dcc010c75333200011464656e6f6dcc010c753332000300484d6f72655468616e50726f706f7274696f6e08010c6e6f6dcc010c75333200011464656e6f6dcc010c75333200040000a501100c78636d087632286d756c746961737365742c46756e676962696c6974790001082046756e6769626c650400dc0110753132380000002c4e6f6e46756e6769626c650400a90101344173736574496e7374616e636500010000a901100c78636d087632286d756c74696173736574344173736574496e7374616e636500011c24556e646566696e656400000014496e6465780400dc01107531323800010018417272617934040048011c5b75383b20345d0002001841727261793804002901011c5b75383b20385d0003001c4172726179313604002d0101205b75383b2031365d0004001c4172726179333204000401205b75383b2033325d00050010426c6f62040038011c5665633c75383e00060000ad01100c78636d087633286d756c746961737365742c4d756c746941737365747300000400b101013c5665633c4d756c746941737365743e0000b101000002b50100b501100c78636d087633286d756c74696173736574284d756c7469417373657400000801086964b901011c4173736574496400010c66756ed101012c46756e676962696c6974790000b901100c78636d087633286d756c746961737365741c4173736574496400010820436f6e63726574650400bd0101344d756c74694c6f636174696f6e00000020416273747261637404000401205b75383b2033325d00010000bd01102c73746167696e675f78636d087633346d756c74696c6f636174696f6e344d756c74694c6f636174696f6e000008011c706172656e74730801087538000120696e746572696f72c10101244a756e6374696f6e730000c101100c78636d087633246a756e6374696f6e73244a756e6374696f6e7300012410486572650000000858310400c50101204a756e6374696f6e0001000858320800c50101204a756e6374696f6e0000c50101204a756e6374696f6e0002000858330c00c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0003000858341000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0004000858351400c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0005000858361800c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0006000858371c00c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0007000858382000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e00080000c501100c78636d087633206a756e6374696f6e204a756e6374696f6e0001282450617261636861696e0400cc010c7533320000002c4163636f756e744964333208011c6e6574776f726bc90101444f7074696f6e3c4e6574776f726b49643e00010869640401205b75383b2033325d000100384163636f756e74496e646578363408011c6e6574776f726bc90101444f7074696f6e3c4e6574776f726b49643e000114696e6465782c010c753634000200304163636f756e744b6579323008011c6e6574776f726bc90101444f7074696f6e3c4e6574776f726b49643e00010c6b6579d801205b75383b2032305d0003003850616c6c6574496e7374616e6365040008010875380004003047656e6572616c496e6465780400dc0110753132380005002847656e6572616c4b65790801186c656e6774680801087538000110646174610401205b75383b2033325d000600244f6e6c794368696c6400070024506c7572616c6974790801086964e00118426f6479496400011070617274e40120426f6479506172740008003c476c6f62616c436f6e73656e7375730400cd0101244e6574776f726b496400090000c90104184f7074696f6e04045401cd010108104e6f6e6500000010536f6d650400cd010000010000cd01100c78636d087633206a756e6374696f6e244e6574776f726b496400012c24427947656e6573697304000401205b75383b2033325d000000184279466f726b080130626c6f636b5f6e756d62657230010c753634000128626c6f636b5f686173680401205b75383b2033325d00010020506f6c6b61646f74000200184b7573616d610003001c57657374656e6400040018526f636f636f00050018576f636f636f00060020457468657265756d040120636861696e5f69642c010c7536340007002c426974636f696e436f72650008002c426974636f696e4361736800090040506f6c6b61646f7442756c6c6574696e000a0000d101100c78636d087633286d756c746961737365742c46756e676962696c6974790001082046756e6769626c650400dc0110753132380000002c4e6f6e46756e6769626c650400d50101344173736574496e7374616e636500010000d501100c78636d087633286d756c74696173736574344173736574496e7374616e636500011824556e646566696e656400000014496e6465780400dc01107531323800010018417272617934040048011c5b75383b20345d0002001841727261793804002901011c5b75383b20385d0003001c4172726179313604002d0101205b75383b2031365d0004001c4172726179333204000401205b75383b2033325d00050000d901080c78636d4456657273696f6e65644c6f636174696f6e00010c08563204008901014476323a3a4d756c74694c6f636174696f6e0001000856330400bd01014476333a3a4d756c74694c6f636174696f6e0003000856340400bc013076343a3a4c6f636174696f6e00040000dd010c4863756d756c75735f70616c6c65745f78636d1870616c6c6574144576656e7404045400010c34496e76616c6964466f726d617404000401205b75383b2033325d00000880446f776e77617264206d65737361676520697320696e76616c69642058434d2e205c5b206964205c5d48556e737570706f7274656456657273696f6e04000401205b75383b2033325d000108bc446f776e77617264206d65737361676520697320756e737570706f727465642076657273696f6e206f662058434d2e205c5b206964205c5d404578656375746564446f776e7761726408000401205b75383b2033325d0000b4011c4f7574636f6d65000208c4446f776e77617264206d65737361676520657865637574656420776974682074686520676976656e206f7574636f6d652e445c5b2069642c206f7574636f6d65205c5d047c54686520604576656e746020656e756d206f6620746869732070616c6c6574e1010c5070616c6c65745f6d6573736167655f71756575651870616c6c6574144576656e740404540001104050726f63657373696e674661696c65640c010869643401104832353604945468652060626c616b65325f323536602068617368206f6620746865206d6573736167652e01186f726967696ee50101484d6573736167654f726967696e4f663c543e0464546865207175657565206f6620746865206d6573736167652e01146572726f72ed01014c50726f636573734d6573736167654572726f721060546865206572726f722074686174206f636375727265642e00490154686973206572726f7220697320707265747479206f70617175652e204d6f72652066696e652d677261696e6564206572726f7273206e65656420746f20626520656d6974746564206173206576656e74736862792074686520604d65737361676550726f636573736f72602e000455014d657373616765206469736361726465642064756520746f20616e206572726f7220696e2074686520604d65737361676550726f636573736f72602028757375616c6c79206120666f726d6174206572726f72292e2450726f63657373656410010869643401104832353604945468652060626c616b65325f323536602068617368206f6620746865206d6573736167652e01186f726967696ee50101484d6573736167654f726967696e4f663c543e0464546865207175657565206f6620746865206d6573736167652e012c7765696768745f7573656428011857656967687404c0486f77206d7563682077656967687420776173207573656420746f2070726f6365737320746865206d6573736167652e011c73756363657373200110626f6f6c18885768657468657220746865206d657373616765207761732070726f6365737365642e0049014e6f74652074686174207468697320646f6573206e6f74206d65616e20746861742074686520756e6465726c79696e6720604d65737361676550726f636573736f72602077617320696e7465726e616c6c7935017375636365737366756c2e204974202a736f6c656c792a206d65616e73207468617420746865204d512070616c6c65742077696c6c2074726561742074686973206173206120737563636573734d01636f6e646974696f6e20616e64206469736361726420746865206d6573736167652e20416e7920696e7465726e616c206572726f72206e6565647320746f20626520656d6974746564206173206576656e74736862792074686520604d65737361676550726f636573736f72602e0104544d6573736167652069732070726f6365737365642e484f766572776569676874456e71756575656410010869640401205b75383b2033325d04945468652060626c616b65325f323536602068617368206f6620746865206d6573736167652e01186f726967696ee50101484d6573736167654f726967696e4f663c543e0464546865207175657565206f6620746865206d6573736167652e0128706167655f696e64657810012450616765496e64657804605468652070616765206f6620746865206d6573736167652e01346d6573736167655f696e64657810011c543a3a53697a6504a454686520696e646578206f6620746865206d6573736167652077697468696e2074686520706167652e02048c4d65737361676520706c6163656420696e206f7665727765696768742071756575652e28506167655265617065640801186f726967696ee50101484d6573736167654f726967696e4f663c543e0458546865207175657565206f662074686520706167652e0114696e64657810012450616765496e646578045854686520696e646578206f662074686520706167652e03045454686973207061676520776173207265617065642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574e501085c63756d756c75735f7072696d6974697665735f636f7265584167677265676174654d6573736167654f726967696e00010c104865726500000018506172656e740001001c5369626c696e670400e901011850617261496400020000e9010c74706f6c6b61646f745f70617261636861696e5f7072696d697469766573287072696d6974697665730849640000040010010c7533320000ed0110346672616d655f737570706f727418747261697473206d657373616765734c50726f636573734d6573736167654572726f7200011824426164466f726d61740000001c436f72727570740001002c556e737570706f72746564000200284f7665727765696768740400280118576569676874000300145969656c6400040044537461636b4c696d69745265616368656400050000f1010c6070616c6c65745f73746f726167655f70726f7669646572731870616c6c6574144576656e740404540001385c4d7370526571756573745369676e5570537563636573730c010c77686f000130543a3a4163636f756e7449640001386d756c7469616464726573736573f50101444d756c74696164647265737365733c543e000120636170616369747930014853746f7261676544617461556e69743c543e000008b1014576656e7420656d6974746564207768656e2061204d61696e2053746f726167652050726f7669646572206861732072657175657374656420746f207369676e207570207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f7574e50174686174204d53502773206163636f756e742069642c20697473206d756c74696164647265737365732c2074686520746f74616c20646174612069742063616e2073746f7265206163636f7264696e6720746f20697473207374616b652c20616e64206974732076616c75652070726f706f736974696f6e2e404d73705369676e55705375636365737314010c77686f000130543a3a4163636f756e7449640001186d73705f69643401604d61696e53746f7261676550726f766964657249643c543e0001386d756c7469616464726573736573f50101444d756c74696164647265737365733c543e000120636170616369747930014853746f7261676544617461556e69743c543e00012876616c75655f70726f700102016456616c756550726f706f736974696f6e5769746849643c543e000108b5014576656e7420656d6974746564207768656e2061204d61696e2053746f726167652050726f76696465722068617320636f6e6669726d656420697473207369676e207570207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f7574dd0174686174204d53502773206163636f756e742069642c2074686520746f74616c20646174612069742063616e2073746f7265206163636f7264696e6720746f20697473207374616b652c20697473206d756c7469616464726573732c20616e64206974732076616c75652070726f706f736974696f6e2e5c427370526571756573745369676e5570537563636573730c010c77686f000130543a3a4163636f756e7449640001386d756c7469616464726573736573f50101444d756c74696164647265737365733c543e000120636170616369747930014853746f7261676544617461556e69743c543e000208b9014576656e7420656d6974746564207768656e2061204261636b75702053746f726167652050726f7669646572206861732072657175657374656420746f207369676e207570207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f7574890174686174204253502773206163636f756e742069642c20697473206d756c74696164647265737365732c20616e642074686520746f74616c20646174612069742063616e2073746f7265206163636f7264696e6720746f20697473207374616b652e404273705369676e55705375636365737310010c77686f000130543a3a4163636f756e7449640001186273705f69643401684261636b757053746f7261676550726f766964657249643c543e0001386d756c7469616464726573736573f50101444d756c74696164647265737365733c543e000120636170616369747930014853746f7261676544617461556e69743c543e000308bd014576656e7420656d6974746564207768656e2061204261636b75702053746f726167652050726f76696465722068617320636f6e6669726d656420697473207369676e207570207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f7574810174686174204253502773206163636f756e742069642c2074686520746f74616c20646174612069742063616e2073746f7265206163636f7264696e6720746f20697473207374616b652c20616e6420697473206d756c7469616464726573732e545369676e55705265717565737443616e63656c656404010c77686f000130543a3a4163636f756e7449640004087d014576656e7420656d6974746564207768656e2061207369676e207570207265717565737420686173206265656e2063616e63656c6564207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f7574d4746865206163636f756e74206964206f6620746865207573657220746861742063616e63656c65642074686520726571756573742e444d73705369676e4f66665375636365737308010c77686f000130543a3a4163636f756e7449640001186d73705f69643401604d61696e53746f7261676550726f766964657249643c543e00050889014576656e7420656d6974746564207768656e2061204d61696e2053746f726167652050726f766964657220686173207369676e6564206f6666207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f75745874686174204d53502773206163636f756e742069642e444273705369676e4f66665375636365737308010c77686f000130543a3a4163636f756e7449640001186273705f69643401684261636b757053746f7261676550726f766964657249643c543e00060891014576656e7420656d6974746564207768656e2061204261636b75702053746f726167652050726f766964657220686173207369676e6564206f6666207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f75745874686174204253502773206163636f756e742069642e3c43617061636974794368616e67656414010c77686f000130543a3a4163636f756e74496400012c70726f76696465725f69640d02015053746f7261676550726f766964657249643c543e0001306f6c645f636170616369747930014853746f7261676544617461556e69743c543e0001306e65775f636170616369747930014853746f7261676544617461556e69743c543e0001786e6578745f626c6f636b5f7768656e5f6368616e67655f616c6c6f776564100144426c6f636b4e756d626572466f723c543e00070865014576656e7420656d6974746564207768656e206120535020686173206368616e67656420697473206361706163697479207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f75744901746861742053502773206163636f756e742069642c20697473206f6c6420746f74616c2064617461207468617420636f756c642073746f72652c20616e6420746865206e657720746f74616c20646174612e1c536c617368656408012c70726f76696465725f69643401244861736849643c543e000138616d6f756e745f736c617368656418013042616c616e63654f663c543e000804a84576656e7420656d6974746564207768656e20616e20535020686173206265656e20736c61736865642e444275636b6574526f6f744368616e6765640c01246275636b65745f696434012c4275636b657449643c543e0001206f6c645f726f6f743401544d65726b6c655061747269636961526f6f743c543e0001206e65775f726f6f743401544d65726b6c655061747269636961526f6f743c543e000904d04576656e7420656d6974746564207768656e2061206275636b6574277320726f6f7420686173206265656e206368616e6765642e444d756c746941646472657373416464656408012c70726f76696465725f69643401244861736849643c543e0001406e65775f6d756c746961646472657373f901013c4d756c7469416464726573733c543e000a0429014576656e7420656d6974746564207768656e20612050726f7669646572206861732061646465642061206e6577204d756c74694164647265737320746f20697473206163636f756e742e4c4d756c74694164647265737352656d6f76656408012c70726f76696465725f69643401244861736849643c543e00015072656d6f7665645f6d756c746961646472657373f901013c4d756c7469416464726573733c543e000b0429014576656e7420656d6974746564207768656e20612050726f7669646572206861732072656d6f7665642061204d756c7469416464726573732066726f6d20697473206163636f756e742e3856616c756550726f7041646465640c01186d73705f69643401604d61696e53746f7261676550726f766964657249643c543e00013476616c75655f70726f705f696434013856616c756550726f7049643c543e00012876616c75655f70726f700502014c56616c756550726f706f736974696f6e3c543e000c04dc4576656e7420656d6974746564207768656e20616e204d535020616464732061206e65772076616c75652070726f706f736974696f6e2e5056616c756550726f70556e617661696c61626c650801186d73705f69643401604d61696e53746f7261676550726f766964657249643c543e00013476616c75655f70726f705f696434013856616c756550726f7049643c543e000d0409014576656e7420656d6974746564207768656e20616e204d535027732076616c75652070726f706f736974696f6e206973206d61646520756e617661696c61626c652e04b4546865206576656e747320746861742063616e20626520656d697474656420627920746869732070616c6c6574f5010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401f901045300000400fd0101185665633c543e0000f9010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000fd01000002f9010001020c6070616c6c65745f73746f726167655f70726f7669646572731474797065735856616c756550726f706f736974696f6e5769746849640404540000080108696434013856616c756550726f7049643c543e00012876616c75655f70726f700502014c56616c756550726f706f736974696f6e3c543e000005020c6070616c6c65745f73746f726167655f70726f7669646572731474797065734056616c756550726f706f736974696f6e040454000010018070726963655f7065725f756e69745f6f665f646174615f7065725f626c6f636b18013042616c616e63654f663c543e000128636f6d6d69746d656e7409020134436f6d6d69746d656e743c543e0001446275636b65745f646174615f6c696d697430014853746f7261676544617461556e69743c543e000124617661696c61626c65200110626f6f6c000009020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e00000d020c6070616c6c65745f73746f726167655f70726f7669646572731474797065734453746f7261676550726f76696465724964040454000108544261636b757053746f7261676550726f766964657204003401684261636b757053746f7261676550726f766964657249643c543e0000004c4d61696e53746f7261676550726f766964657204003401604d61696e53746f7261676550726f766964657249643c543e0001000011020c4870616c6c65745f66696c655f73797374656d1870616c6c6574144576656e74040454000164244e65774275636b65741c010c77686f000130543a3a4163636f756e7449640001186d73705f6964150201604f7074696f6e3c50726f76696465724964466f723c543e3e0001246275636b65745f69643401384275636b65744964466f723c543e0001106e616d65f90101404275636b65744e616d65466f723c543e000134636f6c6c656374696f6e5f6964190201684f7074696f6e3c436f6c6c656374696f6e4964466f723c543e3e00011c70726976617465200110626f6f6c00013476616c75655f70726f705f6964150201584f7074696f6e3c56616c756550726f7049643c543e3e000004b04e6f74696669657320746861742061206e6577206275636b657420686173206265656e20637265617465642e344275636b657444656c657465640c010c77686f000130543a3a4163636f756e7449640001246275636b65745f69643401384275636b65744964466f723c543e00014c6d617962655f636f6c6c656374696f6e5f6964190201684f7074696f6e3c436f6c6c656374696f6e4964466f723c543e3e000104bc4e6f746966696573207468617420616e20656d707479206275636b657420686173206265656e2064656c657465642e4c4d6f76654275636b65745265717565737465640c010c77686f000130543a3a4163636f756e7449640001246275636b65745f69643401384275636b65744964466f723c543e0001286e65775f6d73705f696434014050726f76696465724964466f723c543e000204cc4e6f74696669657320746861742061206275636b6574206973206265696e67206d6f76656420746f2061206e6577204d53502e504275636b6574507269766163795570646174656410010c77686f000130543a3a4163636f756e7449640001246275636b65745f69643401384275636b65744964466f723c543e000134636f6c6c656374696f6e5f6964190201684f7074696f6e3c436f6c6c656374696f6e4964466f723c543e3e00011c70726976617465200110626f6f6c000304c84e6f74696669657320746861742061206275636b65742773207072697661637920686173206265656e20757064617465642e6c4e6577436f6c6c656374696f6e416e644173736f63696174696f6e0c010c77686f000130543a3a4163636f756e7449640001246275636b65745f69643401384275636b65744964466f723c543e000134636f6c6c656374696f6e5f6964100148436f6c6c656374696f6e4964466f723c543e00040435014e6f74696669657320746861742061206e657720636f6c6c656374696f6e20686173206265656e206372656174656420616e64206173736f63696174656420776974682061206275636b65742e444e657753746f72616765526571756573741c010c77686f000130543a3a4163636f756e74496400012066696c655f6b65793401344d65726b6c65486173683c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001206c6f636174696f6e1d02013c46696c654c6f636174696f6e3c543e00012c66696e6765727072696e7434013846696e6765727072696e743c543e00011073697a6530013853746f72616765446174613c543e000120706565725f696473f5010128506565724964733c543e000504e44e6f74696669657320746861742061206e65772066696c6520686173206265656e2072657175657374656420746f2062652073746f7265642e644d7370416363657074656453746f726167655265717565737404012066696c655f6b65793401344d65726b6c65486173683c543e0006248d014e6f74696669657320746861742061204d61696e2053746f726167652050726f766964657220284d5350292068617320616363657074656420612073746f72616765207265717565737420666f7220612073706563696669632066696c65206b65792e00450154686973206576656e7420697320656d6974746564207768656e20616e204d53502061677265657320746f2073746f726520612066696c652c20627574207468652073746f72616765207265717565737445016973206e6f74207965742066756c6c792066756c66696c6c65642028692e652e2c20746865207265717569726564206e756d626572206f66204261636b75702053746f726167652050726f7669646572738068617665206e6f742079657420636f6e6669726d65642073746f72616765292e001823204e6f7465410154686973206576656e74206973206e6f7420656d6974746564207768656e207468652073746f72616765207265717565737420697320696d6d6564696174656c792066756c66696c6c65642075706f6e59014d535020616363657074616e63652e20496e20737563682063617365732c2061205b6053746f726167655265717565737446756c66696c6c6564605d206576656e7420697320656d697474656420696e73746561642e504163636570746564427370566f6c756e746565721c01186273705f696434014050726f76696465724964466f723c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001206c6f636174696f6e1d02013c46696c654c6f636174696f6e3c543e00012c66696e6765727072696e7434013846696e6765727072696e743c543e0001386d756c7469616464726573736573f50101444d756c74694164647265737365733c543e0001146f776e6572000130543a3a4163636f756e74496400011073697a6530013853746f72616765446174613c543e000704f04e6f746966696573207468617420612042535020686173206265656e20616363657074656420746f2073746f7265206120676976656e2066696c652e4c427370436f6e6669726d656453746f72696e6710010c77686f000130543a3a4163636f756e7449640001186273705f696434014050726f76696465724964466f723c543e00012466696c655f6b657973210201f0426f756e6465645665633c4d65726b6c65486173683c543e2c20543a3a4d61784261746368436f6e6669726d53746f7261676552657175657374733e0001206e65775f726f6f743401344d65726b6c65486173683c543e000804c04e6f746966696573207468617420612042535020636f6e6669726d65642073746f72696e6720612066696c652873292e5c53746f726167655265717565737446756c66696c6c656404012066696c655f6b65793401344d65726b6c65486173683c543e00090c09014e6f746966696573207468617420612073746f72616765207265717565737420666f7220612066696c65206b657920686173206265656e2066756c66696c6c65642e4d0154686973206d65616e732074686174207468652073746f72616765207265717565737420686173206265656e20616363657074656420627920746865204d535020616e6420746865204253502074617267657444686173206265656e20726561636865642e5453746f72616765526571756573744578706972656404012066696c655f6b65793401344d65726b6c65486173683c543e000a1055014e6f746966696573207468652065787069726174696f6e206f6620612073746f7261676520726571756573742e2054686973206d65616e732074686174207468652073746f726167652072657175657374206861734d016265656e20616363657074656420627920746865204d53502062757420746865204253502074617267657420686173206e6f74206265656e20726561636865642028706f737369626c7920302042535073292e55014e6f74653a205468697320697320612076616c69642073746f72616765206f7574636f6d652c207468652075736572206265696e6720726573706f6e7369626c6520746f20747261636b20746865206e756d62657261016f66204253507320616e642063686f6f736520746f206569746865722064656c657465207468652066696c6520616e642072652d697373756520612073746f726167652072657175657374206f7220636f6e74696e75652e5453746f72616765526571756573745265766f6b656404012066696c655f6b65793401344d65726b6c65486173683c543e000b0c39014e6f746966696573207468617420612073746f72616765207265717565737420686173206265656e207265766f6b65642062792074686520757365722077686f20696e697469617465642069742e61014e6f74653a2074686520425350732077686f20636f6e6669726d6564207468652066696c652061726520616c736f206973737565642061207072696f72697479206368616c6c656e676520746f2064656c657465207468651466696c652e5853746f726167655265717565737452656a656374656408012066696c655f6b65793401344d65726b6c65486173683c543e000118726561736f6e2902017052656a656374656453746f7261676552657175657374526561736f6e000c103d014e6f746966696573207468617420612073746f7261676520726571756573742068617320656974686572206265656e206469726563746c792072656a656374656420627920746865204d5350206f72dc746865204d535020646964206e6f7420726573706f6e6420746f207468652073746f72616765207265717565737420696e2074696d652e4d014e6f74653a205468657265206d6967687420626520425350732074686174206861766520766f6c756e74656572656420616e6420636f6e6669726d6564207468652066696c6520616c72656164792c20666f72f477686963682061207072696f72697479206368616c6c656e676520746f2064656c657465207468652066696c652077696c6c206265206973737565642e64427370526571756573746564546f53746f7053746f72696e671001186273705f696434014050726f76696465724964466f723c543e00012066696c655f6b65793401344d65726b6c65486173683c543e0001146f776e6572000130543a3a4163636f756e7449640001206c6f636174696f6e1d02013c46696c654c6f636174696f6e3c543e000d0060427370436f6e6669726d53746f7070656453746f72696e670c01186273705f696434014050726f76696465724964466f723c543e00012066696c655f6b65793401344d65726b6c65486173683c543e0001206e65775f726f6f743401344d65726b6c65486173683c543e000e04bc4e6f7469666965732074686174206120425350206861732073746f707065642073746f72696e6720612066696c652e985072696f726974794368616c6c656e6765466f7246696c6544656c6574696f6e5175657565640801186973737565722d0201644569746865724163636f756e7449644f724d737049643c543e00012066696c655f6b65793401344d65726b6c65486173683c543e000f0451014e6f746966696573207468617420612066696c65206b657920686173206265656e2071756575656420666f722061207072696f72697479206368616c6c656e676520666f722066696c652064656c6574696f6e2e68537053746f7053746f72696e67496e736f6c76656e745573657214011473705f696434014050726f76696465724964466f723c543e00012066696c655f6b65793401344d65726b6c65486173683c543e0001146f776e6572000130543a3a4163636f756e7449640001206c6f636174696f6e1d02013c46696c654c6f636174696f6e3c543e0001206e65775f726f6f743401344d65726b6c65486173683c543e00100455014e6f74696669657320746861742061205350206861732073746f707065642073746f72696e6720612066696c65206265636175736520697473206f776e657220686173206265636f6d6520696e736f6c76656e742e784661696c6564546f51756575655072696f726974794368616c6c656e676508011075736572000130543a3a4163636f756e74496400012066696c655f6b65793401344d65726b6c65486173683c543e00110445014e6f74696669657320746861742061207072696f72697479206368616c6c656e6765206661696c656420746f2062652071756575656420666f722070656e64696e672066696c652064656c6574696f6e2e4c46696c6544656c6574696f6e5265717565737414011075736572000130543a3a4163636f756e74496400012066696c655f6b65793401344d65726b6c65486173683c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001186d73705f6964150201604f7074696f6e3c50726f76696465724964466f723c543e3e00014870726f6f665f6f665f696e636c7573696f6e200110626f6f6c001204944e6f746966696573207468617420612066696c652077696c6c2062652064656c657465642eac50726f6f665375626d6974746564466f7250656e64696e6746696c6544656c6574696f6e526571756573741401186d73705f696434014050726f76696465724964466f723c543e00011075736572000130543a3a4163636f756e74496400012066696c655f6b65793401344d65726b6c65486173683c543e0001246275636b65745f69643401384275636b65744964466f723c543e00014870726f6f665f6f665f696e636c7573696f6e200110626f6f6c00130435014e6f746966696573207468617420612070726f6f6620686173206265656e207375626d697474656420666f7220612070656e64696e672066696c652064656c6574696f6e20726571756573742e704273704368616c6c656e67654379636c65496e697469616c6973656408010c77686f000130543a3a4163636f756e7449640001186273705f696434014050726f76696465724964466f723c543e00140845014e6f74696669657320746861742061204253502773206368616c6c656e6765206379636c6520686173206265656e20696e697469616c697365642c20616464696e67207468652066697273742066696c65ac6b657928732920746f20746865204253502773204d65726b6c6520506174726963696120466f726573742e604d6f76654275636b657452657175657374457870697265640801186d73705f696434014050726f76696465724964466f723c543e0001246275636b65745f69643401384275636b65744964466f723c543e001504c04e6f74696669657320746861742061206d6f7665206275636b657420726571756573742068617320657870697265642e484d6f76654275636b657441636365707465640801246275636b65745f69643401384275636b65744964466f723c543e0001186d73705f696434014050726f76696465724964466f723c543e001604cc4e6f74696669657320746861742061206275636b657420686173206265656e206d6f76656420746f2061206e6577204d53502e484d6f76654275636b657452656a65637465640801246275636b65745f69643401384275636b65744964466f723c543e0001186d73705f696434014050726f76696465724964466f723c543e00170405014e6f74696669657320746861742061206275636b6574206d6f7665207265717565737420686173206265656e2072656a656374656420627920746865204d53502e5c4d737053746f7070656453746f72696e674275636b65740c01186d73705f696434014050726f76696465724964466f723c543e0001146f776e6572000130543a3a4163636f756e7449640001246275636b65745f69643401384275636b65744964466f723c543e001804c44e6f74696669657320746861742061204d5350206861732073746f707065642073746f72696e672061206275636b65742e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574150204184f7074696f6e04045401340108104e6f6e6500000010536f6d650400340000010000190204184f7074696f6e04045401100108104e6f6e6500000010536f6d6504001000000100001d020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e000021020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540134045300000400250201185665633c543e00002502000002340029020c4870616c6c65745f66696c655f73797374656d1474797065737052656a656374656453746f7261676552657175657374526561736f6e00011458526561636865644d6178696d756d4361706163697479000000505265636569766564496e76616c696450726f6f660001005046696c654b6579416c726561647953746f72656400020038526571756573744578706972656400030034496e7465726e616c4572726f72000400002d020c4870616c6c65745f66696c655f73797374656d147479706573584569746865724163636f756e7449644f724d73704964040454000108244163636f756e7449640400000130543a3a4163636f756e744964000000144d73704964040034014050726f76696465724964466f723c543e0001000031020c5070616c6c65745f70726f6f66735f6465616c65721870616c6c6574144576656e74040454000124304e65774368616c6c656e676508010c77686f00013c4163636f756e744964466f723c543e0001386b65795f6368616c6c656e6765643401244b6579466f723c543e0000048441206d616e75616c206368616c6c656e676520776173207375626d69747465642e3450726f6f6641636365707465640c012070726f766964657234014050726f76696465724964466f723c543e00011470726f6f663502012050726f6f663c543e0001406c6173745f7469636b5f70726f76656e100144426c6f636b4e756d626572466f723c543e00010454412070726f6f66207761732061636365707465642e404e65774368616c6c656e6765536565640801446368616c6c656e6765735f7469636b6572100144426c6f636b4e756d626572466f723c543e0001107365656434015852616e646f6d6e6573734f7574707574466f723c543e0002048c41206e6577206368616c6c656e67652073656564207761732067656e6572617465642e584e6577436865636b706f696e744368616c6c656e67650801446368616c6c656e6765735f7469636b6572100144426c6f636b4e756d626572466f723c543e0001286368616c6c656e6765735d02015d01426f756e6465645665633c284b6579466f723c543e2c204f7074696f6e3c5472696552656d6f76654d75746174696f6e3e292c0a4d6178437573746f6d4368616c6c656e676573506572426c6f636b466f723c543e2c3e000304a441206e657720636865636b706f696e74206368616c6c656e6765207761732067656e6572617465642e44536c61736861626c6550726f766964657208012070726f766964657234014050726f76696465724964466f723c543e00015c6e6578745f6368616c6c656e67655f646561646c696e65100144426c6f636b4e756d626572466f723c543e0004045901412070726f766964657220776173206d61726b656420617320736c61736861626c6520616e64207468656972206368616c6c656e676520646561646c696e652077617320666f72636566756c6c79207075736865642e704e6f5265636f72644f664c6173745375626d697474656450726f6f6604012070726f766964657234014050726f76696465724964466f723c543e000504f84e6f207265636f7264206f6620746865206c617374207469636b207468652050726f7669646572207375626d697474656420612070726f6f6620666f722e704e65774368616c6c656e67654379636c65496e697469616c6973656410013063757272656e745f7469636b100144426c6f636b4e756d626572466f723c543e00015c6e6578745f6368616c6c656e67655f646561646c696e65100144426c6f636b4e756d626572466f723c543e00012070726f766964657234014050726f76696465724964466f723c543e0001586d617962655f70726f76696465725f6163636f756e749c01504f7074696f6e3c543a3a4163636f756e7449643e000604b4412070726f76696465722773206368616c6c656e6765206379636c652077617320696e697469616c697365642e404d75746174696f6e734170706c6965640c012070726f766964657234014050726f76696465724964466f723c543e0001246d75746174696f6e73710201905665633c284b6579466f723c543e2c205472696552656d6f76654d75746174696f6e293e0001206e65775f726f6f743401244b6579466f723c543e000704c84120736574206f66206d75746174696f6e7320686173206265656e206170706c69656420746f2074686520466f726573742e4c4368616c6c656e6765735469636b6572536574040118706175736564200110626f6f6c000804d4546865205b604368616c6c656e6765735469636b6572605d20686173206265656e20706175736564206f7220756e7061757365642e047c54686520604576656e746020656e756d206f6620746869732070616c6c657435020c5070616c6c65745f70726f6f66735f6465616c65721474797065731450726f6f660404540000080130666f726573745f70726f6f6639020164466f72657374566572696669657250726f6f66466f723c543e0001286b65795f70726f6f66734102018042547265654d61703c4b6579466f723c543e2c204b657950726f6f663c543e3e000039020c1c73705f747269653473746f726167655f70726f6f6630436f6d7061637450726f6f660000040134656e636f6465645f6e6f6465733d0201305665633c5665633c75383e3e00003d0200000238004102042042547265654d617008044b01340456014502000400550200000045020c5070616c6c65745f70726f6f66735f6465616c6572147479706573204b657950726f6f66040454000008011470726f6f66490201584b6579566572696669657250726f6f66466f723c543e00013c6368616c6c656e67655f636f756e7410010c753332000049020c547368705f66696c655f6b65795f76657269666965721474797065733046696c654b657950726f6f66000008013466696c655f6d657461646174614d0201d846696c654d657461646174613c485f4c454e4754482c204348554e4b5f53495a452c2053495a455f544f5f4348414c4c454e4745533e00011470726f6f6639020130436f6d7061637450726f6f6600004d0208447368705f66696c655f6d657461646174613046696c654d6574616461746100001401146f776e657238011c5665633c75383e0001246275636b65745f696438011c5665633c75383e0001206c6f636174696f6e38011c5665633c75383e00012466696c655f73697a652c010c75363400012c66696e6765727072696e745102015446696e6765727072696e743c485f4c454e4754483e0000510208447368705f66696c655f6d657461646174612c46696e6765727072696e7400000400040138486173683c485f4c454e4754483e00005502000002590200590200000408344502005d020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540161020453000004006d0201185665633c543e000061020000040834650200650204184f7074696f6e0404540169020108104e6f6e6500000010536f6d65040069020000010000690208287368705f747261697473485472696552656d6f76654d75746174696f6e000000006d0200000261020071020000027502007502000004083469020079020c4470616c6c65745f72616e646f6d6e6573731870616c6c6574144576656e74040454000104844e65774f6e6545706f636841676f52616e646f6d6e657373417661696c61626c650c013c72616e646f6d6e6573735f7365656434011c543a3a4861736800012866726f6d5f65706f636830010c75363400014476616c69645f756e74696c5f626c6f636b100144426c6f636b4e756d626572466f723c543e00000419014576656e7420656d6974746564207768656e2061206e65772072616e646f6d207365656420697320617661696c61626c652066726f6d207468652072656c617920636861696e047c54686520604576656e746020656e756d206f6620746869732070616c6c65747d020c5870616c6c65745f7061796d656e745f73747265616d731870616c6c6574144576656e74040454000130744669786564526174655061796d656e7453747265616d437265617465640c0130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e0001107261746518013042616c616e63654f663c543e000008e5014576656e7420656d6974746564207768656e20612066697865642d72617465207061796d656e742073747265616d20697320637265617465642e2050726f766964657320696e666f726d6174696f6e2061626f7574207468652050726f766964657220616e642055736572206f66207468652073747265616d54616e642069747320696e697469616c20726174652e744669786564526174655061796d656e7453747265616d557064617465640c0130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e0001206e65775f7261746518013042616c616e63654f663c543e000108e5014576656e7420656d6974746564207768656e20612066697865642d72617465207061796d656e742073747265616d20697320757064617465642e2050726f766964657320696e666f726d6174696f6e2061626f757420746865205573657220616e642050726f7669646572206f66207468652073747265616d7c616e6420746865206e65772072617465206f66207468652073747265616d2e744669786564526174655061796d656e7453747265616d44656c65746564080130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e000204e9014576656e7420656d6974746564207768656e20612066697865642d72617465207061796d656e742073747265616d2069732072656d6f7665642e2050726f766964657320696e666f726d6174696f6e2061626f757420746865205573657220616e642050726f7669646572206f66207468652073747265616d2e7c44796e616d6963526174655061796d656e7453747265616d437265617465640c0130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e00013c616d6f756e745f70726f766964656430014c556e69747350726f7669646564466f723c543e000308ed014576656e7420656d6974746564207768656e20612064796e616d69632d72617465207061796d656e742073747265616d20697320637265617465642e2050726f766964657320696e666f726d6174696f6e2061626f757420746865205573657220616e642050726f7669646572206f66207468652073747265616d80616e642074686520696e697469616c20616d6f756e742070726f76696465642e7c44796e616d6963526174655061796d656e7453747265616d557064617465640c0130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e00014c6e65775f616d6f756e745f70726f766964656430014c556e69747350726f7669646564466f723c543e000408ed014576656e7420656d6974746564207768656e20612064796e616d69632d72617465207061796d656e742073747265616d20697320757064617465642e2050726f766964657320696e666f726d6174696f6e2061626f757420746865205573657220616e642050726f7669646572206f66207468652073747265616d70616e6420746865206e657720616d6f756e742070726f76696465642e7c44796e616d6963526174655061796d656e7453747265616d44656c65746564080130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e000504f1014576656e7420656d6974746564207768656e20612064796e616d69632d72617465207061796d656e742073747265616d2069732072656d6f7665642e2050726f766964657320696e666f726d6174696f6e2061626f757420746865205573657220616e642050726f7669646572206f66207468652073747265616d2e505061796d656e7453747265616d43686172676564140130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e000118616d6f756e7418013042616c616e63654f663c543e0001446c6173745f7469636b5f63686172676564100144426c6f636b4e756d626572466f723c543e00013c636861726765645f61745f7469636b100144426c6f636b4e756d626572466f723c543e00060879014576656e7420656d6974746564207768656e2061207061796d656e7420697320636861726765642e2050726f766964657320696e666f726d6174696f6e2061626f757420746865207573657220746861742077617320636861726765642ca9017468652050726f76696465722074686174207265636569766564207468652066756e64732c20746865207469636b20757020746f20776869636820697420776173206368617267656420616e642074686520616d6f756e7420746861742077617320636861726765642e305573657273436861726765640c0134757365725f6163636f756e7473810201b4426f756e6465645665633c543a3a4163636f756e7449642c20543a3a4d61785573657273546f4368617267653e00012c70726f76696465725f696434014050726f76696465724964466f723c543e00013c636861726765645f61745f7469636b100144426c6f636b4e756d626572466f723c543e000708a5014576656e7420656d6974746564207768656e206d756c7469706c65207061796d656e742073747265616d732068617665206265656e20636861726765642066726f6d20612050726f76696465722e2050726f766964657320696e666f726d6174696f6e2061626f7574790174686520636861726765642075736572732c207468652050726f76696465722074686174207265636569766564207468652066756e647320616e6420746865207469636b207768656e20746865206368617267652068617070656e65642e644c61737443686172676561626c65496e666f557064617465640c012c70726f76696465725f696434014050726f76696465724964466f723c543e0001506c6173745f63686172676561626c655f7469636b100144426c6f636b4e756d626572466f723c543e00016c6c6173745f63686172676561626c655f70726963655f696e64657818013042616c616e63654f663c543e00080821024576656e7420656d6974746564207768656e20612050726f76696465722773206c6173742063686172676561626c65207469636b20616e6420707269636520696e6465782061726520757064617465642e2050726f766964657320696e666f726d6174696f6e2061626f7574207468652050726f7669646572206f66207468652073747265616d2c3501746865207469636b206e756d626572206f6620746865206c6173742063686172676561626c65207469636b20616e642074686520707269636520696e6465782061742074686174207469636b2e4055736572576974686f757446756e647304010c77686f000130543a3a4163636f756e74496400090c19024576656e7420656d6974746564207768656e20612050726f766964657220697320636f72726563746c7920747279696e6720746f206368617267652061205573657220616e642074686174205573657220646f6573206e6f74206861766520656e6f7567682066756e647320746f2070617920666f722074686569722073657276696365732e390254686973206576656e7420697320656d697474656420746f20666c616720746865207573657220616e64206c657420746865206e6574776f726b206b6e6f772074686174207468652075736572206973206e6f7420706179696e6720666f7220746865207265717565737465642073657276696365732c20736f206f746865722050726f7669646572732063616e9473746f702070726f766964696e6720736572766963657320746f207468617420757365722e345573657250616964446562747304010c77686f000130543a3a4163636f756e744964000a0449024576656e7420656d6974746564207768656e20612055736572207468617420686173206265656e20666c6167676564206173206e6f7420686176696e6720656e6f7567682066756e647320746f2070617920666f7220746865697220636f6e7472616374656420736572766963657320686173207061696420616c6c20697473206f75747374616e64696e6720646562742e2c55736572536f6c76656e7404010c77686f000130543a3a4163636f756e744964000b083d024576656e7420656d6974746564207768656e20612055736572207468617420686173206265656e20666c6167676564206173206e6f7420686176696e6720656e6f7567682066756e647320746f2070617920666f7220746865697220636f6e7472616374656420736572766963657320686173207761697465642074686520636f6f6c646f776e20706572696f642c4901636f72726563746c79207061696420616c6c207468656972206f75747374616e64696e67206465627420616e642063616e206e6f7720636f6e7472616374206e657720736572766963657320616761696e2e04b4546865206576656e747320746861742063616e20626520656d697474656420627920746869732070616c6c657481020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540100045300000400a401185665633c543e000085020c4870616c6c65745f6275636b65745f6e6674731870616c6c6574144576656e7404045400010c30416363657373536861726564080118697373756572000130543a3a4163636f756e744964000124726563697069656e740001684163636f756e7449644c6f6f6b75705461726765744f663c543e00000419014e6f74696669657320746861742061636365737320746f2061206275636b657420686173206265656e20736861726564207769746820616e6f74686572206163636f756e742e544974656d52656164416363657373557064617465640c011461646d696e000130543a3a4163636f756e7449640001186275636b65743401384275636b65744964466f723c543e00011c6974656d5f6964100124543a3a4974656d4964000104ec4e6f74696669657320746861742074686520726561642061636365737320666f7220616e206974656d20686173206265656e20757064617465642e284974656d4275726e65640c011c6163636f756e74000130543a3a4163636f756e7449640001186275636b65743401384275636b65744964466f723c543e00011c6974656d5f6964100124543a3a4974656d4964000204984e6f746966696573207468617420616e206974656d20686173206265656e206275726e65642e047c54686520604576656e746020656e756d206f6620746869732070616c6c657489020c2c70616c6c65745f6e6674731870616c6c6574144576656e740804540004490001981c437265617465640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400011c63726561746f72000130543a3a4163636f756e7449640001146f776e6572000130543a3a4163636f756e7449640000046c412060636f6c6c656374696f6e602077617320637265617465642e30466f72636543726561746564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001146f776e6572000130543a3a4163636f756e74496400010484412060636f6c6c656374696f6e602077617320666f7263652d637265617465642e2444657374726f796564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400020474412060636f6c6c656374696f6e60207761732064657374726f7965642e184973737565640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400030454416e20606974656d6020776173206973737565642e2c5472616e73666572726564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e74496400040468416e20606974656d6020776173207472616e736665727265642e184275726e65640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400050460416e20606974656d60207761732064657374726f7965642e484974656d5472616e736665724c6f636b6564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400060488416e20606974656d6020626563616d65206e6f6e2d7472616e7366657261626c652e504974656d5472616e73666572556e6c6f636b6564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400070478416e20606974656d6020626563616d65207472616e7366657261626c652e504974656d50726f706572746965734c6f636b6564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001346c6f636b5f6d65746164617461200110626f6f6c00013c6c6f636b5f61747472696275746573200110626f6f6c000804a8606974656d60206d65746164617461206f7220617474726962757465732077657265206c6f636b65642e40436f6c6c656374696f6e4c6f636b6564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400090474536f6d652060636f6c6c656374696f6e6020776173206c6f636b65642e304f776e65724368616e676564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001246e65775f6f776e6572000130543a3a4163636f756e744964000a0448546865206f776e6572206368616e6765642e2c5465616d4368616e676564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001186973737565729c01504f7074696f6e3c543a3a4163636f756e7449643e00011461646d696e9c01504f7074696f6e3c543a3a4163636f756e7449643e00011c667265657a65729c01504f7074696f6e3c543a3a4163636f756e7449643e000b0470546865206d616e6167656d656e74207465616d206368616e6765642e405472616e73666572417070726f766564140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400012064656c6567617465000130543a3a4163636f756e744964000120646561646c696e65190201644f7074696f6e3c426c6f636b4e756d626572466f723c543e3e000c083101416e20606974656d60206f6620612060636f6c6c656374696f6e6020686173206265656e20617070726f7665642062792074686520606f776e65726020666f72207472616e736665722062793461206064656c6567617465602e44417070726f76616c43616e63656c6c6564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400012064656c6567617465000130543a3a4163636f756e744964000d081901416e20617070726f76616c20666f722061206064656c656761746560206163636f756e7420746f207472616e736665722074686520606974656d60206f6620616e206974656da860636f6c6c656374696f6e60207761732063616e63656c6c65642062792069747320606f776e6572602e54416c6c417070726f76616c7343616e63656c6c65640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e744964000e049c416c6c20617070726f76616c73206f6620616e206974656d20676f742063616e63656c6c65642e5c436f6c6c656374696f6e436f6e6669674368616e676564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000f040101412060636f6c6c656374696f6e6020686173206861642069747320636f6e666967206368616e676564206279207468652060466f72636560206f726967696e2e54436f6c6c656374696f6e4d65746164617461536574080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000110646174618d020178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e001004b44e6577206d6574616461746120686173206265656e2073657420666f7220612060636f6c6c656374696f6e602e64436f6c6c656374696f6e4d65746164617461436c6561726564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964001104b44d6574616461746120686173206265656e20636c656172656420666f7220612060636f6c6c656374696f6e602e3c4974656d4d657461646174615365740c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964000110646174618d020178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e001204984e6577206d6574616461746120686173206265656e2073657420666f7220616e206974656d2e4c4974656d4d65746164617461436c6561726564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964001304984d6574616461746120686173206265656e20636c656172656420666f7220616e206974656d2e2c52656465706f7369746564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001407375636365737366756c5f6974656d73910201385665633c543a3a4974656d49643e0014042101546865206465706f73697420666f72206120736574206f6620606974656d60732077697468696e20612060636f6c6c656374696f6e6020686173206265656e20757064617465642e30417474726962757465536574140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656d190201444f7074696f6e3c543a3a4974656d49643e00010c6b65799502016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e00011476616c75658d020174426f756e6465645665633c75382c20543a3a56616c75654c696d69743e0001246e616d657370616365990201804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e00150405014e657720617474726962757465206d6574616461746120686173206265656e2073657420666f7220612060636f6c6c656374696f6e60206f7220606974656d602e40417474726962757465436c6561726564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656d190201444f7074696f6e3c543a3a4974656d49643e00010c6b65799502016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e0001246e616d657370616365990201804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e0016040501417474726962757465206d6574616461746120686173206265656e20636c656172656420666f7220612060636f6c6c656374696f6e60206f7220606974656d602e6c4974656d41747472696275746573417070726f76616c41646465640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465000130543a3a4163636f756e744964001704cc41206e657720617070726f76616c20746f206d6f64696679206974656d2061747472696275746573207761732061646465642e744974656d41747472696275746573417070726f76616c52656d6f7665640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465000130543a3a4163636f756e744964001804d441206e657720617070726f76616c20746f206d6f64696679206974656d2061747472696275746573207761732072656d6f7665642e684f776e657273686970416363657074616e63654368616e67656408010c77686f000130543a3a4163636f756e7449640001406d617962655f636f6c6c656374696f6e1902015c4f7074696f6e3c543a3a436f6c6c656374696f6e49643e001904c04f776e65727368697020616363657074616e636520686173206368616e67656420666f7220616e206163636f756e742e58436f6c6c656374696f6e4d6178537570706c79536574080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d61785f737570706c7910010c753332001a04a44d617820737570706c7920686173206265656e2073657420666f72206120636f6c6c656374696f6e2e74436f6c6c656374696f6e4d696e7453657474696e677355706461746564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964001b04ac4d696e742073657474696e677320666f72206120636f6c6c656374696f6e20686164206368616e6765642e6c4e657874436f6c6c656374696f6e4964496e6372656d656e74656404011c6e6578745f69641902015c4f7074696f6e3c543a3a436f6c6c656374696f6e49643e001c0401014576656e74206765747320656d6974746564207768656e2074686520604e657874436f6c6c656374696f6e496460206765747320696e6372656d656e7465642e304974656d5072696365536574100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964000114707269636518013c4974656d50726963653c542c20493e00014477686974656c69737465645f62757965729c01504f7074696f6e3c543a3a4163636f756e7449643e001d047c546865207072696365207761732073657420666f7220746865206974656d2e404974656d507269636552656d6f766564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964001e048c54686520707269636520666f7220746865206974656d207761732072656d6f7665642e284974656d426f75676874140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964000114707269636518013c4974656d50726963653c542c20493e00011873656c6c6572000130543a3a4163636f756e7449640001146275796572000130543a3a4163636f756e744964001f044c416e206974656d2077617320626f756768742e1c54697053656e74140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011873656e646572000130543a3a4163636f756e7449640001207265636569766572000130543a3a4163636f756e744964000118616d6f756e741801584465706f73697442616c616e63654f663c542c20493e0020043c4120746970207761732073656e742e2c53776170437265617465641801486f6666657265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001306f6666657265645f6974656d100124543a3a4974656d4964000148646573697265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000130646573697265645f6974656d190201444f7074696f6e3c543a3a4974656d49643e00011470726963659d0201ac4f7074696f6e3c507269636557697468446972656374696f6e3c4974656d50726963653c542c20493e3e3e000120646561646c696e65100144426c6f636b4e756d626572466f723c543e00210488416e20606974656d60207377617020696e74656e742077617320637265617465642e345377617043616e63656c6c65641801486f6666657265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001306f6666657265645f6974656d100124543a3a4974656d4964000148646573697265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000130646573697265645f6974656d190201444f7074696f6e3c543a3a4974656d49643e00011470726963659d0201ac4f7074696f6e3c507269636557697468446972656374696f6e3c4974656d50726963653c542c20493e3e3e000120646561646c696e65100144426c6f636b4e756d626572466f723c543e0022045c5468652073776170207761732063616e63656c6c65642e2c53776170436c61696d656420013c73656e745f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400012473656e745f6974656d100124543a3a4974656d496400013c73656e745f6974656d5f6f776e6572000130543a3a4163636f756e74496400014c72656365697665645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400013472656365697665645f6974656d100124543a3a4974656d496400014c72656365697665645f6974656d5f6f776e6572000130543a3a4163636f756e74496400011470726963659d0201ac4f7074696f6e3c507269636557697468446972656374696f6e3c4974656d50726963653c542c20493e3e3e000120646561646c696e65100144426c6f636b4e756d626572466f723c543e00230468546865207377617020686173206265656e20636c61696d65642e585072655369676e6564417474726962757465735365740c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001246e616d657370616365990201804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e002404fc4e657720617474726962757465732068617665206265656e2073657420666f7220616e20606974656d60206f66207468652060636f6c6c656374696f6e602e4850616c6c6574417474726962757465536574100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d190201444f7074696f6e3c543a3a4974656d49643e000124617474726962757465a902018450616c6c6574417474726962757465733c543a3a436f6c6c656374696f6e49643e00011476616c75658d020174426f756e6465645665633c75382c20543a3a56616c75654c696d69743e0025084d0141206e65772061747472696275746520696e20746865206050616c6c657460206e616d657370616365207761732073657420666f72207468652060636f6c6c656374696f6e60206f7220616e20606974656d606477697468696e20746861742060636f6c6c656374696f6e602e047c54686520604576656e746020656e756d206f6620746869732070616c6c65748d020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e00009102000002100095020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e000099020c2c70616c6c65745f6e667473147479706573484174747269627574654e616d65737061636504244163636f756e744964010001101850616c6c65740000003c436f6c6c656374696f6e4f776e6572000100244974656d4f776e65720002001c4163636f756e7404000001244163636f756e744964000300009d0204184f7074696f6e04045401a1020108104e6f6e6500000010536f6d650400a1020000010000a1020c2c70616c6c65745f6e66747314747970657348507269636557697468446972656374696f6e0418416d6f756e74011800080118616d6f756e74180118416d6f756e74000124646972656374696f6ea50201385072696365446972656374696f6e0000a5020c2c70616c6c65745f6e667473147479706573385072696365446972656374696f6e0001081053656e640000001c5265636569766500010000a9020c2c70616c6c65745f6e6674731474797065734050616c6c6574417474726962757465730430436f6c6c656374696f6e4964011001082c55736564546f436c61696d0400100130436f6c6c656374696f6e4964000000405472616e7366657244697361626c656400010000ad020c4470616c6c65745f706172616d65746572731870616c6c6574144576656e740404540001041c557064617465640c010c6b6579b10201c43c543a3a52756e74696d65506172616d657465727320617320416767726567617465644b657956616c75653e3a3a4b65790464546865206b657920746861742077617320757064617465642e01246f6c645f76616c7565fd0201ec4f7074696f6e3c3c543a3a52756e74696d65506172616d657465727320617320416767726567617465644b657956616c75653e3a3a56616c75653e047c546865206f6c642076616c7565206265666f726520746869732063616c6c2e01246e65775f76616c7565fd0201ec4f7074696f6e3c3c543a3a52756e74696d65506172616d657465727320617320416767726567617465644b657956616c75653e3a3a56616c75653e0478546865206e65772076616c756520616674657220746869732063616c6c2e000c504120506172616d6574657220776173207365742e00bc497320616c736f20656d6974746564207768656e207468652076616c756520776173206e6f74206368616e6765642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574b102104c73746f726167655f6875625f72756e74696d651c636f6e666967733872756e74696d655f706172616d735052756e74696d65506172616d65746572734b65790001043452756e74696d65436f6e6669670400b50201bd013c64796e616d69635f706172616d733a3a72756e74696d655f636f6e6669673a3a506172616d6574657273206173206672616d655f737570706f72743a3a7472616974733a3a0a64796e616d69635f706172616d733a3a416767726567617465644b657956616c75653e3a3a4b657900000000b502184c73746f726167655f6875625f72756e74696d651c636f6e666967733872756e74696d655f706172616d733864796e616d69635f706172616d733872756e74696d655f636f6e66696734506172616d65746572734b657900014464536c617368416d6f756e745065724d617846696c6553697a650400b9020164536c617368416d6f756e745065724d617846696c6553697a65000000585374616b65546f4368616c6c656e6765506572696f640400bd0201585374616b65546f4368616c6c656e6765506572696f6400010064436865636b706f696e744368616c6c656e6765506572696f640400c1020164436865636b706f696e744368616c6c656e6765506572696f64000200484d696e4368616c6c656e6765506572696f640400c50201484d696e4368616c6c656e6765506572696f64000300a453797374656d5574696c69736174696f6e4c6f7765725468726573686f6c6450657263656e746167650400c90201a453797374656d5574696c69736174696f6e4c6f7765725468726573686f6c6450657263656e74616765000400a453797374656d5574696c69736174696f6e55707065725468726573686f6c6450657263656e746167650400cd0201a453797374656d5574696c69736174696f6e55707065725468726573686f6c6450657263656e74616765000500444d6f73746c79537461626c6550726963650400d10201444d6f73746c79537461626c655072696365000600204d617850726963650400d50201204d61785072696365000700204d696e50726963650400d90201204d696e50726963650008004c55707065724578706f6e656e74466163746f720400dd02014c55707065724578706f6e656e74466163746f720009004c4c6f7765724578706f6e656e74466163746f720400e102014c4c6f7765724578706f6e656e74466163746f72000a005c5a65726f53697a654275636b65744669786564526174650400e502015c5a65726f53697a654275636b6574466978656452617465000b0050496465616c5574696c69736174696f6e526174650400e9020150496465616c5574696c69736174696f6e52617465000c00244465636179526174650400ed020124446563617952617465000d00484d696e696d756d54726561737572794375740400f10201484d696e696d756d5472656173757279437574000e00484d6178696d756d54726561737572794375740400f50201484d6178696d756d5472656173757279437574000f006442737053746f7053746f72696e6746696c6550656e616c74790400f902016442737053746f7053746f72696e6746696c6550656e616c747900100000b902184c73746f726167655f6875625f72756e74696d651c636f6e666967733872756e74696d655f706172616d733864796e616d69635f706172616d733872756e74696d655f636f6e66696764536c617368416d6f756e745065724d617846696c6553697a6500000000bd02184c73746f726167655f6875625f72756e74696d651c636f6e666967733872756e74696d655f706172616d733864796e616d69635f706172616d733872756e74696d655f636f6e666967585374616b65546f4368616c6c656e6765506572696f6400000000c102184c73746f726167655f6875625f72756e74696d651c636f6e666967733872756e74696d655f706172616d733864796e616d69635f706172616d733872756e74696d655f636f6e66696764436865636b706f696e744368616c6c656e6765506572696f6400000000c502184c73746f726167655f6875625f72756e74696d651c636f6e666967733872756e74696d655f706172616d733864796e616d69635f706172616d733872756e74696d655f636f6e666967484d696e4368616c6c656e6765506572696f6400000000c902184c73746f726167655f6875625f72756e74696d651c636f6e666967733872756e74696d655f706172616d733864796e616d69635f706172616d733872756e74696d655f636f6e666967a453797374656d5574696c69736174696f6e4c6f7765725468726573686f6c6450657263656e7461676500000000cd02184c73746f726167655f6875625f72756e74696d651c636f6e666967733872756e74696d655f706172616d733864796e616d69635f706172616d733872756e74696d655f636f6e666967a453797374656d5574696c69736174696f6e55707065725468726573686f6c6450657263656e7461676500000000d102184c73746f726167655f6875625f72756e74696d651c636f6e666967733872756e74696d655f706172616d733864796e616d69635f706172616d733872756e74696d655f636f6e666967444d6f73746c79537461626c65507269636500000000d502184c73746f726167655f6875625f72756e74696d651c636f6e666967733872756e74696d655f706172616d733864796e616d69635f706172616d733872756e74696d655f636f6e666967204d6178507269636500000000d902184c73746f726167655f6875625f72756e74696d651c636f6e666967733872756e74696d655f706172616d733864796e616d69635f706172616d733872756e74696d655f636f6e666967204d696e507269636500000000dd02184c73746f726167655f6875625f72756e74696d651c636f6e666967733872756e74696d655f706172616d733864796e616d69635f706172616d733872756e74696d655f636f6e6669674c55707065724578706f6e656e74466163746f7200000000e102184c73746f726167655f6875625f72756e74696d651c636f6e666967733872756e74696d655f706172616d733864796e616d69635f706172616d733872756e74696d655f636f6e6669674c4c6f7765724578706f6e656e74466163746f7200000000e502184c73746f726167655f6875625f72756e74696d651c636f6e666967733872756e74696d655f706172616d733864796e616d69635f706172616d733872756e74696d655f636f6e6669675c5a65726f53697a654275636b657446697865645261746500000000e902184c73746f726167655f6875625f72756e74696d651c636f6e666967733872756e74696d655f706172616d733864796e616d69635f706172616d733872756e74696d655f636f6e66696750496465616c5574696c69736174696f6e5261746500000000ed02184c73746f726167655f6875625f72756e74696d651c636f6e666967733872756e74696d655f706172616d733864796e616d69635f706172616d733872756e74696d655f636f6e6669672444656361795261746500000000f102184c73746f726167655f6875625f72756e74696d651c636f6e666967733872756e74696d655f706172616d733864796e616d69635f706172616d733872756e74696d655f636f6e666967484d696e696d756d547265617375727943757400000000f502184c73746f726167655f6875625f72756e74696d651c636f6e666967733872756e74696d655f706172616d733864796e616d69635f706172616d733872756e74696d655f636f6e666967484d6178696d756d547265617375727943757400000000f902184c73746f726167655f6875625f72756e74696d651c636f6e666967733872756e74696d655f706172616d733864796e616d69635f706172616d733872756e74696d655f636f6e6669676442737053746f7053746f72696e6746696c6550656e616c747900000000fd0204184f7074696f6e0404540101030108104e6f6e6500000010536f6d650400010300000100000103104c73746f726167655f6875625f72756e74696d651c636f6e666967733872756e74696d655f706172616d735852756e74696d65506172616d657465727356616c75650001043452756e74696d65436f6e6669670400050301c5013c64796e616d69635f706172616d733a3a72756e74696d655f636f6e6669673a3a506172616d6574657273206173206672616d655f737570706f72743a3a7472616974733a3a0a64796e616d69635f706172616d733a3a416767726567617465644b657956616c75653e3a3a56616c7565000000000503184c73746f726167655f6875625f72756e74696d651c636f6e666967733872756e74696d655f706172616d733864796e616d69635f706172616d733872756e74696d655f636f6e6669673c506172616d657465727356616c756500014464536c617368416d6f756e745065724d617846696c6553697a65040018011c42616c616e6365000000585374616b65546f4368616c6c656e6765506572696f64040018011c42616c616e636500010064436865636b706f696e744368616c6c656e6765506572696f64040010012c426c6f636b4e756d626572000200484d696e4368616c6c656e6765506572696f64040010012c426c6f636b4e756d626572000300a453797374656d5574696c69736174696f6e4c6f7765725468726573686f6c6450657263656e7461676504000903011c50657262696c6c000400a453797374656d5574696c69736174696f6e55707065725468726573686f6c6450657263656e7461676504000903011c50657262696c6c000500444d6f73746c79537461626c655072696365040018011c42616c616e6365000600204d61785072696365040018011c42616c616e6365000700204d696e5072696365040018011c42616c616e63650008004c55707065724578706f6e656e74466163746f72040010010c7533320009004c4c6f7765724578706f6e656e74466163746f72040010010c753332000a005c5a65726f53697a654275636b6574466978656452617465040018011c42616c616e6365000b0050496465616c5574696c69736174696f6e5261746504000903011c50657262696c6c000c002444656361795261746504000903011c50657262696c6c000d00484d696e696d756d547265617375727943757404000903011c50657262696c6c000e00484d6178696d756d547265617375727943757404000903011c50657262696c6c000f006442737053746f7053746f72696e6746696c6550656e616c7479040018011c42616c616e63650010000009030c3473705f61726974686d65746963287065725f7468696e67731c50657262696c6c0000040010010c75333200000d0308306672616d655f73797374656d14506861736500010c384170706c7945787472696e736963040010010c7533320000003046696e616c697a6174696f6e00010038496e697469616c697a6174696f6e000200001103000002150300150300000408101000190308306672616d655f73797374656d584c61737452756e74696d6555706772616465496e666f0000080130737065635f76657273696f6ecc014c636f6465633a3a436f6d706163743c7533323e000124737065635f6e616d651d03016473705f72756e74696d653a3a52756e74696d65537472696e6700001d030000050200210308306672616d655f73797374656d60436f646555706772616465417574686f72697a6174696f6e0404540000080124636f64655f6861736834011c543a3a48617368000134636865636b5f76657273696f6e200110626f6f6c000025030c306672616d655f73797374656d1870616c6c65741043616c6c04045400012c1872656d61726b04011872656d61726b38011c5665633c75383e00000c684d616b6520736f6d65206f6e2d636861696e2072656d61726b2e008843616e20626520657865637574656420627920657665727920606f726967696e602e387365745f686561705f7061676573040114706167657330010c753634000104f853657420746865206e756d626572206f6620706167657320696e2074686520576562417373656d626c7920656e7669726f6e6d656e74277320686561702e207365745f636f6465040110636f646538011c5665633c75383e0002046453657420746865206e65772072756e74696d6520636f64652e5c7365745f636f64655f776974686f75745f636865636b73040110636f646538011c5665633c75383e000310190153657420746865206e65772072756e74696d6520636f646520776974686f757420646f696e6720616e7920636865636b73206f662074686520676976656e2060636f6465602e0051014e6f746520746861742072756e74696d652075706772616465732077696c6c206e6f742072756e20696620746869732069732063616c6c656420776974682061206e6f742d696e6372656173696e6720737065632076657273696f6e212c7365745f73746f726167650401146974656d73290301345665633c4b657956616c75653e0004046853657420736f6d65206974656d73206f662073746f726167652e306b696c6c5f73746f726167650401106b6579733d0201205665633c4b65793e000504744b696c6c20736f6d65206974656d732066726f6d2073746f726167652e2c6b696c6c5f70726566697808011870726566697838010c4b657900011c7375626b65797310010c75333200061011014b696c6c20616c6c2073746f72616765206974656d7320776974682061206b657920746861742073746172747320776974682074686520676976656e207072656669782e0039012a2a4e4f54453a2a2a2057652072656c79206f6e2074686520526f6f74206f726967696e20746f2070726f7669646520757320746865206e756d626572206f66207375626b65797320756e6465723d0174686520707265666978207765206172652072656d6f76696e6720746f2061636375726174656c792063616c63756c6174652074686520776569676874206f6620746869732066756e6374696f6e2e4472656d61726b5f776974685f6576656e7404011872656d61726b38011c5665633c75383e000704a44d616b6520736f6d65206f6e2d636861696e2072656d61726b20616e6420656d6974206576656e742e44617574686f72697a655f75706772616465040124636f64655f6861736834011c543a3a486173680009106101417574686f72697a6520616e207570677261646520746f206120676976656e2060636f64655f686173686020666f72207468652072756e74696d652e205468652072756e74696d652063616e20626520737570706c696564186c617465722e007c546869732063616c6c20726571756972657320526f6f74206f726967696e2e80617574686f72697a655f757067726164655f776974686f75745f636865636b73040124636f64655f6861736834011c543a3a48617368000a206101417574686f72697a6520616e207570677261646520746f206120676976656e2060636f64655f686173686020666f72207468652072756e74696d652e205468652072756e74696d652063616e20626520737570706c696564186c617465722e005d015741524e494e473a205468697320617574686f72697a657320616e207570677261646520746861742077696c6c2074616b6520706c61636520776974686f757420616e792073616665747920636865636b732c20666f7259016578616d706c652074686174207468652073706563206e616d652072656d61696e73207468652073616d6520616e642074686174207468652076657273696f6e206e756d62657220696e637265617365732e204e6f74f07265636f6d6d656e64656420666f72206e6f726d616c207573652e205573652060617574686f72697a655f757067726164656020696e73746561642e007c546869732063616c6c20726571756972657320526f6f74206f726967696e2e606170706c795f617574686f72697a65645f75706772616465040110636f646538011c5665633c75383e000b24550150726f766964652074686520707265696d616765202872756e74696d652062696e617279292060636f64656020666f7220616e2075706772616465207468617420686173206265656e20617574686f72697a65642e00490149662074686520617574686f72697a6174696f6e20726571756972656420612076657273696f6e20636865636b2c20746869732063616c6c2077696c6c20656e73757265207468652073706563206e616d65e872656d61696e7320756e6368616e67656420616e6420746861742074686520737065632076657273696f6e2068617320696e637265617365642e005901446570656e64696e67206f6e207468652072756e74696d65277320604f6e536574436f64656020636f6e66696775726174696f6e2c20746869732066756e6374696f6e206d6179206469726563746c79206170706c791101746865206e65772060636f64656020696e207468652073616d6520626c6f636b206f7220617474656d707420746f207363686564756c652074686520757067726164652e0060416c6c206f726967696e732061726520616c6c6f7765642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e29030000022d03002d030000040838380031030c306672616d655f73797374656d186c696d69747330426c6f636b5765696768747300000c0128626173655f626c6f636b2801185765696768740001246d61785f626c6f636b2801185765696768740001247065725f636c617373350301845065724469737061746368436c6173733c57656967687473506572436c6173733e000035030c346672616d655f737570706f7274206469737061746368405065724469737061746368436c617373040454013903000c01186e6f726d616c390301045400012c6f7065726174696f6e616c39030104540001246d616e6461746f72793903010454000039030c306672616d655f73797374656d186c696d6974733c57656967687473506572436c6173730000100138626173655f65787472696e7369632801185765696768740001346d61785f65787472696e7369633d0301384f7074696f6e3c5765696768743e0001246d61785f746f74616c3d0301384f7074696f6e3c5765696768743e00012072657365727665643d0301384f7074696f6e3c5765696768743e00003d0304184f7074696f6e04045401280108104e6f6e6500000010536f6d65040028000001000041030c306672616d655f73797374656d186c696d6974732c426c6f636b4c656e677468000004010c6d6178450301545065724469737061746368436c6173733c7533323e000045030c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540110000c01186e6f726d616c1001045400012c6f7065726174696f6e616c100104540001246d616e6461746f72791001045400004903082873705f776569676874733c52756e74696d65446257656967687400000801107265616430010c753634000114777269746530010c75363400004d03082873705f76657273696f6e3852756e74696d6556657273696f6e0000200124737065635f6e616d651d03013452756e74696d65537472696e67000124696d706c5f6e616d651d03013452756e74696d65537472696e67000144617574686f72696e675f76657273696f6e10010c753332000130737065635f76657273696f6e10010c753332000130696d706c5f76657273696f6e10010c753332000110617069735103011c4170697356656300014c7472616e73616374696f6e5f76657273696f6e10010c75333200013473746174655f76657273696f6e080108753800005103040c436f7704045401550300040055030000005503000002590300590300000408290110005d03000005040061030c306672616d655f73797374656d1870616c6c6574144572726f720404540001243c496e76616c6964537065634e616d650000081101546865206e616d65206f662073706563696669636174696f6e20646f6573206e6f74206d61746368206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e685370656356657273696f6e4e65656473546f496e63726561736500010841015468652073706563696669636174696f6e2076657273696f6e206973206e6f7420616c6c6f77656420746f206465637265617365206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e744661696c6564546f4578747261637452756e74696d6556657273696f6e00020cec4661696c656420746f2065787472616374207468652072756e74696d652076657273696f6e2066726f6d20746865206e65772072756e74696d652e0009014569746865722063616c6c696e672060436f72655f76657273696f6e60206f72206465636f64696e67206052756e74696d6556657273696f6e60206661696c65642e4c4e6f6e44656661756c74436f6d706f73697465000304fc537569636964652063616c6c6564207768656e20746865206163636f756e7420686173206e6f6e2d64656661756c7420636f6d706f7369746520646174612e3c4e6f6e5a65726f526566436f756e74000404350154686572652069732061206e6f6e2d7a65726f207265666572656e636520636f756e742070726576656e74696e6720746865206163636f756e742066726f6d206265696e67207075726765642e3043616c6c46696c7465726564000504d0546865206f726967696e2066696c7465722070726576656e74207468652063616c6c20746f20626520646973706174636865642e6c4d756c7469426c6f636b4d6967726174696f6e734f6e676f696e67000604550141206d756c74692d626c6f636b206d6967726174696f6e206973206f6e676f696e6720616e642070726576656e7473207468652063757272656e7420636f64652066726f6d206265696e67207265706c616365642e444e6f7468696e67417574686f72697a6564000704584e6f207570677261646520617574686f72697a65642e30556e617574686f72697a656400080494546865207375626d697474656420636f6465206973206e6f7420617574686f72697a65642e046c4572726f7220666f72207468652053797374656d2070616c6c6574650300000269030069030c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d48756e696e636c756465645f7365676d656e7420416e636573746f720404480134000c0138757365645f62616e6477696474686d0301345573656442616e647769647468000138706172615f686561645f68617368150201244f7074696f6e3c483e000160636f6e73756d65645f676f5f61686561645f7369676e616c8103018c4f7074696f6e3c72656c61795f636861696e3a3a55706772616465476f41686561643e00006d030c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d48756e696e636c756465645f7365676d656e74345573656442616e64776964746800000c0134756d705f6d73675f636f756e7410010c75333200013c756d705f746f74616c5f627974657310010c75333200013468726d705f6f7574676f696e677103018c42547265654d61703c5061726149642c2048726d704368616e6e656c5570646174653e00007103042042547265654d617008044b01e9010456017503000400790300000075030c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d48756e696e636c756465645f7365676d656e744448726d704368616e6e656c55706461746500000801246d73675f636f756e7410010c75333200012c746f74616c5f627974657310010c753332000079030000027d03007d0300000408e901750300810304184f7074696f6e0404540185030108104e6f6e6500000010536f6d6504008503000001000085030c4c706f6c6b61646f745f7072696d6974697665730876383855706772616465476f41686561640001081441626f72740000001c476f41686561640001000089030c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d48756e696e636c756465645f7365676d656e74385365676d656e74547261636b65720404480134000c0138757365645f62616e6477696474686d0301345573656442616e64776964746800013868726d705f77617465726d61726b190201804f7074696f6e3c72656c61795f636861696e3a3a426c6f636b4e756d6265723e000160636f6e73756d65645f676f5f61686561645f7369676e616c8103018c4f7074696f6e3c72656c61795f636861696e3a3a55706772616465476f41686561643e00008d030c4c706f6c6b61646f745f7072696d6974697665730876385c50657273697374656456616c69646174696f6e446174610804480134044e01100010012c706172656e745f6865616491030120486561644461746100014c72656c61795f706172656e745f6e756d6265721001044e00016472656c61795f706172656e745f73746f726167655f726f6f74340104480001306d61785f706f765f73697a6510010c753332000091030c74706f6c6b61646f745f70617261636861696e5f7072696d697469766573287072696d6974697665732048656164446174610000040038011c5665633c75383e0000950304184f7074696f6e0404540199030108104e6f6e6500000010536f6d6504009903000001000099030c4c706f6c6b61646f745f7072696d69746976657308763848557067726164655265737472696374696f6e0001041c50726573656e74000000009d030c1c73705f747269653473746f726167655f70726f6f663053746f7261676550726f6f660000040128747269655f6e6f646573a103014442547265655365743c5665633c75383e3e0000a1030420425472656553657404045401380004003d02000000a5030c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d5072656c61795f73746174655f736e617073686f74584d6573736167696e675374617465536e617073686f740000100130646d715f6d71635f6865616434014472656c61795f636861696e3a3a4861736800019c72656c61795f64697370617463685f71756575655f72656d61696e696e675f6361706163697479a903018c52656c61794469737061746368517565756552656d61696e696e674361706163697479000140696e67726573735f6368616e6e656c73ad0301885665633c285061726149642c20416272696467656448726d704368616e6e656c293e00013c6567726573735f6368616e6e656c73ad0301885665633c285061726149642c20416272696467656448726d704368616e6e656c293e0000a9030c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d5072656c61795f73746174655f736e617073686f748c52656c61794469737061746368517565756552656d61696e696e674361706163697479000008013c72656d61696e696e675f636f756e7410010c75333200013872656d61696e696e675f73697a6510010c7533320000ad03000002b10300b10300000408e901b50300b5030c4c706f6c6b61646f745f7072696d6974697665730876384c416272696467656448726d704368616e6e656c00001801306d61785f636170616369747910010c7533320001386d61785f746f74616c5f73697a6510010c7533320001406d61785f6d6573736167655f73697a6510010c7533320001246d73675f636f756e7410010c753332000128746f74616c5f73697a6510010c7533320001206d71635f68656164150201304f7074696f6e3c486173683e0000b9030c4c706f6c6b61646f745f7072696d697469766573087638644162726964676564486f7374436f6e66696775726174696f6e00002801346d61785f636f64655f73697a6510010c7533320001486d61785f686561645f646174615f73697a6510010c7533320001586d61785f7570776172645f71756575655f636f756e7410010c7533320001546d61785f7570776172645f71756575655f73697a6510010c75333200015c6d61785f7570776172645f6d6573736167655f73697a6510010c7533320001906d61785f7570776172645f6d6573736167655f6e756d5f7065725f63616e64696461746510010c75333200018868726d705f6d61785f6d6573736167655f6e756d5f7065725f63616e64696461746510010c75333200016c76616c69646174696f6e5f757067726164655f636f6f6c646f776e10012c426c6f636b4e756d62657200016076616c69646174696f6e5f757067726164655f64656c617910012c426c6f636b4e756d6265720001506173796e635f6261636b696e675f706172616d73bd0301484173796e634261636b696e67506172616d730000bd03104c706f6c6b61646f745f7072696d697469766573087638346173796e635f6261636b696e67484173796e634261636b696e67506172616d73000008014c6d61785f63616e6469646174655f646570746810010c753332000150616c6c6f7765645f616e6365737472795f6c656e10010c7533320000c103089463756d756c75735f7072696d6974697665735f70617261636861696e5f696e686572656e74444d6573736167655175657565436861696e0000040034012452656c6179486173680000c503042042547265654d617008044b01e901045601c103000400c903000000c903000002cd0300cd0300000408e901c10300d103000002d50300d5030860706f6c6b61646f745f636f72655f7072696d6974697665734c4f7574626f756e6448726d704d6573736167650408496401e90100080124726563697069656e74e901010849640001106461746138014c616c6c6f633a3a7665633a3a5665633c75383e0000d9030c3473705f61726974686d657469632c66697865645f706f696e742446697865645531323800000400180110753132380000dd030c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d1870616c6c65741043616c6c0404540001084c7365745f76616c69646174696f6e5f6461746104011064617461e103015450617261636861696e496e686572656e744461746100002480536574207468652063757272656e742076616c69646174696f6e20646174612e004101546869732073686f756c6420626520696e766f6b65642065786163746c79206f6e63652070657220626c6f636b2e2049742077696c6c2070616e6963206174207468652066696e616c697a6174696f6e887068617365206966207468652063616c6c20776173206e6f7420696e766f6b65642e00d0546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652060496e686572656e7460002101417320612073696465206566666563742c20746869732066756e6374696f6e207570677261646573207468652063757272656e742076616c69646174696f6e2066756e6374696f6e8469662074686520617070726f7072696174652074696d652068617320636f6d652e607375646f5f73656e645f7570776172645f6d65737361676504011c6d6573736167653801345570776172644d657373616765000100040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ee103089463756d756c75735f7072696d6974697665735f70617261636861696e5f696e686572656e745450617261636861696e496e686572656e7444617461000010013c76616c69646174696f6e5f646174618d03015c50657273697374656456616c69646174696f6e4461746100014472656c61795f636861696e5f73746174659d03015473705f747269653a3a53746f7261676550726f6f66000144646f776e776172645f6d65737361676573e503016c5665633c496e626f756e64446f776e776172644d6573736167653e00014c686f72697a6f6e74616c5f6d65737361676573ed0301a442547265654d61703c5061726149642c205665633c496e626f756e6448726d704d6573736167653e3e0000e503000002e90300e9030860706f6c6b61646f745f636f72655f7072696d69746976657358496e626f756e64446f776e776172644d657373616765042c426c6f636b4e756d62657201100008011c73656e745f617410012c426c6f636b4e756d62657200010c6d736738013c446f776e776172644d6573736167650000ed03042042547265654d617008044b01e901045601f103000400f903000000f103000002f50300f5030860706f6c6b61646f745f636f72655f7072696d69746976657348496e626f756e6448726d704d657373616765042c426c6f636b4e756d62657201100008011c73656e745f617410012c426c6f636b4e756d6265720001106461746138014c616c6c6f633a3a7665633a3a5665633c75383e0000f903000002fd0300fd0300000408e901f1030001040c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d1870616c6c6574144572726f720404540001204c4f7665726c617070696e6755706772616465730000041901417474656d707420746f20757067726164652076616c69646174696f6e2066756e6374696f6e207768696c65206578697374696e6720757067726164652070656e64696e672e5050726f686962697465644279506f6c6b61646f740001044d01506f6c6b61646f742063757272656e746c792070726f68696269747320746869732070617261636861696e2066726f6d20757067726164696e67206974732076616c69646174696f6e2066756e6374696f6e2e18546f6f426967000208450154686520737570706c6965642076616c69646174696f6e2066756e6374696f6e2068617320636f6d70696c656420696e746f206120626c6f62206c6172676572207468616e20506f6c6b61646f742069733c77696c6c696e6720746f2072756e2e6856616c69646174696f6e446174614e6f74417661696c61626c650003041d0154686520696e686572656e7420776869636820737570706c696573207468652076616c69646174696f6e206461746120646964206e6f742072756e207468697320626c6f636b2e74486f7374436f6e66696775726174696f6e4e6f74417661696c61626c65000404290154686520696e686572656e7420776869636820737570706c6965732074686520686f737420636f6e66696775726174696f6e20646964206e6f742072756e207468697320626c6f636b2e304e6f745363686564756c6564000504d84e6f2076616c69646174696f6e2066756e6374696f6e20757067726164652069732063757272656e746c79207363686564756c65642e444e6f7468696e67417574686f72697a6564000604904e6f20636f6465207570677261646520686173206265656e20617574686f72697a65642e30556e617574686f72697a6564000704bc54686520676976656e20636f6465207570677261646520686173206e6f74206265656e20617574686f72697a65642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e05040c4070616c6c65745f74696d657374616d701870616c6c65741043616c6c0404540001040c73657404010c6e6f772c0124543a3a4d6f6d656e7400004c54536574207468652063757272656e742074696d652e005501546869732063616c6c2073686f756c6420626520696e766f6b65642065786163746c79206f6e63652070657220626c6f636b2e2049742077696c6c2070616e6963206174207468652066696e616c697a6174696f6ed470686173652c20696620746869732063616c6c206861736e2774206265656e20696e766f6b656420627920746861742074696d652e0041015468652074696d657374616d702073686f756c642062652067726561746572207468616e207468652070726576696f7573206f6e652062792074686520616d6f756e7420737065636966696564206279685b60436f6e6669673a3a4d696e696d756d506572696f64605d2e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f4e6f6e655f2e0051015468697320646973706174636820636c617373206973205f4d616e6461746f72795f20746f20656e73757265206974206765747320657865637574656420696e2074686520626c6f636b2e204265206177617265510174686174206368616e67696e672074686520636f6d706c6578697479206f6620746869732063616c6c20636f756c6420726573756c742065786861757374696e6720746865207265736f757263657320696e206184626c6f636b20746f206578656375746520616e79206f746865722063616c6c732e0034232320436f6d706c657869747931012d20604f2831296020284e6f7465207468617420696d706c656d656e746174696f6e73206f6620604f6e54696d657374616d7053657460206d75737420616c736f20626520604f283129602955012d20312073746f72616765207265616420616e6420312073746f72616765206d75746174696f6e2028636f64656320604f283129602062656361757365206f6620604469645570646174653a3a74616b656020696e402020606f6e5f66696e616c697a656029d42d2031206576656e742068616e646c657220606f6e5f74696d657374616d705f736574602e204d75737420626520604f283129602e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e09040c5873746167696e675f70617261636861696e5f696e666f1870616c6c65741043616c6c040454000100040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e0d040c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e646564566563080454011104045300000400190401185665633c543e000011040c3c70616c6c65745f62616c616e6365731474797065732c42616c616e63654c6f636b041c42616c616e63650118000c01086964290101384c6f636b4964656e746966696572000118616d6f756e7418011c42616c616e636500011c726561736f6e731504011c526561736f6e73000015040c3c70616c6c65745f62616c616e6365731474797065731c526561736f6e7300010c0c466565000000104d6973630001000c416c6c0002000019040000021104001d040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454012104045300000400250401185665633c543e000021040c3c70616c6c65745f62616c616e6365731474797065732c52657365727665446174610844526573657276654964656e7469666965720129011c42616c616e6365011800080108696429010144526573657276654964656e746966696572000118616d6f756e7418011c42616c616e63650000250400000221040029040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454012d04045300000400410401185665633c543e00002d0414346672616d655f737570706f72741874726169747318746f6b656e73106d697363204964416d6f756e74080849640131041c42616c616e63650118000801086964310401084964000118616d6f756e7418011c42616c616e636500003104084c73746f726167655f6875625f72756e74696d654452756e74696d65486f6c64526561736f6e00010c2450726f76696465727304003504019070616c6c65745f73746f726167655f70726f7669646572733a3a486f6c64526561736f6e0028002846696c6553797374656d04003904017870616c6c65745f66696c655f73797374656d3a3a486f6c64526561736f6e002900385061796d656e7453747265616d7304003d04018870616c6c65745f7061796d656e745f73747265616d733a3a486f6c64526561736f6e002c000035040c6070616c6c65745f73746f726167655f70726f7669646572731870616c6c657428486f6c64526561736f6e0001085853746f7261676550726f76696465724465706f736974000000344275636b65744465706f7369740001000039040c4870616c6c65745f66696c655f73797374656d1870616c6c657428486f6c64526561736f6e0001046853746f72616765526571756573744372656174696f6e486f6c64000000003d040c5870616c6c65745f7061796d656e745f73747265616d731870616c6c657428486f6c64526561736f6e000104505061796d656e7453747265616d4465706f7369740000000041040000022d040045040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540149040453000004004d0401185665633c543e0000490414346672616d655f737570706f72741874726169747318746f6b656e73106d697363204964416d6f756e740808496401981c42616c616e636501180008010869649801084964000118616d6f756e7418011c42616c616e636500004d0400000249040051040c3c70616c6c65745f62616c616e6365731870616c6c65741043616c6c080454000449000124507472616e736665725f616c6c6f775f646561746808011064657374550401504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565dc0128543a3a42616c616e636500001cd45472616e7366657220736f6d65206c697175696420667265652062616c616e636520746f20616e6f74686572206163636f756e742e003501607472616e736665725f616c6c6f775f6465617468602077696c6c207365742074686520604672656542616c616e636560206f66207468652073656e64657220616e642072656365697665722e11014966207468652073656e6465722773206163636f756e742069732062656c6f7720746865206578697374656e7469616c206465706f736974206173206120726573756c74b06f6620746865207472616e736665722c20746865206163636f756e742077696c6c206265207265617065642e001501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520605369676e65646020627920746865207472616e736163746f722e38666f7263655f7472616e736665720c0118736f75726365550401504163636f756e7449644c6f6f6b75704f663c543e00011064657374550401504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565dc0128543a3a42616c616e6365000208610145786163746c7920617320607472616e736665725f616c6c6f775f6465617468602c2065786365707420746865206f726967696e206d75737420626520726f6f7420616e642074686520736f75726365206163636f756e74446d6179206265207370656369666965642e4c7472616e736665725f6b6565705f616c69766508011064657374550401504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565dc0128543a3a42616c616e6365000318590153616d6520617320746865205b607472616e736665725f616c6c6f775f6465617468605d2063616c6c2c206275742077697468206120636865636b207468617420746865207472616e736665722077696c6c206e6f74606b696c6c20746865206f726967696e206163636f756e742e00e8393925206f66207468652074696d6520796f752077616e74205b607472616e736665725f616c6c6f775f6465617468605d20696e73746561642e00f05b607472616e736665725f616c6c6f775f6465617468605d3a207374727563742e50616c6c65742e68746d6c236d6574686f642e7472616e73666572307472616e736665725f616c6c08011064657374550401504163636f756e7449644c6f6f6b75704f663c543e0001286b6565705f616c697665200110626f6f6c00043c05015472616e736665722074686520656e74697265207472616e7366657261626c652062616c616e63652066726f6d207468652063616c6c6572206163636f756e742e0059014e4f54453a20546869732066756e6374696f6e206f6e6c7920617474656d70747320746f207472616e73666572205f7472616e7366657261626c655f2062616c616e6365732e2054686973206d65616e7320746861746101616e79206c6f636b65642c2072657365727665642c206f72206578697374656e7469616c206465706f7369747320287768656e20606b6565705f616c6976656020697320607472756560292c2077696c6c206e6f742062655d017472616e7366657272656420627920746869732066756e6374696f6e2e20546f20656e73757265207468617420746869732066756e6374696f6e20726573756c747320696e2061206b696c6c6564206163636f756e742c4501796f75206d69676874206e65656420746f207072657061726520746865206163636f756e742062792072656d6f76696e6720616e79207265666572656e636520636f756e746572732c2073746f72616765406465706f736974732c206574632e2e2e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205369676e65642e00a02d206064657374603a2054686520726563697069656e74206f6620746865207472616e736665722e59012d20606b6565705f616c697665603a204120626f6f6c65616e20746f2064657465726d696e652069662074686520607472616e736665725f616c6c60206f7065726174696f6e2073686f756c642073656e6420616c6c4d0120206f66207468652066756e647320746865206163636f756e74206861732c2063617573696e67207468652073656e646572206163636f756e7420746f206265206b696c6c6564202866616c7365292c206f72590120207472616e736665722065766572797468696e6720657863657074206174206c6561737420746865206578697374656e7469616c206465706f7369742c2077686963682077696c6c2067756172616e74656520746f9c20206b656570207468652073656e646572206163636f756e7420616c697665202874727565292e3c666f7263655f756e7265736572766508010c77686f550401504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e74180128543a3a42616c616e636500050cb0556e7265736572766520736f6d652062616c616e63652066726f6d2061207573657220627920666f7263652e006c43616e206f6e6c792062652063616c6c656420627920524f4f542e40757067726164655f6163636f756e747304010c77686fa401445665633c543a3a4163636f756e7449643e0006207055706772616465206120737065636966696564206163636f756e742e00742d20606f726967696e603a204d75737420626520605369676e6564602e902d206077686f603a20546865206163636f756e7420746f2062652075706772616465642e005501546869732077696c6c20776169766520746865207472616e73616374696f6e20666565206966206174206c6561737420616c6c2062757420313025206f6620746865206163636f756e7473206e656564656420746f410162652075706772616465642e20285765206c657420736f6d65206e6f74206861766520746f206265207570677261646564206a75737420696e206f7264657220746f20616c6c6f7720666f722074686558706f73736962696c697479206f6620636875726e292e44666f7263655f7365745f62616c616e636508010c77686f550401504163636f756e7449644c6f6f6b75704f663c543e0001206e65775f66726565dc0128543a3a42616c616e636500080cac5365742074686520726567756c61722062616c616e6365206f66206120676976656e206163636f756e742e00b0546865206469737061746368206f726967696e20666f7220746869732063616c6c2069732060726f6f74602e6c666f7263655f61646a7573745f746f74616c5f69737375616e6365080124646972656374696f6e5d04014c41646a7573746d656e74446972656374696f6e00011464656c7461dc0128543a3a42616c616e6365000914b841646a7573742074686520746f74616c2069737375616e636520696e20612073617475726174696e67207761792e00fc43616e206f6e6c792062652063616c6c656420627920726f6f7420616e6420616c77617973206e65656473206120706f736974697665206064656c7461602e002423204578616d706c65106275726e08011476616c7565dc0128543a3a42616c616e63650001286b6565705f616c697665200110626f6f6c000a1cfc4275726e2074686520737065636966696564206c697175696420667265652062616c616e63652066726f6d20746865206f726967696e206163636f756e742e002501496620746865206f726967696e2773206163636f756e7420656e64732075702062656c6f7720746865206578697374656e7469616c206465706f736974206173206120726573756c7409016f6620746865206275726e20616e6420606b6565705f616c697665602069732066616c73652c20746865206163636f756e742077696c6c206265207265617065642e005101556e6c696b652073656e64696e672066756e647320746f2061205f6275726e5f20616464726573732c207768696368206d6572656c79206d616b6573207468652066756e647320696e61636365737369626c652c21017468697320606275726e60206f7065726174696f6e2077696c6c2072656475636520746f74616c2069737375616e63652062792074686520616d6f756e74205f6275726e65645f2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e55040c2873705f72756e74696d65306d756c746961646472657373304d756c74694164647265737308244163636f756e7449640100304163636f756e74496e6465780198011408496404000001244163636f756e74496400000014496e6465780400590401304163636f756e74496e6465780001000c526177040038011c5665633c75383e0002002441646472657373333204000401205b75383b2033325d000300244164647265737332300400d801205b75383b2032305d00040000590400000698005d040c3c70616c6c65745f62616c616e6365731474797065734c41646a7573746d656e74446972656374696f6e00010820496e6372656173650000002044656372656173650001000061040c3c70616c6c65745f62616c616e6365731870616c6c6574144572726f720804540004490001303856657374696e6742616c616e63650000049c56657374696e672062616c616e636520746f6f206869676820746f2073656e642076616c75652e544c69717569646974795265737472696374696f6e73000104c84163636f756e74206c6971756964697479207265737472696374696f6e732070726576656e74207769746864726177616c2e4c496e73756666696369656e7442616c616e63650002047842616c616e636520746f6f206c6f7720746f2073656e642076616c75652e484578697374656e7469616c4465706f736974000304ec56616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f7369742e34457870656e646162696c697479000404905472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e742e5c4578697374696e6756657374696e675363686564756c65000504cc412076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e742e2c446561644163636f756e740006048c42656e6566696369617279206163636f756e74206d757374207072652d65786973742e3c546f6f4d616e795265736572766573000704b84e756d626572206f66206e616d65642072657365727665732065786365656420604d61785265736572766573602e30546f6f4d616e79486f6c6473000804f84e756d626572206f6620686f6c647320657863656564206056617269616e74436f756e744f663c543a3a52756e74696d65486f6c64526561736f6e3e602e38546f6f4d616e79467265657a6573000904984e756d626572206f6620667265657a65732065786365656420604d6178467265657a6573602e4c49737375616e63654465616374697661746564000a0401015468652069737375616e63652063616e6e6f74206265206d6f6469666965642073696e636520697420697320616c72656164792064656163746976617465642e2444656c74615a65726f000b04645468652064656c74612063616e6e6f74206265207a65726f2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e6504086870616c6c65745f7472616e73616374696f6e5f7061796d656e742052656c6561736573000108245631416e6369656e740000000856320001000069040c2c70616c6c65745f7375646f1870616c6c65741043616c6c040454000114107375646f04011063616c6c6d04017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000004350141757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c20776974682060526f6f7460206f726967696e2e547375646f5f756e636865636b65645f77656967687408011063616c6c6d04017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000118776569676874280118576569676874000114350141757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c20776974682060526f6f7460206f726967696e2e2d01546869732066756e6374696f6e20646f6573206e6f7420636865636b2074686520776569676874206f66207468652063616c6c2c20616e6420696e737465616420616c6c6f777320746865b05375646f207573657220746f20737065636966792074686520776569676874206f66207468652063616c6c2e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e1c7365745f6b657904010c6e6577550401504163636f756e7449644c6f6f6b75704f663c543e0002085d0141757468656e74696361746573207468652063757272656e74207375646f206b657920616e6420736574732074686520676976656e204163636f756e7449642028606e6577602920617320746865206e6577207375646f106b65792e1c7375646f5f617308010c77686f550401504163636f756e7449644c6f6f6b75704f663c543e00011063616c6c6d04017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0003104d0141757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c207769746820605369676e656460206f726967696e2066726f6d406120676976656e206163636f756e742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e2872656d6f76655f6b657900040c845065726d616e656e746c792072656d6f76657320746865207375646f206b65792e006c2a2a546869732063616e6e6f7420626520756e2d646f6e652e2a2a040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e6d04084c73746f726167655f6875625f72756e74696d652c52756e74696d6543616c6c0001501853797374656d0400250301ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53797374656d2c2052756e74696d653e0000003c50617261636861696e53797374656d0400dd0301d10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50617261636861696e53797374656d2c2052756e74696d653e0001002454696d657374616d700400050401b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c54696d657374616d702c2052756e74696d653e0002003450617261636861696e496e666f0400090401c90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50617261636861696e496e666f2c2052756e74696d653e0003002042616c616e6365730400510401b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c42616c616e6365732c2052756e74696d653e000a00105375646f0400690401a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5375646f2c2052756e74696d653e000f0044436f6c6c61746f7253656c656374696f6e0400710401d90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c436f6c6c61746f7253656c656374696f6e2c2052756e74696d653e0015001c53657373696f6e0400750401b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53657373696f6e2c2052756e74696d653e0016002458636d7051756575650400810401b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c58636d7051756575652c2052756e74696d653e001e002c506f6c6b61646f7458636d0400850401c10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c506f6c6b61646f7458636d2c2052756e74696d653e001f002843756d756c757358636d0400250501bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c43756d756c757358636d2c2052756e74696d653e002000304d65737361676551756575650400290501c50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d65737361676551756575652c2052756e74696d653e0021002450726f76696465727304002d0501b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50726f7669646572732c2052756e74696d653e0028002846696c6553797374656d0400310501bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c46696c6553797374656d2c2052756e74696d653e0029003050726f6f66734465616c65720400750501c50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50726f6f66734465616c65722c2052756e74696d653e002a002852616e646f6d6e6573730400790501bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c52616e646f6d6e6573732c2052756e74696d653e002b00385061796d656e7453747265616d7304007d0501cd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5061796d656e7453747265616d732c2052756e74696d653e002c00284275636b65744e6674730400810501bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4275636b65744e6674732c2052756e74696d653e002d00104e6674730400890501a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4e6674732c2052756e74696d653e00320028506172616d65746572730400e50501bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c506172616d65746572732c2052756e74696d653e0033000071040c6470616c6c65745f636f6c6c61746f725f73656c656374696f6e1870616c6c65741043616c6c040454000124447365745f696e76756c6e657261626c657304010c6e6577a401445665633c543a3a4163636f756e7449643e000034310153657420746865206c697374206f6620696e76756c6e657261626c65202866697865642920636f6c6c61746f72732e20546865736520636f6c6c61746f7273206d75737420646f20736f6d65d07072657061726174696f6e2c206e616d656c7920746f206861766520726567697374657265642073657373696f6e206b6579732e0059015468652063616c6c2077696c6c2072656d6f766520616e79206163636f756e747320746861742068617665206e6f742072656769737465726564206b6579732066726f6d20746865207365742e20546861742069732c5d016974206973206e6f6e2d61746f6d69633b207468652063616c6c6572206163636570747320616c6c20604163636f756e74496460732070617373656420696e20606e657760205f696e646976696475616c6c795f206173310161636365707461626c6520496e76756c6e657261626c65732c20616e64206973206e6f742070726f706f73696e672061205f7365745f206f66206e657720496e76756c6e657261626c65732e005901546869732063616c6c20646f6573206e6f74206d61696e7461696e206d757475616c206578636c75736976697479206f662060496e76756c6e657261626c65736020616e64206043616e64696461746573602e20497461016973207265636f6d6d656e64656420746f207573652061206261746368206f6620606164645f696e76756c6e657261626c656020616e64206072656d6f76655f696e76756c6e657261626c656020696e73746561642e204151016062617463685f616c6c602063616e20616c736f206265207573656420746f20656e666f7263652061746f6d69636974792e20496620616e792063616e646964617465732061726520696e636c7564656420696e4d01606e6577602c20746865792073686f756c642062652072656d6f7665642077697468206072656d6f76655f696e76756c6e657261626c655f63616e6469646174656020616674657220657865637574696f6e2e00944d7573742062652063616c6c65642062792074686520605570646174654f726967696e602e587365745f646573697265645f63616e6469646174657304010c6d617810010c75333200011455015365742074686520696465616c206e756d626572206f66206e6f6e2d696e76756c6e657261626c6520636f6c6c61746f72732e204966206c6f776572696e672074686973206e756d6265722c207468656e2074686561016e756d626572206f662072756e6e696e6720636f6c6c61746f727320636f756c6420626520686967686572207468616e2074686973206669677572652e2041736964652066726f6d2074686174206564676520636173652c350174686572652073686f756c64206265206e6f206f746865722077617920746f2068617665206d6f72652063616e64696461746573207468616e207468652064657369726564206e756d6265722e00d0546865206f726967696e20666f7220746869732063616c6c206d7573742062652074686520605570646174654f726967696e602e487365745f63616e6469646163795f626f6e64040110626f6e6418013042616c616e63654f663c543e00021c78536574207468652063616e64696461637920626f6e6420616d6f756e742e0051014966207468652063616e64696461637920626f6e6420697320696e6372656173656420627920746869732063616c6c2c20616c6c2063757272656e742063616e64696461746573207768696368206861766520614d016465706f736974206c6f776572207468616e20746865206e657720626f6e642077696c6c206265206b69636b65642066726f6d20746865206c69737420616e6420676574207468656972206465706f73697473146261636b2e00d0546865206f726967696e20666f7220746869732063616c6c206d7573742062652074686520605570646174654f726967696e602e5472656769737465725f61735f63616e646964617465000310410152656769737465722074686973206163636f756e74206173206120636f6c6c61746f722063616e6469646174652e20546865206163636f756e74206d7573742028612920616c726561647920686176651d01726567697374657265642073657373696f6e206b65797320616e64202862292062652061626c6520746f207265736572766520746865206043616e646964616379426f6e64602e00dc546869732063616c6c206973206e6f7420617661696c61626c6520746f2060496e76756c6e657261626c656020636f6c6c61746f72732e306c656176655f696e74656e7400041455014465726567697374657220606f726967696e60206173206120636f6c6c61746f722063616e6469646174652e204e6f746520746861742074686520636f6c6c61746f722063616e206f6e6c79206c65617665206f6e0d0173657373696f6e206368616e67652e20546865206043616e646964616379426f6e64602077696c6c20626520756e726573657276656420696d6d6564696174656c792e001901546869732063616c6c2077696c6c206661696c2069662074686520746f74616c206e756d626572206f662063616e6469646174657320776f756c642064726f702062656c6f775c604d696e456c696769626c65436f6c6c61746f7273602e406164645f696e76756c6e657261626c6504010c77686f000130543a3a4163636f756e74496400051045014164642061206e6577206163636f756e74206077686f6020746f20746865206c697374206f662060496e76756c6e657261626c65736020636f6c6c61746f72732e206077686f60206d75737420686176651d01726567697374657265642073657373696f6e206b6579732e204966206077686f6020697320612063616e6469646174652c20746865792077696c6c2062652072656d6f7665642e00d0546865206f726967696e20666f7220746869732063616c6c206d7573742062652074686520605570646174654f726967696e602e4c72656d6f76655f696e76756c6e657261626c6504010c77686f000130543a3a4163636f756e744964000610610152656d6f766520616e206163636f756e74206077686f602066726f6d20746865206c697374206f662060496e76756c6e657261626c65736020636f6c6c61746f72732e2060496e76756c6e657261626c657360206d75737428626520736f727465642e00d0546865206f726967696e20666f7220746869732063616c6c206d7573742062652074686520605570646174654f726967696e602e2c7570646174655f626f6e6404012c6e65775f6465706f73697418013042616c616e63654f663c543e00071c5d01557064617465207468652063616e64696461637920626f6e64206f6620636f6c6c61746f722063616e64696461746520606f726967696e6020746f2061206e657720616d6f756e7420606e65775f6465706f736974602e00410153657474696e67206120606e65775f6465706f736974602074686174206973206c6f776572207468616e207468652063757272656e74206465706f736974207768696c6520606f726967696e60206973e06f6363757079696e67206120746f702d604465736972656443616e646964617465736020736c6f74206973206e6f7420616c6c6f7765642e005901546869732063616c6c2077696c6c206661696c20696620606f726967696e60206973206e6f74206120636f6c6c61746f722063616e6469646174652c20746865207570646174656420626f6e64206973206c6f77657219017468616e20746865206d696e696d756d2063616e64696461637920626f6e642c20616e642f6f722074686520616d6f756e742063616e6e6f742062652072657365727665642e4c74616b655f63616e6469646174655f736c6f7408011c6465706f73697418013042616c616e63654f663c543e000118746172676574000130543a3a4163636f756e74496400081c4d015468652063616c6c657220606f726967696e60207265706c6163657320612063616e64696461746520607461726765746020696e2074686520636f6c6c61746f722063616e646964617465206c6973742062795501726573657276696e6720606465706f736974602e2054686520616d6f756e7420606465706f73697460207265736572766564206279207468652063616c6c6572206d7573742062652067726561746572207468616ee0746865206578697374696e6720626f6e64206f66207468652074617267657420697420697320747279696e6720746f207265706c6163652e005901546869732063616c6c2077696c6c206661696c206966207468652063616c6c657220697320616c7265616479206120636f6c6c61746f722063616e646964617465206f7220696e76756c6e657261626c652c20746865550163616c6c657220646f6573206e6f74206861766520726567697374657265642073657373696f6e206b6579732c2074686520746172676574206973206e6f74206120636f6c6c61746f722063616e6469646174652cbc616e642f6f722074686520606465706f7369746020616d6f756e742063616e6e6f742062652072657365727665642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e75040c3870616c6c65745f73657373696f6e1870616c6c65741043616c6c040454000108207365745f6b6579730801106b6579737904011c543a3a4b65797300011470726f6f6638011c5665633c75383e000024e453657473207468652073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c657220746f20606b657973602e1d01416c6c6f777320616e206163636f756e7420746f20736574206974732073657373696f6e206b6579207072696f7220746f206265636f6d696e6720612076616c696461746f722ec05468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e00d0546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265207369676e65642e0034232320436f6d706c657869747959012d20604f283129602e2041637475616c20636f737420646570656e6473206f6e20746865206e756d626572206f66206c656e677468206f662060543a3a4b6579733a3a6b65795f69647328296020776869636820697320202066697865642e2870757267655f6b657973000130c852656d6f76657320616e792073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c65722e00c05468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e005501546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265205369676e656420616e6420746865206163636f756e74206d757374206265206569746865722062655d01636f6e7665727469626c6520746f20612076616c696461746f72204944207573696e672074686520636861696e2773207479706963616c2061646472657373696e672073797374656d20287468697320757375616c6c7951016d65616e73206265696e67206120636f6e74726f6c6c6572206163636f756e7429206f72206469726563746c7920636f6e7665727469626c6520696e746f20612076616c696461746f722049442028776869636894757375616c6c79206d65616e73206265696e672061207374617368206163636f756e74292e0034232320436f6d706c65786974793d012d20604f2831296020696e206e756d626572206f66206b65792074797065732e2041637475616c20636f737420646570656e6473206f6e20746865206e756d626572206f66206c656e677468206f6698202060543a3a4b6579733a3a6b65795f6964732829602077686963682069732066697865642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e7904084c73746f726167655f6875625f72756e74696d652c53657373696f6e4b6579730000040110617572617d0401c43c41757261206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c696300007d04104473705f636f6e73656e7375735f617572611c737232353531392c6170705f73723235353139185075626c69630000040004013c737232353531393a3a5075626c6963000081040c6463756d756c75735f70616c6c65745f78636d705f71756575651870616c6c65741043616c6c0404540001145473757370656e645f78636d5f657865637574696f6e00010c490153757370656e647320616c6c2058434d20657865637574696f6e7320666f72207468652058434d502071756575652c207265676172646c657373206f66207468652073656e6465722773206f726967696e2e00a42d20606f726967696e603a204d75737420706173732060436f6e74726f6c6c65724f726967696e602e50726573756d655f78636d5f657865637574696f6e000214b8526573756d657320616c6c2058434d20657865637574696f6e7320666f72207468652058434d502071756575652e003d014e6f7465207468617420746869732066756e6374696f6e20646f65736e2774206368616e67652074686520737461747573206f662074686520696e2f6f757420626f756e64206368616e6e656c732e00a42d20606f726967696e603a204d75737420706173732060436f6e74726f6c6c65724f726967696e602e607570646174655f73757370656e645f7468726573686f6c6404010c6e657710010c75333200031449014f76657277726974657320746865206e756d626572206f66207061676573207768696368206d75737420626520696e2074686520717565756520666f7220746865206f74686572207369646520746f20626578746f6c6420746f2073757370656e642074686569722073656e64696e672e00742d20606f726967696e603a204d75737420706173732060526f6f74602ee82d20606e6577603a20446573697265642076616c756520666f7220605175657565436f6e666967446174612e73757370656e645f76616c756560547570646174655f64726f705f7468726573686f6c6404010c6e657710010c75333200041445014f76657277726974657320746865206e756d626572206f66207061676573207768696368206d75737420626520696e207468652071756575652061667465722077686963682077652064726f7020616e798866757274686572206d657373616765732066726f6d20746865206368616e6e656c2e00742d20606f726967696e603a204d75737420706173732060526f6f74602eec2d20606e6577603a20446573697265642076616c756520666f7220605175657565436f6e666967446174612e64726f705f7468726573686f6c64605c7570646174655f726573756d655f7468726573686f6c6404010c6e657710010c7533320005144d014f76657277726974657320746865206e756d626572206f6620706167657320776869636820746865207175657565206d757374206265207265647563656420746f206265666f7265206974207369676e616c73010174686174206d6573736167652073656e64696e67206d6179207265636f6d6d656e636520616674657220697420686173206265656e2073757370656e6465642e00742d20606f726967696e603a204d75737420706173732060526f6f74602ef42d20606e6577603a20446573697265642076616c756520666f7220605175657565436f6e666967446174612e726573756d655f7468726573686f6c6460040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e85040c2870616c6c65745f78636d1870616c6c65741043616c6c0404540001381073656e6408011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011c6d65737361676589040154426f783c56657273696f6e656458636d3c28293e3e0000003c74656c65706f72745f61737365747310011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e6566696369617279d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747375010150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c753332000148110154656c65706f727420736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f20736f6d652064657374696e6174696f6e20636861696e2e001d012a2a546869732066756e6374696f6e20697320646570726563617465643a2055736520606c696d697465645f74656c65706f72745f6173736574736020696e73746561642e2a2a005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f666101696e64657820606665655f61737365745f6974656d602e2054686520776569676874206c696d697420666f722066656573206973206e6f742070726f766964656420616e64207468757320697320756e6c696d697465642cb47769746820616c6c20666565732074616b656e206173206e65656465642066726f6d207468652061737365742e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e25012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c7920626520605b506172656e742c6101202050617261636861696e282e2e295d6020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f7220605b50617261636861696e282e2e295d6020746f2073656e642066726f6d54202072656c617920746f2070617261636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865682020666565206f6e207468652060646573746020636861696e2e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e5c726573657276655f7472616e736665725f61737365747310011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e6566696369617279d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747375010150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c7533320002785d015472616e7366657220736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f207468652064657374696e6174696f6e20636861696e207468726f756768207468656972206c6f63616c2c7864657374696e6174696f6e206f722072656d6f746520726573657276652e003d016061737365747360206d75737420686176652073616d652072657365727665206c6f636174696f6e20616e64206d6179206e6f742062652074656c65706f727461626c6520746f206064657374602e4d01202d2060617373657473602068617665206c6f63616c20726573657276653a207472616e736665722061737365747320746f20736f7665726569676e206163636f756e74206f662064657374696e6174696f6e4d01202020636861696e20616e6420666f72776172642061206e6f74696669636174696f6e2058434d20746f2060646573746020746f206d696e7420616e64206465706f73697420726573657276652d62617365646c20202061737365747320746f206062656e6566696369617279602e5501202d20606173736574736020686176652064657374696e6174696f6e20726573657276653a206275726e206c6f63616c2061737365747320616e6420666f72776172642061206e6f74696669636174696f6e20746f590120202060646573746020636861696e20746f207769746864726177207468652072657365727665206173736574732066726f6d207468697320636861696e277320736f7665726569676e206163636f756e7420616e64842020206465706f736974207468656d20746f206062656e6566696369617279602e6101202d20606173736574736020686176652072656d6f746520726573657276653a206275726e206c6f63616c206173736574732c20666f72776172642058434d20746f207265736572766520636861696e20746f206d6f7665610120202072657365727665732066726f6d207468697320636861696e277320534120746f2060646573746020636861696e27732053412c20616e6420666f727761726420616e6f746865722058434d20746f20606465737460f4202020746f206d696e7420616e64206465706f73697420726573657276652d62617365642061737365747320746f206062656e6566696369617279602e003d012a2a546869732066756e6374696f6e20697320646570726563617465643a2055736520606c696d697465645f726573657276655f7472616e736665725f6173736574736020696e73746561642e2a2a005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f666101696e64657820606665655f61737365745f6974656d602e2054686520776569676874206c696d697420666f722066656573206973206e6f742070726f766964656420616e64207468757320697320756e6c696d697465642cb47769746820616c6c20666565732074616b656e206173206e65656465642066726f6d207468652061737365742e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e25012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c7920626520605b506172656e742c6101202050617261636861696e282e2e295d6020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f7220605b50617261636861696e282e2e295d6020746f2073656e642066726f6d54202072656c617920746f2070617261636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865c82020666565206f6e20746865206064657374602028616e6420706f737369626c7920726573657276652920636861696e732e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e1c6578656375746508011c6d657373616765f10401b4426f783c56657273696f6e656458636d3c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e3e0001286d61785f776569676874280118576569676874000320d04578656375746520616e2058434d206d6573736167652066726f6d2061206c6f63616c2c207369676e65642c206f726967696e2e004d01416e206576656e74206973206465706f736974656420696e6469636174696e67207768657468657220606d73676020636f756c6420626520657865637574656420636f6d706c6574656c79206f72206f6e6c79287061727469616c6c792e005d014e6f206d6f7265207468616e20606d61785f776569676874602077696c6c206265207573656420696e2069747320617474656d7074656420657865637574696f6e2e2049662074686973206973206c657373207468616e4101746865206d6178696d756d20616d6f756e74206f6620776569676874207468617420746865206d65737361676520636f756c642074616b6520746f2062652065786563757465642c207468656e206e6f7c657865637574696f6e20617474656d70742077696c6c206265206d6164652e44666f7263655f78636d5f76657273696f6e0801206c6f636174696f6ebc0134426f783c4c6f636174696f6e3e00011c76657273696f6e10012858636d56657273696f6e00041849014578746f6c6c2074686174206120706172746963756c61722064657374696e6174696f6e2063616e20626520636f6d6d756e6963617465642077697468207468726f756768206120706172746963756c61723c76657273696f6e206f662058434d2e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2ed82d20606c6f636174696f6e603a205468652064657374696e6174696f6e2074686174206973206265696e67206465736372696265642e11012d206078636d5f76657273696f6e603a20546865206c61746573742076657273696f6e206f662058434d207468617420606c6f636174696f6e6020737570706f7274732e64666f7263655f64656661756c745f78636d5f76657273696f6e0401446d617962655f78636d5f76657273696f6e190201484f7074696f6e3c58636d56657273696f6e3e0005145901536574206120736166652058434d2076657273696f6e20287468652076657273696f6e20746861742058434d2073686f756c6420626520656e636f646564207769746820696620746865206d6f737420726563656e74b476657273696f6e20612064657374696e6174696f6e2063616e2061636365707420697320756e6b6e6f776e292e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2e39012d20606d617962655f78636d5f76657273696f6e603a205468652064656661756c742058434d20656e636f64696e672076657273696f6e2c206f7220604e6f6e656020746f2064697361626c652e78666f7263655f7375627363726962655f76657273696f6e5f6e6f746966790401206c6f636174696f6ed9010158426f783c56657273696f6e65644c6f636174696f6e3e000610390141736b2061206c6f636174696f6e20746f206e6f7469667920757320726567617264696e672074686569722058434d2076657273696f6e20616e6420616e79206368616e67657320746f2069742e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2e59012d20606c6f636174696f6e603a20546865206c6f636174696f6e20746f2077686963682077652073686f756c642073756273637269626520666f722058434d2076657273696f6e206e6f74696669636174696f6e732e80666f7263655f756e7375627363726962655f76657273696f6e5f6e6f746966790401206c6f636174696f6ed9010158426f783c56657273696f6e65644c6f636174696f6e3e0007184901526571756972652074686174206120706172746963756c61722064657374696e6174696f6e2073686f756c64206e6f206c6f6e676572206e6f7469667920757320726567617264696e6720616e792058434d4076657273696f6e206368616e6765732e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2e3d012d20606c6f636174696f6e603a20546865206c6f636174696f6e20746f207768696368207765206172652063757272656e746c79207375627363726962656420666f722058434d2076657273696f6ea820206e6f74696669636174696f6e73207768696368207765206e6f206c6f6e676572206465736972652e7c6c696d697465645f726573657276655f7472616e736665725f61737365747314011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e6566696369617279d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747375010150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c7533320001307765696768745f6c696d69747101012c5765696768744c696d69740008785d015472616e7366657220736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f207468652064657374696e6174696f6e20636861696e207468726f756768207468656972206c6f63616c2c7864657374696e6174696f6e206f722072656d6f746520726573657276652e003d016061737365747360206d75737420686176652073616d652072657365727665206c6f636174696f6e20616e64206d6179206e6f742062652074656c65706f727461626c6520746f206064657374602e4d01202d2060617373657473602068617665206c6f63616c20726573657276653a207472616e736665722061737365747320746f20736f7665726569676e206163636f756e74206f662064657374696e6174696f6e4d01202020636861696e20616e6420666f72776172642061206e6f74696669636174696f6e2058434d20746f2060646573746020746f206d696e7420616e64206465706f73697420726573657276652d62617365646c20202061737365747320746f206062656e6566696369617279602e5501202d20606173736574736020686176652064657374696e6174696f6e20726573657276653a206275726e206c6f63616c2061737365747320616e6420666f72776172642061206e6f74696669636174696f6e20746f590120202060646573746020636861696e20746f207769746864726177207468652072657365727665206173736574732066726f6d207468697320636861696e277320736f7665726569676e206163636f756e7420616e64842020206465706f736974207468656d20746f206062656e6566696369617279602e6101202d20606173736574736020686176652072656d6f746520726573657276653a206275726e206c6f63616c206173736574732c20666f72776172642058434d20746f207265736572766520636861696e20746f206d6f7665610120202072657365727665732066726f6d207468697320636861696e277320534120746f2060646573746020636861696e27732053412c20616e6420666f727761726420616e6f746865722058434d20746f20606465737460f4202020746f206d696e7420616e64206465706f73697420726573657276652d62617365642061737365747320746f206062656e6566696369617279602e005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f666101696e64657820606665655f61737365745f6974656d602c20757020746f20656e6f75676820746f2070617920666f7220607765696768745f6c696d697460206f66207765696768742e204966206d6f72652077656967687459016973206e6565646564207468616e20607765696768745f6c696d6974602c207468656e20746865206f7065726174696f6e2077696c6c206661696c20616e64207468652073656e7420617373657473206d6179206265206174207269736b2e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e25012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c7920626520605b506172656e742c6101202050617261636861696e282e2e295d6020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f7220605b50617261636861696e282e2e295d6020746f2073656e642066726f6d54202072656c617920746f2070617261636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865c82020666565206f6e20746865206064657374602028616e6420706f737369626c7920726573657276652920636861696e732e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e45012d20607765696768745f6c696d6974603a205468652072656d6f74652d7369646520776569676874206c696d69742c20696620616e792c20666f72207468652058434d206665652070757263686173652e5c6c696d697465645f74656c65706f72745f61737365747314011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e6566696369617279d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747375010150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c7533320001307765696768745f6c696d69747101012c5765696768744c696d6974000948110154656c65706f727420736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f20736f6d652064657374696e6174696f6e20636861696e2e005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f666101696e64657820606665655f61737365745f6974656d602c20757020746f20656e6f75676820746f2070617920666f7220607765696768745f6c696d697460206f66207765696768742e204966206d6f72652077656967687459016973206e6565646564207468616e20607765696768745f6c696d6974602c207468656e20746865206f7065726174696f6e2077696c6c206661696c20616e64207468652073656e7420617373657473206d6179206265206174207269736b2e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e25012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c7920626520605b506172656e742c6101202050617261636861696e282e2e295d6020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f7220605b50617261636861696e282e2e295d6020746f2073656e642066726f6d54202072656c617920746f2070617261636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865682020666565206f6e207468652060646573746020636861696e2e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e45012d20607765696768745f6c696d6974603a205468652072656d6f74652d7369646520776569676874206c696d69742c20696620616e792c20666f72207468652058434d206665652070757263686173652e40666f7263655f73757370656e73696f6e04012473757370656e646564200110626f6f6c000a10f4536574206f7220756e7365742074686520676c6f62616c2073757370656e73696f6e207374617465206f66207468652058434d206578656375746f722e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2ed02d206073757370656e646564603a2060747275656020746f2073757370656e642c206066616c73656020746f20726573756d652e3c7472616e736665725f61737365747314011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e6566696369617279d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747375010150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c7533320001307765696768745f6c696d69747101012c5765696768744c696d6974000b845d015472616e7366657220736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f207468652064657374696e6174696f6e20636861696e207468726f756768207468656972206c6f63616c2cd064657374696e6174696f6e206f722072656d6f746520726573657276652c206f72207468726f7567682074656c65706f7274732e005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f663501696e64657820606665655f61737365745f6974656d60202868656e636520726566657272656420746f20617320606665657360292c20757020746f20656e6f75676820746f2070617920666f724101607765696768745f6c696d697460206f66207765696768742e204966206d6f726520776569676874206973206e6565646564207468616e20607765696768745f6c696d6974602c207468656e20746865dc6f7065726174696f6e2077696c6c206661696c20616e64207468652073656e7420617373657473206d6179206265206174207269736b2e006101606173736574736020286578636c7564696e672060666565736029206d75737420686176652073616d652072657365727665206c6f636174696f6e206f72206f74686572776973652062652074656c65706f727461626c65b0746f206064657374602c206e6f206c696d69746174696f6e7320696d706f736564206f6e206066656573602e4d01202d20666f72206c6f63616c20726573657276653a207472616e736665722061737365747320746f20736f7665726569676e206163636f756e74206f662064657374696e6174696f6e20636861696e20616e644d01202020666f72776172642061206e6f74696669636174696f6e2058434d20746f2060646573746020746f206d696e7420616e64206465706f73697420726573657276652d62617365642061737365747320746f442020206062656e6566696369617279602e6101202d20666f722064657374696e6174696f6e20726573657276653a206275726e206c6f63616c2061737365747320616e6420666f72776172642061206e6f74696669636174696f6e20746f2060646573746020636861696e5901202020746f207769746864726177207468652072657365727665206173736574732066726f6d207468697320636861696e277320736f7665726569676e206163636f756e7420616e64206465706f736974207468656d50202020746f206062656e6566696369617279602e5d01202d20666f722072656d6f746520726573657276653a206275726e206c6f63616c206173736574732c20666f72776172642058434d20746f207265736572766520636861696e20746f206d6f76652072657365727665735d0120202066726f6d207468697320636861696e277320534120746f2060646573746020636861696e27732053412c20616e6420666f727761726420616e6f746865722058434d20746f2060646573746020746f206d696e74d4202020616e64206465706f73697420726573657276652d62617365642061737365747320746f206062656e6566696369617279602e5101202d20666f722074656c65706f7274733a206275726e206c6f63616c2061737365747320616e6420666f72776172642058434d20746f2060646573746020636861696e20746f206d696e742f74656c65706f7274b020202061737365747320616e64206465706f736974207468656d20746f206062656e6566696369617279602e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e2d012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c792062652060583228506172656e742c5501202050617261636861696e282e2e29296020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f72206058312850617261636861696e282e2e29296020746f2073656e6468202066726f6d2072656c617920746f2070617261636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865c82020666565206f6e20746865206064657374602028616e6420706f737369626c7920726573657276652920636861696e732e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e45012d20607765696768745f6c696d6974603a205468652072656d6f74652d7369646520776569676874206c696d69742c20696620616e792c20666f72207468652058434d206665652070757263686173652e30636c61696d5f61737365747308011861737365747375010150426f783c56657273696f6e65644173736574733e00012c62656e6566696369617279d9010158426f783c56657273696f6e65644c6f636174696f6e3e000c185501436c61696d73206173736574732074726170706564206f6e20746869732070616c6c65742062656361757365206f66206c6566746f7665722061737365747320647572696e672058434d20657865637574696f6e2e00ac2d20606f726967696e603a20416e796f6e652063616e2063616c6c20746869732065787472696e7369632e5d012d2060617373657473603a20546865206578616374206173736574732074686174207765726520747261707065642e20557365207468652076657273696f6e20746f207370656369667920776861742076657273696f6e9877617320746865206c6174657374207768656e2074686579207765726520747261707065642e45012d206062656e6566696369617279603a20546865206c6f636174696f6e2f6163636f756e742077686572652074686520636c61696d6564206173736574732077696c6c206265206465706f73697465642e8c7472616e736665725f6173736574735f7573696e675f747970655f616e645f7468656e1c011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747375010150426f783c56657273696f6e65644173736574733e0001506173736574735f7472616e736665725f747970651d050144426f783c5472616e73666572547970653e00013872656d6f74655f666565735f696421050154426f783c56657273696f6e6564417373657449643e000148666565735f7472616e736665725f747970651d050144426f783c5472616e73666572547970653e000148637573746f6d5f78636d5f6f6e5f6465737489040154426f783c56657273696f6e656458636d3c28293e3e0001307765696768745f6c696d69747101012c5765696768744c696d6974000dc055015472616e73666572206173736574732066726f6d20746865206c6f63616c20636861696e20746f207468652064657374696e6174696f6e20636861696e207573696e67206578706c69636974207472616e7366657268747970657320666f722061737365747320616e6420666565732e0059016061737365747360206d75737420686176652073616d652072657365727665206c6f636174696f6e206f72206d61792062652074656c65706f727461626c6520746f206064657374602e2043616c6c6572206d757374ec70726f766964652074686520606173736574735f7472616e736665725f747970656020746f206265207573656420666f722060617373657473603a5101202d20605472616e73666572547970653a3a4c6f63616c52657365727665603a207472616e736665722061737365747320746f20736f7665726569676e206163636f756e74206f662064657374696e6174696f6e4d01202020636861696e20616e6420666f72776172642061206e6f74696669636174696f6e2058434d20746f2060646573746020746f206d696e7420616e64206465706f73697420726573657276652d62617365646c20202061737365747320746f206062656e6566696369617279602e5901202d20605472616e73666572547970653a3a44657374696e6174696f6e52657365727665603a206275726e206c6f63616c2061737365747320616e6420666f72776172642061206e6f74696669636174696f6e20746f590120202060646573746020636861696e20746f207769746864726177207468652072657365727665206173736574732066726f6d207468697320636861696e277320736f7665726569676e206163636f756e7420616e64842020206465706f736974207468656d20746f206062656e6566696369617279602e5901202d20605472616e73666572547970653a3a52656d6f746552657365727665287265736572766529603a206275726e206c6f63616c206173736574732c20666f72776172642058434d20746f206072657365727665606101202020636861696e20746f206d6f76652072657365727665732066726f6d207468697320636861696e277320534120746f2060646573746020636861696e27732053412c20616e6420666f727761726420616e6f74686572550120202058434d20746f2060646573746020746f206d696e7420616e64206465706f73697420726573657276652d62617365642061737365747320746f206062656e6566696369617279602e205479706963616c6c79942020207468652072656d6f746520607265736572766560206973204173736574204875622e4501202d20605472616e73666572547970653a3a54656c65706f7274603a206275726e206c6f63616c2061737365747320616e6420666f72776172642058434d20746f2060646573746020636861696e20746fe82020206d696e742f74656c65706f72742061737365747320616e64206465706f736974207468656d20746f206062656e6566696369617279602e0055014f6e207468652064657374696e6174696f6e20636861696e2c2061732077656c6c20617320616e7920696e7465726d65646961727920686f70732c2060427579457865637574696f6e60206973207573656420746f210162757920657865637574696f6e207573696e67207472616e73666572726564206061737365747360206964656e746966696564206279206072656d6f74655f666565735f6964602e59014d616b65207375726520656e6f756768206f662074686520737065636966696564206072656d6f74655f666565735f69646020617373657420697320696e636c7564656420696e2074686520676976656e206c69737461016f662060617373657473602e206072656d6f74655f666565735f6964602073686f756c6420626520656e6f75676820746f2070617920666f7220607765696768745f6c696d6974602e204966206d6f72652077656967687459016973206e6565646564207468616e20607765696768745f6c696d6974602c207468656e20746865206f7065726174696f6e2077696c6c206661696c20616e64207468652073656e7420617373657473206d6179206265206174207269736b2e0045016072656d6f74655f666565735f696460206d61792075736520646966666572656e74207472616e736665722074797065207468616e2072657374206f6620606173736574736020616e642063616e2062659c737065636966696564207468726f7567682060666565735f7472616e736665725f74797065602e0061015468652063616c6c6572206e6565647320746f207370656369667920776861742073686f756c642068617070656e20746f20746865207472616e7366657272656420617373657473206f6e6365207468657920726561636841017468652060646573746020636861696e2e205468697320697320646f6e65207468726f756768207468652060637573746f6d5f78636d5f6f6e5f646573746020706172616d657465722c207768696368fc636f6e7461696e732074686520696e737472756374696f6e7320746f2065786563757465206f6e2060646573746020617320612066696e616c20737465702e7c20205468697320697320757375616c6c792061732073696d706c652061733a510120206058636d28766563215b4465706f7369744173736574207b206173736574733a2057696c6428416c6c436f756e746564286173736574732e6c656e282929292c2062656e6566696369617279207d5d29602c3101202062757420636f756c6420626520736f6d657468696e67206d6f72652065786f746963206c696b652073656e64696e6720746865206061737365747360206576656e20667572746865722e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e25012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c7920626520605b506172656e742c6101202050617261636861696e282e2e295d6020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f7220605b50617261636861696e282e2e295d6020746f2073656e642066726f6d3d01202072656c617920746f2070617261636861696e2c206f72206028706172656e74733a20322c2028476c6f62616c436f6e73656e737573282e2e292c202e2e29296020746f2073656e642066726f6df4202070617261636861696e206163726f737320612062726964676520746f20616e6f746865722065636f73797374656d2064657374696e6174696f6e2e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865c82020666565206f6e20746865206064657374602028616e6420706f737369626c7920726573657276652920636861696e732e3d012d20606173736574735f7472616e736665725f74797065603a205468652058434d20605472616e736665725479706560207573656420746f207472616e73666572207468652060617373657473602e21012d206072656d6f74655f666565735f6964603a204f6e65206f662074686520696e636c7564656420606173736574736020746f206265207573656420746f2070617920666565732e49012d2060666565735f7472616e736665725f74797065603a205468652058434d20605472616e736665725479706560207573656420746f207472616e736665722074686520606665657360206173736574732e59012d2060637573746f6d5f78636d5f6f6e5f64657374603a205468652058434d20746f206265206578656375746564206f6e2060646573746020636861696e20617320746865206c6173742073746570206f6620746865590120207472616e736665722c20776869636820616c736f2064657465726d696e657320776861742068617070656e7320746f2074686520617373657473206f6e207468652064657374696e6174696f6e20636861696e2e45012d20607765696768745f6c696d6974603a205468652072656d6f74652d7369646520776569676874206c696d69742c20696620616e792c20666f72207468652058434d206665652070757263686173652e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e8904080c78636d3056657273696f6e656458636d042c52756e74696d6543616c6c00010c08563204008d04015076323a3a58636d3c52756e74696d6543616c6c3e0002000856330400bd04015076333a3a58636d3c52756e74696d6543616c6c3e00030008563404000501015076343a3a58636d3c52756e74696d6543616c6c3e000400008d040c0c78636d0876320c58636d042c52756e74696d6543616c6c00000400910401745665633c496e737472756374696f6e3c52756e74696d6543616c6c3e3e0000910400000295040095040c0c78636d0876322c496e737472756374696f6e042c52756e74696d6543616c6c000170345769746864726177417373657404007901012c4d756c7469417373657473000000545265736572766541737365744465706f736974656404007901012c4d756c7469417373657473000100585265636569766554656c65706f72746564417373657404007901012c4d756c7469417373657473000200345175657279526573706f6e73650c012071756572795f69642c011c51756572794964000120726573706f6e736599040120526573706f6e73650001286d61785f7765696768742c010c753634000300345472616e7366657241737365740801186173736574737901012c4d756c746941737365747300012c62656e6566696369617279890101344d756c74694c6f636174696f6e000400505472616e736665725265736572766541737365740c01186173736574737901012c4d756c746941737365747300011064657374890101344d756c74694c6f636174696f6e00010c78636d8d04011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f74797065a90401284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f73742c010c75363400011063616c6c5d010168446f75626c65456e636f6465643c52756e74696d6543616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572cc010c7533320001406d61785f6d6573736167655f73697a65cc010c7533320001306d61785f6361706163697479cc010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74cc010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72cc010c75333200011873656e646572cc010c753332000124726563697069656e74cc010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e04008d010154496e746572696f724d756c74694c6f636174696f6e000b002c5265706f72744572726f720c012071756572795f69642c011c5175657279496400011064657374890101344d756c74694c6f636174696f6e00014c6d61785f726573706f6e73655f7765696768742c010c753634000c00304465706f73697441737365740c0118617373657473ad0401404d756c7469417373657446696c7465720001286d61785f617373657473cc010c75333200012c62656e6566696369617279890101344d756c74694c6f636174696f6e000d004c4465706f736974526573657276654173736574100118617373657473ad0401404d756c7469417373657446696c7465720001286d61785f617373657473cc010c75333200011064657374890101344d756c74694c6f636174696f6e00010c78636d8d04011c58636d3c28293e000e003445786368616e6765417373657408011067697665ad0401404d756c7469417373657446696c74657200011c726563656976657901012c4d756c7469417373657473000f005c496e6974696174655265736572766557697468647261770c0118617373657473ad0401404d756c7469417373657446696c74657200011c72657365727665890101344d756c74694c6f636174696f6e00010c78636d8d04011c58636d3c28293e00100040496e69746961746554656c65706f72740c0118617373657473ad0401404d756c7469417373657446696c74657200011064657374890101344d756c74694c6f636174696f6e00010c78636d8d04011c58636d3c28293e001100305175657279486f6c64696e6710012071756572795f69642c011c5175657279496400011064657374890101344d756c74694c6f636174696f6e000118617373657473ad0401404d756c7469417373657446696c74657200014c6d61785f726573706f6e73655f7765696768742c010c75363400120030427579457865637574696f6e08011066656573810101284d756c746941737365740001307765696768745f6c696d6974b904012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204008d04014058636d3c52756e74696d6543616c6c3e0015002c536574417070656e64697804008d04014058636d3c52756e74696d6543616c6c3e00160028436c6561724572726f7200170028436c61696d41737365740801186173736574737901012c4d756c74694173736574730001187469636b6574890101344d756c74694c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f7765696768742c010c753634001a0048556e73756273637269626556657273696f6e001b000099040c0c78636d08763220526573706f6e7365000110104e756c6c0000001841737365747304007901012c4d756c74694173736574730001003c457865637574696f6e526573756c7404009d0401504f7074696f6e3c287533322c204572726f72293e0002001c56657273696f6e040010013873757065723a3a56657273696f6e000300009d0404184f7074696f6e04045401a1040108104e6f6e6500000010536f6d650400a1040000010000a1040000040810a50400a504100c78636d08763218747261697473144572726f72000168204f766572666c6f7700000034556e696d706c656d656e74656400010060556e74727573746564526573657276654c6f636174696f6e00020064556e7472757374656454656c65706f72744c6f636174696f6e000300444d756c74694c6f636174696f6e46756c6c000400684d756c74694c6f636174696f6e4e6f74496e7665727469626c65000500244261644f726967696e0006003c496e76616c69644c6f636174696f6e0007003441737365744e6f74466f756e64000800544661696c6564546f5472616e7361637441737365740009003c4e6f74576974686472617761626c65000a00484c6f636174696f6e43616e6e6f74486f6c64000b0054457863656564734d61784d65737361676553697a65000c005844657374696e6174696f6e556e737570706f72746564000d00245472616e73706f7274000e0028556e726f757461626c65000f0030556e6b6e6f776e436c61696d001000384661696c6564546f4465636f6465001100404d6178576569676874496e76616c6964001200384e6f74486f6c64696e674665657300130030546f6f457870656e736976650014001054726170040030010c7536340015004c556e68616e646c656458636d56657273696f6e001600485765696768744c696d69745265616368656404003001185765696768740017001c426172726965720018004c5765696768744e6f74436f6d70757461626c6500190000a9040c0c78636d087632284f726967696e4b696e64000110184e617469766500000040536f7665726569676e4163636f756e74000100245375706572757365720002000c58636d00030000ad04100c78636d087632286d756c74696173736574404d756c7469417373657446696c74657200010820446566696e69746504007901012c4d756c74694173736574730000001057696c640400b104013857696c644d756c7469417373657400010000b104100c78636d087632286d756c746961737365743857696c644d756c746941737365740001080c416c6c00000014416c6c4f6608010869648501011c4173736574496400010c66756eb504013c57696c6446756e676962696c69747900010000b504100c78636d087632286d756c746961737365743c57696c6446756e676962696c6974790001082046756e6769626c650000002c4e6f6e46756e6769626c6500010000b9040c0c78636d0876322c5765696768744c696d697400010824556e6c696d697465640000001c4c696d6974656404002c010c75363400010000bd040c0c78636d0876330c58636d041043616c6c00000400c10401585665633c496e737472756374696f6e3c43616c6c3e3e0000c104000002c50400c5040c0c78636d0876332c496e737472756374696f6e041043616c6c0001c034576974686472617741737365740400ad01012c4d756c7469417373657473000000545265736572766541737365744465706f73697465640400ad01012c4d756c7469417373657473000100585265636569766554656c65706f7274656441737365740400ad01012c4d756c7469417373657473000200345175657279526573706f6e736510012071756572795f69642c011c51756572794964000120726573706f6e7365c9040120526573706f6e73650001286d61785f77656967687428011857656967687400011c71756572696572dd0401544f7074696f6e3c4d756c74694c6f636174696f6e3e000300345472616e736665724173736574080118617373657473ad01012c4d756c746941737365747300012c62656e6566696369617279bd0101344d756c74694c6f636174696f6e000400505472616e736665725265736572766541737365740c0118617373657473ad01012c4d756c746941737365747300011064657374bd0101344d756c74694c6f636174696f6e00010c78636dbd04011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f6b696e64590101284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737428011857656967687400011063616c6c5d01014c446f75626c65456e636f6465643c43616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572cc010c7533320001406d61785f6d6573736167655f73697a65cc010c7533320001306d61785f6361706163697479cc010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74cc010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72cc010c75333200011873656e646572cc010c753332000124726563697069656e74cc010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e0400c1010154496e746572696f724d756c74694c6f636174696f6e000b002c5265706f72744572726f720400e10401445175657279526573706f6e7365496e666f000c00304465706f7369744173736574080118617373657473e50401404d756c7469417373657446696c74657200012c62656e6566696369617279bd0101344d756c74694c6f636174696f6e000d004c4465706f7369745265736572766541737365740c0118617373657473e50401404d756c7469417373657446696c74657200011064657374bd0101344d756c74694c6f636174696f6e00010c78636dbd04011c58636d3c28293e000e003445786368616e676541737365740c011067697665e50401404d756c7469417373657446696c74657200011077616e74ad01012c4d756c746941737365747300011c6d6178696d616c200110626f6f6c000f005c496e6974696174655265736572766557697468647261770c0118617373657473e50401404d756c7469417373657446696c74657200011c72657365727665bd0101344d756c74694c6f636174696f6e00010c78636dbd04011c58636d3c28293e00100040496e69746961746554656c65706f72740c0118617373657473e50401404d756c7469417373657446696c74657200011064657374bd0101344d756c74694c6f636174696f6e00010c78636dbd04011c58636d3c28293e001100345265706f7274486f6c64696e67080134726573706f6e73655f696e666fe10401445175657279526573706f6e7365496e666f000118617373657473e50401404d756c7469417373657446696c74657200120030427579457865637574696f6e08011066656573b50101284d756c746941737365740001307765696768745f6c696d69747101012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c65720400bd04012458636d3c43616c6c3e0015002c536574417070656e6469780400bd04012458636d3c43616c6c3e00160028436c6561724572726f7200170028436c61696d4173736574080118617373657473ad01012c4d756c74694173736574730001187469636b6574bd0101344d756c74694c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f776569676874280118576569676874001a0048556e73756273637269626556657273696f6e001b00244275726e41737365740400ad01012c4d756c7469417373657473001c002c45787065637441737365740400ad01012c4d756c7469417373657473001d00304578706563744f726967696e0400dd0401544f7074696f6e3c4d756c74694c6f636174696f6e3e001e002c4578706563744572726f720400350101504f7074696f6e3c287533322c204572726f72293e001f00504578706563745472616e7361637453746174757304004d0101384d617962654572726f72436f64650020002c517565727950616c6c657408012c6d6f64756c655f6e616d6538011c5665633c75383e000134726573706f6e73655f696e666fe10401445175657279526573706f6e7365496e666f0021003045787065637450616c6c6574140114696e646578cc010c7533320001106e616d6538011c5665633c75383e00012c6d6f64756c655f6e616d6538011c5665633c75383e00012c63726174655f6d616a6f72cc010c75333200013c6d696e5f63726174655f6d696e6f72cc010c753332002200505265706f72745472616e736163745374617475730400e10401445175657279526573706f6e7365496e666f0023004c436c6561725472616e736163745374617475730024003c556e6976657273616c4f726967696e0400c50101204a756e6374696f6e002500344578706f72744d6573736167650c011c6e6574776f726bcd0101244e6574776f726b496400012c64657374696e6174696f6ec1010154496e746572696f724d756c74694c6f636174696f6e00010c78636dbd04011c58636d3c28293e002600244c6f636b41737365740801146173736574b50101284d756c74694173736574000120756e6c6f636b6572bd0101344d756c74694c6f636174696f6e0027002c556e6c6f636b41737365740801146173736574b50101284d756c74694173736574000118746172676574bd0101344d756c74694c6f636174696f6e002800384e6f7465556e6c6f636b61626c650801146173736574b50101284d756c746941737365740001146f776e6572bd0101344d756c74694c6f636174696f6e0029003452657175657374556e6c6f636b0801146173736574b50101284d756c746941737365740001186c6f636b6572bd0101344d756c74694c6f636174696f6e002a002c536574466565734d6f64650401306a69745f7769746864726177200110626f6f6c002b0020536574546f70696304000401205b75383b2033325d002c0028436c656172546f706963002d002c416c6961734f726967696e0400bd0101344d756c74694c6f636174696f6e002e003c556e70616964457865637574696f6e0801307765696768745f6c696d69747101012c5765696768744c696d6974000130636865636b5f6f726967696edd0401544f7074696f6e3c4d756c74694c6f636174696f6e3e002f0000c9040c0c78636d08763320526573706f6e7365000118104e756c6c000000184173736574730400ad01012c4d756c74694173736574730001003c457865637574696f6e526573756c740400350101504f7074696f6e3c287533322c204572726f72293e0002001c56657273696f6e040010013873757065723a3a56657273696f6e0003002c50616c6c657473496e666f0400cd040198426f756e6465645665633c50616c6c6574496e666f2c204d617850616c6c657473496e666f3e000400384469737061746368526573756c7404004d0101384d617962654572726f72436f646500050000cd040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401d104045300000400d90401185665633c543e0000d1040c0c78636d0876332850616c6c6574496e666f0000180114696e646578cc010c7533320001106e616d65d5040180426f756e6465645665633c75382c204d617850616c6c65744e616d654c656e3e00012c6d6f64756c655f6e616d65d5040180426f756e6465645665633c75382c204d617850616c6c65744e616d654c656e3e0001146d616a6f72cc010c7533320001146d696e6f72cc010c7533320001147061746368cc010c7533320000d5040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000d904000002d10400dd0404184f7074696f6e04045401bd010108104e6f6e6500000010536f6d650400bd010000010000e1040c0c78636d087633445175657279526573706f6e7365496e666f00000c012c64657374696e6174696f6ebd0101344d756c74694c6f636174696f6e00012071756572795f69642c011c517565727949640001286d61785f7765696768742801185765696768740000e504100c78636d087633286d756c74696173736574404d756c7469417373657446696c74657200010820446566696e6974650400ad01012c4d756c74694173736574730000001057696c640400e904013857696c644d756c7469417373657400010000e904100c78636d087633286d756c746961737365743857696c644d756c746941737365740001100c416c6c00000014416c6c4f660801086964b901011c4173736574496400010c66756eed04013c57696c6446756e676962696c69747900010028416c6c436f756e7465640400cc010c75333200020030416c6c4f66436f756e7465640c01086964b901011c4173736574496400010c66756eed04013c57696c6446756e676962696c697479000114636f756e74cc010c75333200030000ed04100c78636d087633286d756c746961737365743c57696c6446756e676962696c6974790001082046756e6769626c650000002c4e6f6e46756e6769626c6500010000f104080c78636d3056657273696f6e656458636d042c52756e74696d6543616c6c00010c0856320400f504015076323a3a58636d3c52756e74696d6543616c6c3e00020008563304000505015076333a3a58636d3c52756e74696d6543616c6c3e00030008563404001105015076343a3a58636d3c52756e74696d6543616c6c3e00040000f5040c0c78636d0876320c58636d042c52756e74696d6543616c6c00000400f90401745665633c496e737472756374696f6e3c52756e74696d6543616c6c3e3e0000f904000002fd0400fd040c0c78636d0876322c496e737472756374696f6e042c52756e74696d6543616c6c000170345769746864726177417373657404007901012c4d756c7469417373657473000000545265736572766541737365744465706f736974656404007901012c4d756c7469417373657473000100585265636569766554656c65706f72746564417373657404007901012c4d756c7469417373657473000200345175657279526573706f6e73650c012071756572795f69642c011c51756572794964000120726573706f6e736599040120526573706f6e73650001286d61785f7765696768742c010c753634000300345472616e7366657241737365740801186173736574737901012c4d756c746941737365747300012c62656e6566696369617279890101344d756c74694c6f636174696f6e000400505472616e736665725265736572766541737365740c01186173736574737901012c4d756c746941737365747300011064657374890101344d756c74694c6f636174696f6e00010c78636d8d04011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f74797065a90401284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f73742c010c75363400011063616c6c01050168446f75626c65456e636f6465643c52756e74696d6543616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572cc010c7533320001406d61785f6d6573736167655f73697a65cc010c7533320001306d61785f6361706163697479cc010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74cc010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72cc010c75333200011873656e646572cc010c753332000124726563697069656e74cc010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e04008d010154496e746572696f724d756c74694c6f636174696f6e000b002c5265706f72744572726f720c012071756572795f69642c011c5175657279496400011064657374890101344d756c74694c6f636174696f6e00014c6d61785f726573706f6e73655f7765696768742c010c753634000c00304465706f73697441737365740c0118617373657473ad0401404d756c7469417373657446696c7465720001286d61785f617373657473cc010c75333200012c62656e6566696369617279890101344d756c74694c6f636174696f6e000d004c4465706f736974526573657276654173736574100118617373657473ad0401404d756c7469417373657446696c7465720001286d61785f617373657473cc010c75333200011064657374890101344d756c74694c6f636174696f6e00010c78636d8d04011c58636d3c28293e000e003445786368616e6765417373657408011067697665ad0401404d756c7469417373657446696c74657200011c726563656976657901012c4d756c7469417373657473000f005c496e6974696174655265736572766557697468647261770c0118617373657473ad0401404d756c7469417373657446696c74657200011c72657365727665890101344d756c74694c6f636174696f6e00010c78636d8d04011c58636d3c28293e00100040496e69746961746554656c65706f72740c0118617373657473ad0401404d756c7469417373657446696c74657200011064657374890101344d756c74694c6f636174696f6e00010c78636d8d04011c58636d3c28293e001100305175657279486f6c64696e6710012071756572795f69642c011c5175657279496400011064657374890101344d756c74694c6f636174696f6e000118617373657473ad0401404d756c7469417373657446696c74657200014c6d61785f726573706f6e73655f7765696768742c010c75363400120030427579457865637574696f6e08011066656573810101284d756c746941737365740001307765696768745f6c696d6974b904012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c65720400f504014058636d3c52756e74696d6543616c6c3e0015002c536574417070656e6469780400f504014058636d3c52756e74696d6543616c6c3e00160028436c6561724572726f7200170028436c61696d41737365740801186173736574737901012c4d756c74694173736574730001187469636b6574890101344d756c74694c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f7765696768742c010c753634001a0048556e73756273637269626556657273696f6e001b000001050c0c78636d38646f75626c655f656e636f64656434446f75626c65456e636f646564040454000004011c656e636f64656438011c5665633c75383e000005050c0c78636d0876330c58636d041043616c6c00000400090501585665633c496e737472756374696f6e3c43616c6c3e3e000009050000020d05000d050c0c78636d0876332c496e737472756374696f6e041043616c6c0001c034576974686472617741737365740400ad01012c4d756c7469417373657473000000545265736572766541737365744465706f73697465640400ad01012c4d756c7469417373657473000100585265636569766554656c65706f7274656441737365740400ad01012c4d756c7469417373657473000200345175657279526573706f6e736510012071756572795f69642c011c51756572794964000120726573706f6e7365c9040120526573706f6e73650001286d61785f77656967687428011857656967687400011c71756572696572dd0401544f7074696f6e3c4d756c74694c6f636174696f6e3e000300345472616e736665724173736574080118617373657473ad01012c4d756c746941737365747300012c62656e6566696369617279bd0101344d756c74694c6f636174696f6e000400505472616e736665725265736572766541737365740c0118617373657473ad01012c4d756c746941737365747300011064657374bd0101344d756c74694c6f636174696f6e00010c78636dbd04011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f6b696e64590101284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737428011857656967687400011063616c6c0105014c446f75626c65456e636f6465643c43616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572cc010c7533320001406d61785f6d6573736167655f73697a65cc010c7533320001306d61785f6361706163697479cc010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74cc010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72cc010c75333200011873656e646572cc010c753332000124726563697069656e74cc010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e0400c1010154496e746572696f724d756c74694c6f636174696f6e000b002c5265706f72744572726f720400e10401445175657279526573706f6e7365496e666f000c00304465706f7369744173736574080118617373657473e50401404d756c7469417373657446696c74657200012c62656e6566696369617279bd0101344d756c74694c6f636174696f6e000d004c4465706f7369745265736572766541737365740c0118617373657473e50401404d756c7469417373657446696c74657200011064657374bd0101344d756c74694c6f636174696f6e00010c78636dbd04011c58636d3c28293e000e003445786368616e676541737365740c011067697665e50401404d756c7469417373657446696c74657200011077616e74ad01012c4d756c746941737365747300011c6d6178696d616c200110626f6f6c000f005c496e6974696174655265736572766557697468647261770c0118617373657473e50401404d756c7469417373657446696c74657200011c72657365727665bd0101344d756c74694c6f636174696f6e00010c78636dbd04011c58636d3c28293e00100040496e69746961746554656c65706f72740c0118617373657473e50401404d756c7469417373657446696c74657200011064657374bd0101344d756c74694c6f636174696f6e00010c78636dbd04011c58636d3c28293e001100345265706f7274486f6c64696e67080134726573706f6e73655f696e666fe10401445175657279526573706f6e7365496e666f000118617373657473e50401404d756c7469417373657446696c74657200120030427579457865637574696f6e08011066656573b50101284d756c746941737365740001307765696768745f6c696d69747101012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204000505012458636d3c43616c6c3e0015002c536574417070656e64697804000505012458636d3c43616c6c3e00160028436c6561724572726f7200170028436c61696d4173736574080118617373657473ad01012c4d756c74694173736574730001187469636b6574bd0101344d756c74694c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f776569676874280118576569676874001a0048556e73756273637269626556657273696f6e001b00244275726e41737365740400ad01012c4d756c7469417373657473001c002c45787065637441737365740400ad01012c4d756c7469417373657473001d00304578706563744f726967696e0400dd0401544f7074696f6e3c4d756c74694c6f636174696f6e3e001e002c4578706563744572726f720400350101504f7074696f6e3c287533322c204572726f72293e001f00504578706563745472616e7361637453746174757304004d0101384d617962654572726f72436f64650020002c517565727950616c6c657408012c6d6f64756c655f6e616d6538011c5665633c75383e000134726573706f6e73655f696e666fe10401445175657279526573706f6e7365496e666f0021003045787065637450616c6c6574140114696e646578cc010c7533320001106e616d6538011c5665633c75383e00012c6d6f64756c655f6e616d6538011c5665633c75383e00012c63726174655f6d616a6f72cc010c75333200013c6d696e5f63726174655f6d696e6f72cc010c753332002200505265706f72745472616e736163745374617475730400e10401445175657279526573706f6e7365496e666f0023004c436c6561725472616e736163745374617475730024003c556e6976657273616c4f726967696e0400c50101204a756e6374696f6e002500344578706f72744d6573736167650c011c6e6574776f726bcd0101244e6574776f726b496400012c64657374696e6174696f6ec1010154496e746572696f724d756c74694c6f636174696f6e00010c78636dbd04011c58636d3c28293e002600244c6f636b41737365740801146173736574b50101284d756c74694173736574000120756e6c6f636b6572bd0101344d756c74694c6f636174696f6e0027002c556e6c6f636b41737365740801146173736574b50101284d756c74694173736574000118746172676574bd0101344d756c74694c6f636174696f6e002800384e6f7465556e6c6f636b61626c650801146173736574b50101284d756c746941737365740001146f776e6572bd0101344d756c74694c6f636174696f6e0029003452657175657374556e6c6f636b0801146173736574b50101284d756c746941737365740001186c6f636b6572bd0101344d756c74694c6f636174696f6e002a002c536574466565734d6f64650401306a69745f7769746864726177200110626f6f6c002b0020536574546f70696304000401205b75383b2033325d002c0028436c656172546f706963002d002c416c6961734f726967696e0400bd0101344d756c74694c6f636174696f6e002e003c556e70616964457865637574696f6e0801307765696768745f6c696d69747101012c5765696768744c696d6974000130636865636b5f6f726967696edd0401544f7074696f6e3c4d756c74694c6f636174696f6e3e002f000011050c2c73746167696e675f78636d0876340c58636d041043616c6c00000400150501585665633c496e737472756374696f6e3c43616c6c3e3e0000150500000219050019050c2c73746167696e675f78636d0876342c496e737472756374696f6e041043616c6c0001c03457697468647261774173736574040011010118417373657473000000545265736572766541737365744465706f7369746564040011010118417373657473000100585265636569766554656c65706f727465644173736574040011010118417373657473000200345175657279526573706f6e736510012071756572795f69642c011c51756572794964000120726573706f6e736531010120526573706f6e73650001286d61785f77656967687428011857656967687400011c71756572696572550101404f7074696f6e3c4c6f636174696f6e3e000300345472616e7366657241737365740801186173736574731101011841737365747300012c62656e6566696369617279bc01204c6f636174696f6e000400505472616e736665725265736572766541737365740c01186173736574731101011841737365747300011064657374bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f6b696e64590101284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737428011857656967687400011063616c6c0105014c446f75626c65456e636f6465643c43616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572cc010c7533320001406d61785f6d6573736167655f73697a65cc010c7533320001306d61785f6361706163697479cc010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74cc010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72cc010c75333200011873656e646572cc010c753332000124726563697069656e74cc010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e0400c00140496e746572696f724c6f636174696f6e000b002c5265706f72744572726f720400610101445175657279526573706f6e7365496e666f000c00304465706f73697441737365740801186173736574736501012c417373657446696c74657200012c62656e6566696369617279bc01204c6f636174696f6e000d004c4465706f7369745265736572766541737365740c01186173736574736501012c417373657446696c74657200011064657374bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e000e003445786368616e676541737365740c0110676976656501012c417373657446696c74657200011077616e741101011841737365747300011c6d6178696d616c200110626f6f6c000f005c496e6974696174655265736572766557697468647261770c01186173736574736501012c417373657446696c74657200011c72657365727665bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e00100040496e69746961746554656c65706f72740c01186173736574736501012c417373657446696c74657200011064657374bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e001100345265706f7274486f6c64696e67080134726573706f6e73655f696e666f610101445175657279526573706f6e7365496e666f0001186173736574736501012c417373657446696c74657200120030427579457865637574696f6e080110666565731901011441737365740001307765696768745f6c696d69747101012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204001105012458636d3c43616c6c3e0015002c536574417070656e64697804001105012458636d3c43616c6c3e00160028436c6561724572726f7200170028436c61696d4173736574080118617373657473110101184173736574730001187469636b6574bc01204c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f776569676874280118576569676874001a0048556e73756273637269626556657273696f6e001b00244275726e4173736574040011010118417373657473001c002c4578706563744173736574040011010118417373657473001d00304578706563744f726967696e0400550101404f7074696f6e3c4c6f636174696f6e3e001e002c4578706563744572726f720400350101504f7074696f6e3c287533322c204572726f72293e001f00504578706563745472616e7361637453746174757304004d0101384d617962654572726f72436f64650020002c517565727950616c6c657408012c6d6f64756c655f6e616d6538011c5665633c75383e000134726573706f6e73655f696e666f610101445175657279526573706f6e7365496e666f0021003045787065637450616c6c6574140114696e646578cc010c7533320001106e616d6538011c5665633c75383e00012c6d6f64756c655f6e616d6538011c5665633c75383e00012c63726174655f6d616a6f72cc010c75333200013c6d696e5f63726174655f6d696e6f72cc010c753332002200505265706f72745472616e736163745374617475730400610101445175657279526573706f6e7365496e666f0023004c436c6561725472616e736163745374617475730024003c556e6976657273616c4f726967696e0400c801204a756e6374696f6e002500344578706f72744d6573736167650c011c6e6574776f726bd401244e6574776f726b496400012c64657374696e6174696f6ec00140496e746572696f724c6f636174696f6e00010c78636d0501011c58636d3c28293e002600244c6f636b41737365740801146173736574190101144173736574000120756e6c6f636b6572bc01204c6f636174696f6e0027002c556e6c6f636b41737365740801146173736574190101144173736574000118746172676574bc01204c6f636174696f6e002800384e6f7465556e6c6f636b61626c6508011461737365741901011441737365740001146f776e6572bc01204c6f636174696f6e0029003452657175657374556e6c6f636b08011461737365741901011441737365740001186c6f636b6572bc01204c6f636174696f6e002a002c536574466565734d6f64650401306a69745f7769746864726177200110626f6f6c002b0020536574546f70696304000401205b75383b2033325d002c0028436c656172546f706963002d002c416c6961734f726967696e0400bc01204c6f636174696f6e002e003c556e70616964457865637574696f6e0801307765696768745f6c696d69747101012c5765696768744c696d6974000130636865636b5f6f726967696e550101404f7074696f6e3c4c6f636174696f6e3e002f00001d05105073746167696e675f78636d5f6578656375746f72187472616974733861737365745f7472616e73666572305472616e73666572547970650001102054656c65706f7274000000304c6f63616c526573657276650001004844657374696e6174696f6e526573657276650002003452656d6f7465526573657276650400d901014456657273696f6e65644c6f636174696f6e000300002105080c78636d4056657273696f6e6564417373657449640001080856330400b901012c76333a3a4173736574496400030008563404001d01012c76343a3a417373657449640004000025050c4863756d756c75735f70616c6c65745f78636d1870616c6c65741043616c6c040454000100040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e29050c5070616c6c65745f6d6573736167655f71756575651870616c6c65741043616c6c04045400010824726561705f706167650801386d6573736167655f6f726967696ee50101484d6573736167654f726967696e4f663c543e000128706167655f696e64657810012450616765496e6465780000043d0152656d6f76652061207061676520776869636820686173206e6f206d6f7265206d657373616765732072656d61696e696e6720746f2062652070726f636573736564206f72206973207374616c652e48657865637574655f6f7665727765696768741001386d6573736167655f6f726967696ee50101484d6573736167654f726967696e4f663c543e0001107061676510012450616765496e646578000114696e64657810011c543a3a53697a650001307765696768745f6c696d6974280118576569676874000134784578656375746520616e206f766572776569676874206d6573736167652e004d0154656d706f726172792070726f63657373696e67206572726f72732077696c6c2062652070726f706167617465642077686572656173207065726d616e656e74206572726f7273206172652074726561746564546173207375636365737320636f6e646974696f6e2e00742d20606f726967696e603a204d75737420626520605369676e6564602e35012d20606d6573736167655f6f726967696e603a20546865206f726967696e2066726f6d20776869636820746865206d65737361676520746f20626520657865637574656420617272697665642e3d012d206070616765603a20546865207061676520696e2074686520717565756520696e20776869636820746865206d65737361676520746f2062652065786563757465642069732073697474696e672e09012d2060696e646578603a2054686520696e64657820696e746f20746865207175657565206f6620746865206d65737361676520746f2062652065786563757465642e59012d20607765696768745f6c696d6974603a20546865206d6178696d756d20616d6f756e74206f662077656967687420616c6c6f77656420746f20626520636f6e73756d656420696e2074686520657865637574696f6e4420206f6620746865206d6573736167652e00f442656e63686d61726b20636f6d706c657869747920636f6e73696465726174696f6e733a204f28696e646578202b207765696768745f6c696d6974292e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e2d050c6070616c6c65745f73746f726167655f70726f7669646572731870616c6c65741043616c6c0404540001384c726571756573745f6d73705f7369676e5f7570180120636170616369747930014853746f7261676544617461556e69743c543e0001386d756c7469616464726573736573f50101444d756c74696164647265737365733c543e0001ac76616c75655f70726f705f70726963655f7065725f756e69745f6f665f646174615f7065725f626c6f636b18013042616c616e63654f663c543e000128636f6d6d69746d656e7409020134436f6d6d69746d656e743c543e00016476616c75655f70726f705f6d61785f646174615f6c696d697430014853746f7261676544617461556e69743c543e00013c7061796d656e745f6163636f756e74000130543a3a4163636f756e7449640000686901446973706174636861626c652065787472696e736963207468617420616c6c6f777320757365727320746f207265717565737420746f207369676e2075702061732061204d61696e2053746f726167652050726f76696465722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e4101546865206f726967696e206d75737420626520746865206163636f756e7420746861742077616e747320746f207369676e2075702061732061204d61696e2053746f726167652050726f76696465722e00490146756e64732070726f706f7274696f6e616c20746f207468652063617061636974792072657175657374656420617265207265736572766564202868656c64292066726f6d20746865206163636f756e742e002c506172616d65746572733a71012d20606361706163697479603a2054686520746f74616c20616d6f756e74206f662064617461207468617420746865204d61696e2053746f726167652050726f76696465722077696c6c2062652061626c6520746f2073746f72652e91012d20606d756c7469616464726573736573603a2054686520766563746f72206f66206d756c7469616464726573736573207468617420746865207369676e65722077616e747320746f20726567697374657220286163636f7264696e6720746f20746865f05b4d756c74696164647220737065635d2868747470733a2f2f6769746875622e636f6d2f6d756c7469666f726d6174732f6d756c746961646472292981012d206076616c75655f70726f70603a205468652076616c75652070726f706f736974696f6e207468617420746865207369676e65722077696c6c2070726f766964652061732061204d61696e2053746f726167652050726f766964657220746fad01757365727320616e642077616e747320746f207265676973746572206f6e2d636861696e2e20497420636f756c642062652064617461206c696d6974732c20636f6d6d756e69636174696f6e2070726f746f636f6c7320746f2061636365737320746865207573657227733c646174612c20616e64206d6f72652e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722e2501322e20436865636b207468617420746865207369676e6572206973206e6f7420616c72656164792072656769737465726564206173206569746865722061204d5350206f72204253509c332e20436865636b207468617420746865206d756c7469616464726573732069732076616c69646101342e20436865636b207468617420746865206461746120746f2062652073746f7265642069732067726561746572207468616e20746865206d696e696d756d207265717569726564206279207468652072756e74696d652e9101352e2043616c63756c61746520686f77206d756368206465706f7369742077696c6c20746865207369676e6572206861766520746f20706179207573696e672074686520616d6f756e74206f6620646174612069742077616e747320746f2073746f7265f0362e20436865636b207468617420746865207369676e65722068617320656e6f7567682066756e647320746f2070617920746865206465706f7369748c372e20486f6c6420746865206465706f7369742066726f6d20746865207369676e65726901382e2055706461746520746865205369676e2055702052657175657374732073746f7261676520746f2061646420746865207369676e65722061732072657175657374696e6720746f207369676e2075702061732061204d535000d8456d69747320604d7370526571756573745369676e55705375636365737360206576656e74207768656e207375636365737366756c2e4c726571756573745f6273705f7369676e5f75700c0120636170616369747930014853746f7261676544617461556e69743c543e0001386d756c7469616464726573736573f50101444d756c74696164647265737365733c543e00013c7061796d656e745f6163636f756e74000130543a3a4163636f756e74496400015c4501446973706174636861626c652065787472696e736963207468617420616c6c6f777320757365727320746f207369676e2075702061732061204261636b75702053746f726167652050726f76696465722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e4901546865206f726967696e206d75737420626520746865206163636f756e7420746861742077616e747320746f207369676e2075702061732061204261636b75702053746f726167652050726f76696465722e00490146756e64732070726f706f7274696f6e616c20746f207468652063617061636974792072657175657374656420617265207265736572766564202868656c64292066726f6d20746865206163636f756e742e002c506172616d65746572733a79012d20606361706163697479603a2054686520746f74616c20616d6f756e74206f662064617461207468617420746865204261636b75702053746f726167652050726f76696465722077696c6c2062652061626c6520746f2073746f72652e91012d20606d756c7469616464726573736573603a2054686520766563746f72206f66206d756c7469616464726573736573207468617420746865207369676e65722077616e747320746f20726567697374657220286163636f7264696e6720746f20746865f05b4d756c74696164647220737065635d2868747470733a2f2f6769746875622e636f6d2f6d756c7469666f726d6174732f6d756c746961646472292900ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722e2501322e20436865636b207468617420746865207369676e6572206973206e6f7420616c72656164792072656769737465726564206173206569746865722061204d5350206f72204253509c332e20436865636b207468617420746865206d756c7469616464726573732069732076616c69645d01342e20436865636b207468617420746865206461746120746f2062652073746f7265642069732067726561746572207468616e20746865206d696e696d756d207265717569726564206279207468652072756e74696d659101352e2043616c63756c61746520686f77206d756368206465706f7369742077696c6c20746865207369676e6572206861766520746f20706179207573696e672074686520616d6f756e74206f6620646174612069742077616e747320746f2073746f7265f0362e20436865636b207468617420746865207369676e65722068617320656e6f7567682066756e647320746f2070617920746865206465706f7369748c372e20486f6c6420746865206465706f7369742066726f6d20746865207369676e65726901382e2055706461746520746865205369676e2055702052657175657374732073746f7261676520746f2061646420746865207369676e65722061732072657175657374696e6720746f207369676e20757020617320612042535000d8456d6974732060427370526571756573745369676e55705375636365737360206576656e74207768656e207375636365737366756c2e3c636f6e6669726d5f7369676e5f757004014070726f76696465725f6163636f756e749c01504f7074696f6e3c543a3a4163636f756e7449643e00025cad01446973706174636861626c652065787472696e736963207468617420616c6c6f777320757365727320746f20636f6e6669726d207468656972207369676e20757020617320612053746f726167652050726f76696465722c20656974686572204d5350206f72204253502e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e9d01546865206f726967696e206d75737420626520746865206163636f756e7420746861742072657175657374656420746f207369676e20757020617320612053746f726167652050726f76696465722c20657863657074207768656e2070726f766964696e67206129016070726f76696465725f6163636f756e746020706172616d657465722c20696e207768696368206361736520746865206f726967696e2063616e20626520616e79206163636f756e742e002c506172616d65746572733ab9012d206070726f76696465725f6163636f756e74603a20546865206163636f756e7420746861742072657175657374656420746f207369676e20757020617320612053746f726167652050726f76696465722e204966206e6f742070726f76696465642c20746865207369676e6572e477696c6c20626520636f6e7369646572656420746865206163636f756e7420746861742072657175657374656420746f207369676e2075702e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633a98312e20436865636b2074686174207468652065787472696e73696320776173207369676e65641101322e20436865636b207468617420746865206163636f756e74207265636569766564206861732072657175657374656420746f20726567697374657220617320612053508101332e20436865636b2074686174207468652063757272656e742072616e646f6d6e6573732069732073756666696369656e746c7920667265736820746f206265207573656420617320612073616c7420666f7220746861742072657175657374a4342e20436865636b207468617420746865207265717565737420686173206e6f7420657870697265643101352e20526567697374657220746865207369676e65722061732061204d5350206f722042535020776974682074686520646174612070726f766964656420696e207468652072657175657374009d01456d69747320604d73705369676e55705375636365737360206f7220604273705369676e55705375636365737360206576656e74207768656e207375636365737366756c2c20646570656e64696e67206f6e207468652074797065206f66207369676e2075702e00184e6f7465733a1d012d20546869732065787472696e73696320636f756c642062652063616c6c656420627920746865207573657220697473656c66206f722062792061207468697264207061727479b5012d20546865206465706f73697420746861742074686520757365722068617320746f2070617920746f20726567697374657220617320612053502069732068656c64207768656e20746865207573657220726571756573747320746f207265676973746572206173206120535081012d20496620746869732065787472696e736963206973207375636365737366756c2c2069742077696c6c206265206672656520666f72207468652063616c6c65722c20746f20696e63656e74697665207374617465206465626c6f6174696e673863616e63656c5f7369676e5f7570000330c101446973706174636861626c652065787472696e736963207468617420616c6c6f777320612075736572207769746820612070656e64696e67205369676e205570205265717565737420746f2063616e63656c2069742c2067657474696e6720746865206465706f736974206261636b2e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e3d01546865206f726967696e206d75737420626520746865206163636f756e7420746861742072657175657374656420746f207369676e20757020617320612053746f726167652050726f76696465722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722ee4322e20436865636b207468617420746865207369676e6572206861732072657175657374656420746f207369676e2075702061732061205350dc332e2044656c6574652074686520726571756573742066726f6d20746865205369676e2055702052657175657374732073746f726167658c342e2052657475726e20746865206465706f73697420746f20746865207369676e657200d0456d69747320605369676e55705265717565737443616e63656c656460206576656e74207768656e207375636365737366756c2e306d73705f7369676e5f6f66660004384101446973706174636861626c652065787472696e736963207468617420616c6c6f777320757365727320746f207369676e206f66662061732061204d61696e2053746f726167652050726f76696465722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e4501546865206f726967696e206d75737420626520746865206163636f756e7420746861742077616e747320746f207369676e206f66662061732061204d61696e2053746f726167652050726f76696465722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722ebc322e20436865636b207468617420746865207369676e657220697320726567697374657265642061732061204d53504d01332e20436865636b207468617420746865204d535020686173206e6f2073746f726167652061737369676e656420746f20697420286e6f206275636b657473206f722064617461207573656420627920697429e4342e2055706461746520746865204d5350732073746f726167652c2072656d6f76696e6720746865207369676e657220617320616e204d53508c352e2052657475726e20746865206465706f73697420746f20746865207369676e65724101362e2044656372656d656e74207468652073746f72616765207468617420686f6c647320746f74616c20616d6f756e74206f66204d5350732063757272656e746c7920696e207468652073797374656d00c0456d69747320604d73705369676e4f66665375636365737360206576656e74207768656e207375636365737366756c2e306273705f7369676e5f6f666600053c4901446973706174636861626c652065787472696e736963207468617420616c6c6f777320757365727320746f207369676e206f66662061732061204261636b75702053746f726167652050726f76696465722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e4d01546865206f726967696e206d75737420626520746865206163636f756e7420746861742077616e747320746f207369676e206f66662061732061204261636b75702053746f726167652050726f76696465722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722ebc322e20436865636b207468617420746865207369676e65722069732072656769737465726564206173206120425350cc332e20436865636b2074686174207468652042535020686173206e6f2073746f726167652061737369676e656420746f206974e4342e205570646174652074686520425350732073746f726167652c2072656d6f76696e6720746865207369676e657220617320616e204253503501352e205570646174652074686520746f74616c206361706163697479206f6620616c6c20425350732c2072656d6f76696e6720746865206361706163697479206f6620746865207369676e65728c362e2052657475726e20746865206465706f73697420746f20746865207369676e65724101372e2044656372656d656e74207468652073746f72616765207468617420686f6c647320746f74616c20616d6f756e74206f6620425350732063757272656e746c7920696e207468652073797374656d00c0456d69747320604273705369676e4f66665375636365737360206576656e74207768656e207375636365737366756c2e3c6368616e67655f63617061636974790401306e65775f636170616369747930014853746f7261676544617461556e69743c543e0006603901446973706174636861626c652065787472696e736963207468617420616c6c6f777320757365727320746f206368616e676520746865697220616d6f756e74206f662073746f726564206461746100c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e0501546865206f726967696e206d75737420626520746865206163636f756e7420746861742077616e747320746f206368616e6765206974732063617061636974792e002c506172616d65746572733a8d012d20606e65775f6361706163697479603a20546865206e657720746f74616c20616d6f756e74206f6620646174612074686174207468652053746f726167652050726f76696465722077616e747320746f2062652061626c6520746f2073746f72652e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722eb8322e20436865636b207468617420746865207369676e6572206973207265676973746572656420617320612053505101332e20436865636b207468617420656e6f7567682074696d6520686173207061737365642073696e636520746865206c6173742074696d6520746865205350206368616e676564206974732063617061636974794901342e20436865636b207468617420746865206e65772063617061636974792069732067726561746572207468616e20746865206d696e696d756d207265717569726564206279207468652072756e74696d651d01352e20436865636b207468617420746865206e65772063617061636974792069732067726561746572207468616e20746865206461746120757365642062792074686973205350e4362e2043616c63756c61746520746865206e6577206465706f736974206e656564656420666f722074686973206e65772063617061636974795501372e20436865636b20746f2073656520696620746865206e6577206465706f736974206e65656465642069732067726561746572206f72206c657373207468616e207468652063757272656e74206465706f736974ec09612e20496620746865206e6577206465706f7369742069732067726561746572207468616e207468652063757272656e74206465706f7369743a15010909692e20436865636b207468617420746865207369676e65722068617320656e6f7567682066756e647320746f207061792074686973206578747261206465706f736974b0090969692e20486f6c6420746865206578747261206465706f7369742066726f6d20746865207369676e6572850109622e20496620746865206e6577206465706f736974206973206c657373207468616e207468652063757272656e74206465706f7369742c2072657475726e207468652068656c6420646966666572656e636520746f20746865207369676e6572c8372e2055706461746520746865205350732073746f7261676520746f206368616e67652074686520746f74616c20646174617501382e20496620757365722069732061204253502c207570646174652074686520746f74616c206361706163697479206f6620746865206e6574776f726b202873756d206f6620616c6c2063617061636974696573206f6620425350732900b8456d697473206043617061636974794368616e67656460206576656e74207768656e207375636365737366756c2e386164645f76616c75655f70726f700c018070726963655f7065725f756e69745f6f665f646174615f7065725f626c6f636b18013042616c616e63654f663c543e000128636f6d6d69746d656e7409020134436f6d6d69746d656e743c543e0001446275636b65745f646174615f6c696d697430014853746f7261676544617461556e69743c543e0007189d01446973706174636861626c652065787472696e736963206f6e6c792063616c6c61626c6520627920616e204d5350207468617420616c6c6f777320697420746f2061646420612076616c75652070726f706f736974696f6e20746f20697473207365727669636500c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e1501546865206f726967696e206d75737420626520746865206163636f756e7420746861742077616e747320746f2061646420612076616c75652070726f706f736974696f6e2e00b4456d697473206056616c756550726f70416464656460206576656e74207768656e207375636365737366756c2e6c6d616b655f76616c75655f70726f705f756e617661696c61626c6504013476616c75655f70726f705f696434013856616c756550726f7049643c543e0008109901446973706174636861626c652065787472696e736963206f6e6c792063616c6c61626c6520627920616e204d5350207468617420616c6c6f777320697420746f206d616b6520612076616c75652070726f706f736974696f6e20756e617661696c61626c652e002d0154686973206f7065726174696f6e2063616e6e6f742062652072657665727365642e20596f752063616e206f6e6c7920616464206e65772076616c75652070726f706f736974696f6e732e3501546869732077696c6c206e6f7420616666656374206578697374696e67206275636b65747320776869636820617265207573696e6720746869732076616c75652070726f706f736974696f6e2e406164645f6d756c7469616464726573730401406e65775f6d756c746961646472657373f901013c4d756c7469416464726573733c543e0009407101446973706174636861626c652065787472696e736963207468617420616c6c6f7773204253507320616e64204d53507320746f206164642061206e6577206d756c74696164647265737320746f207468656972206163636f756e742e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e1101546865206f726967696e206d75737420626520746865206163636f756e7420746861742077616e747320746f206164642061206e6577206d756c7469616464726573732e002c506172616d65746572733a5d012d20606e65775f6d756c746961646472657373603a20546865206e6577206d756c746961646472657373207468617420746865207369676e65722077616e747320746f2061646420746f20697473206163636f756e742e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722edc322e20436865636b207468617420746865207369676e657220697320726567697374657265642061732061204d5350206f72204253502e4101332e20436865636b2074686174207468652050726f766964657220686173206e6f74207265616368656420746865206d6178696d756d20616d6f756e74206f66206d756c74696164647265737365732e8d01342e20436865636b207468617420746865206d756c7469616464726573732069732076616c6964202873697a6520616e6420616e79206f746865722072656c6576616e7420636865636b73292e20544f444f3a20496d706c656d656e7420746869732ee4352e20557064617465207468652050726f766964657227732073746f7261676520746f2061646420746865206d756c7469616464726573732e00c0456d69747320604d756c746941646472657373416464656460206576656e74207768656e207375636365737366756c2e4c72656d6f76655f6d756c7469616464726573730401306d756c746961646472657373f901013c4d756c7469416464726573733c543e000a3c9d01446973706174636861626c652065787472696e736963207468617420616c6c6f7773204253507320616e64204d53507320746f2072656d6f766520616e206578697374696e67206d756c7469616464726573732066726f6d207468656972206163636f756e742e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e0d01546865206f726967696e206d75737420626520746865206163636f756e7420746861742077616e747320746f2072656d6f76652061206d756c7469616464726573732e002c506172616d65746572733a51012d20606d756c746961646472657373603a20546865206d756c746961646472657373207468617420746865207369676e65722077616e747320746f2072656d6f76652066726f6d20697473206163636f756e742e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722edc322e20436865636b207468617420746865207369676e657220697320726567697374657265642061732061204d5350206f72204253502e0101332e20436865636b207468617420746865206d756c7469616464726573732065786973747320696e207468652050726f76696465722773206163636f756e742ef0342e20557064617465207468652050726f766964657227732073746f7261676520746f2072656d6f766520746865206d756c7469616464726573732e00c8456d69747320604d756c74694164647265737352656d6f76656460206576656e74207768656e207375636365737366756c2e44666f7263655f6d73705f7369676e5f757020010c77686f000130543a3a4163636f756e7449640001186d73705f69643401604d61696e53746f7261676550726f766964657249643c543e000120636170616369747930014853746f7261676544617461556e69743c543e0001386d756c7469616464726573736573f50101444d756c74696164647265737365733c543e0001ac76616c75655f70726f705f70726963655f7065725f756e69745f6f665f646174615f7065725f626c6f636b18013042616c616e63654f663c543e000128636f6d6d69746d656e7409020134436f6d6d69746d656e743c543e00016476616c75655f70726f705f6d61785f646174615f6c696d697430014853746f7261676544617461556e69743c543e00013c7061796d656e745f6163636f756e74000130543a3a4163636f756e744964000b588d01446973706174636861626c652065787472696e736963207468617420616c6c6f777320746f20666f72636566756c6c7920616e64206175746f6d61746963616c6c79207369676e2075702061204d61696e2053746f726167652050726f76696465722e00bc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f742e5101546865206077686f6020706172616d6574657220697320746865206163636f756e7420746861742077616e747320746f207369676e2075702061732061204d61696e2053746f726167652050726f76696465722e00c10146756e64732070726f706f7274696f6e616c20746f207468652063617061636974792072657175657374656420617265207265736572766564202868656c64292066726f6d20746865206163636f756e742070617373656420617320746865206077686f6020706172616d657465722e002c506172616d65746572733a19012d206077686f603a20546865206163636f756e7420746861742077616e747320746f207369676e2075702061732061204d61696e2053746f726167652050726f76696465722ed1012d20606d73705f6964603a20546865204d61696e2053746f726167652050726f7669646572204944207468617420746865206163636f756e742070617373656420617320746865206077686f6020706172616d657465722069732072657175657374696e6720746f207369676e2075702061732e71012d20606361706163697479603a2054686520746f74616c20616d6f756e74206f662064617461207468617420746865204d61696e2053746f726167652050726f76696465722077696c6c2062652061626c6520746f2073746f72652e91012d20606d756c7469616464726573736573603a2054686520766563746f72206f66206d756c7469616464726573736573207468617420746865207369676e65722077616e747320746f20726567697374657220286163636f7264696e6720746f20746865f05b4d756c74696164647220737065635d2868747470733a2f2f6769746875622e636f6d2f6d756c7469666f726d6174732f6d756c746961646472292981012d206076616c75655f70726f70603a205468652076616c75652070726f706f736974696f6e207468617420746865207369676e65722077696c6c2070726f766964652061732061204d61696e2053746f726167652050726f766964657220746fad01757365727320616e642077616e747320746f207265676973746572206f6e2d636861696e2e20497420636f756c642062652064617461206c696d6974732c20636f6d6d756e69636174696f6e2070726f746f636f6c7320746f2061636365737320746865207573657227733c646174612c20616e64206d6f72652e00a4546869732065787472696e7369632077696c6c20706572666f726d20746865207374657073206f663a0d01312e205b726571756573745f6d73705f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a726571756573745f6d73705f7369676e5f757029ec322e205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f757029003901456d69747320604d7370526571756573745369676e5570537563636573736020616e6420604d73705369676e55705375636365737360206576656e7473207768656e207375636365737366756c2e44666f7263655f6273705f7369676e5f757018010c77686f000130543a3a4163636f756e7449640001186273705f69643401684261636b757053746f7261676550726f766964657249643c543e000120636170616369747930014853746f7261676544617461556e69743c543e0001386d756c7469616464726573736573f50101444d756c74696164647265737365733c543e00013c7061796d656e745f6163636f756e74000130543a3a4163636f756e7449640001187765696768741902017c4f7074696f6e3c52657075746174696f6e576569676874547970653c543e3e000c4c9501446973706174636861626c652065787472696e736963207468617420616c6c6f777320746f20666f72636566756c6c7920616e64206175746f6d61746963616c6c792073696e672075702061204261636b75702053746f726167652050726f76696465722e00bc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f742e5901546865206077686f6020706172616d6574657220697320746865206163636f756e7420746861742077616e747320746f207369676e2075702061732061204261636b75702053746f726167652050726f76696465722e00c10146756e64732070726f706f7274696f6e616c20746f207468652063617061636974792072657175657374656420617265207265736572766564202868656c64292066726f6d20746865206163636f756e742070617373656420617320746865206077686f6020706172616d657465722e002c506172616d65746572733a21012d206077686f603a20546865206163636f756e7420746861742077616e747320746f207369676e2075702061732061204261636b75702053746f726167652050726f76696465722ed9012d20606273705f6964603a20546865204261636b75702053746f726167652050726f7669646572204944207468617420746865206163636f756e742070617373656420617320746865206077686f6020706172616d657465722069732072657175657374696e6720746f207369676e2075702061732e79012d20606361706163697479603a2054686520746f74616c20616d6f756e74206f662064617461207468617420746865204261636b75702053746f726167652050726f76696465722077696c6c2062652061626c6520746f2073746f72652e91012d20606d756c7469616464726573736573603a2054686520766563746f72206f66206d756c7469616464726573736573207468617420746865207369676e65722077616e747320746f20726567697374657220286163636f7264696e6720746f20746865f05b4d756c74696164647220737065635d2868747470733a2f2f6769746875622e636f6d2f6d756c7469666f726d6174732f6d756c746961646472292900a4546869732065787472696e7369632077696c6c20706572666f726d20746865207374657073206f663a0d01312e205b726571756573745f6273705f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a726571756573745f6273705f7369676e5f757029ec322e205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f757029003901456d6974732060427370526571756573745369676e5570537563636573736020616e6420604273705369676e55705375636365737360206576656e7473207768656e207375636365737366756c2e14736c61736804012c70726f76696465725f69643401244861736849643c543e000d10fc446973706174636861626c652065787472696e73696320746f20736c6173682061205f736c61736861626c655f2053746f726167652050726f76696465722e00b501412053746f726167652050726f7669646572206973205f736c61736861626c655f2069666620697420686173206661696c656420746f20726573706f6e6420746f206368616c6c656e67657320666f722070726f766964696e672070726f6f6673206f662073746f726167652e4d02496e2074686520636f6e74657874206f66207468652053746f726167654875622070726f746f636f6c2c207468652070726f6f66732d6465616c65722070616c6c6574206d61726b7320612053746f726167652050726f7669646572206173205f736c61736861626c655f207768656e206974206661696c7320746f20726573706f6e6420746f206368616c6c656e6765732e04c4446973706174636861626c6573202865787472696e7369637329206578706f73656420627920746869732070616c6c657431050c4870616c6c65745f66696c655f73797374656d1870616c6c65741043616c6c040454000148346372656174655f6275636b65741001186d73705f6964150201604f7074696f6e3c50726f76696465724964466f723c543e3e0001106e616d65f90101404275636b65744e616d65466f723c543e00011c70726976617465200110626f6f6c00013476616c75655f70726f705f6964150201584f7074696f6e3c56616c756550726f7049643c543e3e0000004c726571756573745f6d6f76655f6275636b65740801246275636b65745f69643401384275636b65744964466f723c543e0001286e65775f6d73705f696434014050726f76696465724964466f723c543e0001007c6d73705f726573706f6e645f6d6f76655f6275636b65745f726571756573740801246275636b65745f69643401384275636b65744964466f723c543e000120726573706f6e7365350501644275636b65744d6f766552657175657374526573706f6e7365000200547570646174655f6275636b65745f707269766163790801246275636b65745f69643401384275636b65744964466f723c543e00011c70726976617465200110626f6f6c000300ac6372656174655f616e645f6173736f63696174655f636f6c6c656374696f6e5f776974685f6275636b65740401246275636b65745f69643401384275636b65744964466f723c543e000404c043726561746520616e64206173736f6369617465206120636f6c6c656374696f6e20776974682061206275636b65742e3464656c6574655f6275636b65740401246275636b65745f69643401384275636b65744964466f723c543e00051c8901446973706174636861626c652065787472696e736963207468617420616c6c6f77732061205573657220746f2064656c65746520616e79206f66207468656972206275636b6574732069662069742069732063757272656e746c7920656d7074792e750154686973207761792c20746865205573657220697320616c6c6f77656420746f2072656d6f7665206e6f7720756e75736564206275636b65747320746f207265636f766572207468656972206465706f73697420666f72207468656d2e0089015468652055736572206d7573742070726f7669646520746865204275636b65744964206f6620746865206275636b657420746865792077616e7420746f2064656c6574652c2077686963682073686f756c6420636f72726573706f6e6420746f2061bc6275636b6574207468617420697320626f74682074686569727320616e642063757272656e746c7920656d7074792e006501546f20636865636b2069662061206275636b657420697320656d7074792c20776520636f6d70617265206974732063757272656e7420726f6f74207769746820746865206f6e65206f6620616e20656d70747920747269652e5469737375655f73746f726167655f726571756573741801246275636b65745f69643401384275636b65744964466f723c543e0001206c6f636174696f6e1d02013c46696c654c6f636174696f6e3c543e00012c66696e6765727072696e7434013846696e6765727072696e743c543e00011073697a6530013853746f72616765446174613c543e0001186d73705f6964150201604f7074696f6e3c50726f76696465724964466f723c543e3e000120706565725f696473f5010128506565724964733c543e0006049849737375652061206e65772073746f72616765207265717565737420666f7220612066696c65587265766f6b655f73746f726167655f7265717565737404012066696c655f6b65793401344d65726b6c65486173683c543e000704585265766f6b652073746f726167652072657175657374b46d73705f726573706f6e645f73746f726167655f72657175657374735f6d756c7469706c655f6275636b65747304017073746f726167655f726571756573745f6d73705f726573706f6e73653905017053746f72616765526571756573744d7370526573706f6e73653c543e0008244901557365642062792061204d535020746f20616363657074206f72206465636c696e652073746f7261676520726571756573747320696e20626174636865732c2067726f75706564206279206275636b65742e00d9015468697320666f6c6c6f7773206120626573742d6566666f72742073747261746567792c206d65616e696e67207468617420616c6c2066696c65206b6579732077696c6c2062652070726f63657373656420616e64206465636c6172656420746f2068617665207375636365737366756c6c79206265590161636365707465642c2072656a6563746564206f722068617665206661696c656420746f2062652070726f63657373656420696e2074686520726573756c7473206f6620746865206576656e7420656d69747465642e00f501546865204d53502068617320746f2070726f7669646520612066696c652070726f6f6620666f7220616c6c207468652066696c65206b657973207468617420617265206265696e6720616363657074656420616e642061206e6f6e2d696e636c7573696f6e2070726f6f6620666f72207468652066696c65206b6579739501696e20746865206275636b65742773204d65726b6c6520506174726963696120466f726573742e205468652066696c652070726f6f667320666f72207468652066696c65206b657973206973206e656365737361727920746f2076657269667920746861748501746865204d53502061637475616c6c7920686173207468652066696c65732c207768696c6520746865206e6f6e2d696e636c7573696f6e2070726f6f66206973206e656365737361727920746f20766572696679207468617420746865204d5350647761736e27742073746f72696e67206974206265666f72652e5c6d73705f73746f705f73746f72696e675f6275636b65740401246275636b65745f69643401384275636b65744964466f723c543e000900346273705f766f6c756e7465657204012066696c655f6b65793401344d65726b6c65486173683c543e000a18b85573656420627920612042535020746f20766f6c756e7465657220666f722073746f72696e6720612066696c652e008d01546865207472616e73616374696f6e2077696c6c206661696c2069662074686520584f52206265747765656e207468652066696c6520494420616e642074686520425350204944206973206e6f742062656c6f7720746865207468726573686f6c642c3d01736f206120425350206973207374726f6e676c79206164766973656420746f20636865636b206265666f726568616e642e20416e6f7468657220726561736f6e20666f72206661696c7572652069735101696620746865206d6178696d756d206e756d626572206f66204253507320686173206265656e20726561636865642e2041207375636365737366756c2061737369676e6d656e7420617320425350206d65616e73e87468617420736f6d65206f662074686520636f6c6c61746572616c20746f6b656e73206f662074686174204d5350206172652066726f7a656e2e4c6273705f636f6e6669726d5f73746f72696e670801686e6f6e5f696e636c7573696f6e5f666f726573745f70726f6f6639020138466f7265737450726f6f663c543e00015066696c655f6b6579735f616e645f70726f6f66736505013501426f756e6465645665633c284d65726b6c65486173683c543e2c204b657950726f6f663c543e292c20543a3a0a4d61784261746368436f6e6669726d53746f7261676552657175657374732c3e000b0411015573656420627920612042535020746f20636f6e6669726d2074686579206172652073746f72696e672064617461206f6620612073746f7261676520726571756573742e606273705f726571756573745f73746f705f73746f72696e6720012066696c655f6b65793401344d65726b6c65486173683c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001206c6f636174696f6e1d02013c46696c654c6f636174696f6e3c543e0001146f776e6572000130543a3a4163636f756e74496400012c66696e6765727072696e7434013846696e6765727072696e743c543e00011073697a6530013853746f72616765446174613c543e00012463616e5f7365727665200110626f6f6c000158696e636c7573696f6e5f666f726573745f70726f6f6639020138466f7265737450726f6f663c543e000c20d0457865637574656420627920612042535020746f207265717565737420746f2073746f702073746f72696e6720612066696c652e006d01496e20746865206576656e74207768656e20612073746f726167652072657175657374206e6f206c6f6e6765722065786973747320666f722074686520646174612074686520425350206e6f206c6f6e6765722073746f7265732c7101697420697320726571756972656420746861742074686520425350207374696c6c206861732061636365737320746f20746865206d65746164617461206f662074686520696e697469616c2073746f7261676520726571756573742e89014966207468657920646f206e6f742c20746865792077696c6c206174206c65617374206e6565642074686174206d6574616461746120746f207265636f6e737472756374207468652046696c6520494420616e642066726f6d2077686572657665723d017468652042535020676574732074686174206461746120697320757020746f2069742e204f6e65206578616d706c6520636f756c642062652066726f6d207468652061737369676e6564204d53502e750154686973206d65746164617461206973206e65636573736172792073696e6365206974206973206e656564656420746f207265636f6e73747275637420746865206c656166206e6f6465206b657920696e207468652073746f726167656470726f76696465722773204d65726b6c6520466f726573742e606273705f636f6e6669726d5f73746f705f73746f72696e6708012066696c655f6b65793401344d65726b6c65486173683c543e000158696e636c7573696f6e5f666f726573745f70726f6f6639020138466f7265737450726f6f663c543e000d14d0457865637574656420627920612042535020746f20636f6e6669726d20746f2073746f702073746f72696e6720612066696c652e00bd0149742068617320746f20686176652070726576696f75736c79206f70656e656420612070656e64696e672073746f702073746f72696e672072657175657374207573696e672074686520606273705f726571756573745f73746f705f73746f72696e67602065787472696e7369632eb901546865206d696e696d756d20616d6f756e74206f6620626c6f636b73206265747765656e20746865207265717565737420616e642074686520636f6e6669726d6174696f6e20697320646566696e6564206279207468652072756e74696d652c20737563682074686174207468658d014253502063616e277420696d6d6564696174656c792073746f702073746f72696e6720612066696c65206974206861732070726576696f75736c79206c6f7374207768656e20726563656976696e672061206368616c6c656e676520666f722069742e7c73746f705f73746f72696e675f666f725f696e736f6c76656e745f757365721c012066696c655f6b65793401344d65726b6c65486173683c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001206c6f636174696f6e1d02013c46696c654c6f636174696f6e3c543e0001146f776e6572000130543a3a4163636f756e74496400012c66696e6765727072696e7434013846696e6765727072696e743c543e00011073697a6530013853746f72616765446174613c543e000158696e636c7573696f6e5f666f726573745f70726f6f6639020138466f7265737450726f6f663c543e000e18fc4578656375746564206279206120535020746f2073746f702073746f72696e6720612066696c652066726f6d20616e20696e736f6c76656e7420757365722e00b101546869732069732075736564207768656e2061207573657220686173206265636f6d6520696e736f6c76656e7420616e6420746865205350206e6565647320746f2073746f702073746f72696e67207468652066696c6573206f66207468617420757365722c2073696e6365a0697420776f6e27742062652067657474696e67207061696420666f7220697420616e796d6f72652e3d025468652076616c69646174696f6e73206172652073696d696c617220746f20746865206f6e657320696e2074686520606273705f726571756573745f73746f705f73746f72696e676020616e6420606273705f636f6e6669726d5f73746f705f73746f72696e67602065787472696e736963732c206275742074686520535020646f65736e2774206e65656420746f7d017761697420666f722061206d696e696d756d20616d6f756e74206f6620626c6f636b7320746f20636f6e6669726d20746f2073746f702073746f72696e67207468652066696c65206e6f722069742068617320746f2062652061204253502e2c64656c6574655f66696c651801246275636b65745f69643401384275636b65744964466f723c543e00012066696c655f6b65793401344d65726b6c65486173683c543e0001206c6f636174696f6e1d02013c46696c654c6f636174696f6e3c543e00011073697a6530013853746f72616765446174613c543e00012c66696e6765727072696e7434013846696e6765727072696e743c543e0001706d617962655f696e636c7573696f6e5f666f726573745f70726f6f66710501584f7074696f6e3c466f7265737450726f6f663c543e3e000f00a870656e64696e675f66696c655f64656c6574696f6e5f726571756573745f7375626d69745f70726f6f6610011075736572000130543a3a4163636f756e74496400012066696c655f6b65793401344d65726b6c65486173683c543e0001246275636b65745f69643401384275636b65744964466f723c543e000130666f726573745f70726f6f6639020138466f7265737450726f6f663c543e001000547365745f676c6f62616c5f706172616d65746572730801487265706c69636174696f6e5f746172676574190201804f7074696f6e3c543a3a5265706c69636174696f6e546172676574547970653e00017c7469636b5f72616e67655f746f5f6d6178696d756d5f7468726573686f6c64190201544f7074696f6e3c5469636b4e756d6265723c543e3e001100040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e35050c4870616c6c65745f66696c655f73797374656d147479706573644275636b65744d6f766552657175657374526573706f6e73650001082041636365707465640000002052656a65637465640001000039050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454013d05045300000400610501185665633c543e00003d050c4870616c6c65745f66696c655f73797374656d1474797065737c53746f72616765526571756573744d73704275636b6574526573706f6e736504045400000c01246275636b65745f69643401384275636b65744964466f723c543e000118616363657074410501b04f7074696f6e3c53746f72616765526571756573744d7370416363657074656446696c654b6579733c543e3e00011872656a6563745505013101426f756e6465645665633c52656a656374656453746f72616765526571756573743c543e2c204d617842617463684d7370526573706f6e6453746f7261676552657175657374730a3c543e3e0000410504184f7074696f6e0404540145050108104e6f6e6500000010536f6d6504004505000001000045050c4870616c6c65745f66696c655f73797374656d1474797065738453746f72616765526571756573744d7370416363657074656446696c654b657973040454000008015066696c655f6b6579735f616e645f70726f6f66734905011901426f756e6465645665633c46696c654b65795769746850726f6f663c543e2c204d617842617463684d7370526573706f6e6453746f7261676552657175657374733c543e0a3e0001686e6f6e5f696e636c7573696f6e5f666f726573745f70726f6f6639020138466f7265737450726f6f663c543e000049050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454014d05045300000400510501185665633c543e00004d050c4870616c6c65745f66696c655f73797374656d1474797065734046696c654b65795769746850726f6f66040454000008012066696c655f6b65793401344d65726b6c65486173683c543e00011470726f6f664902012c4b657950726f6f663c543e000051050000024d050055050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540159050453000004005d0501185665633c543e000059050c4870616c6c65745f66696c655f73797374656d1474797065735852656a656374656453746f7261676552657175657374040454000008012066696c655f6b65793401344d65726b6c65486173683c543e000118726561736f6e2902017052656a656374656453746f7261676552657175657374526561736f6e00005d0500000259050061050000023d050065050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540169050453000004006d0501185665633c543e0000690500000408344902006d05000002690500710504184f7074696f6e0404540139020108104e6f6e6500000010536f6d6504003902000001000075050c5070616c6c65745f70726f6f66735f6465616c65721870616c6c65741043616c6c040454000110246368616c6c656e676504010c6b65793401244b6579466f723c543e00001868496e74726f647563652061206e6577206368616c6c656e67652e003101546869732066756e6374696f6e20616c6c6f777320616e796f6e6520746f206164642061206e6577206368616c6c656e676520746f2074686520604368616c6c656e6765735175657565602ed8546865206368616c6c656e67652077696c6c206265206469737061746368656420696e2074686520636f6d696e6720626c6f636b732efc5573657273206172652063686172676564206120736d616c6c2066656520666f72207375626d697474696e672061206368616c6c656e67652c20776869636854676f657320746f207468652054726561737572792e307375626d69745f70726f6f6608011470726f6f663502012050726f6f663c543e00012070726f7669646572150201604f7074696f6e3c50726f76696465724964466f723c543e3e00015484466f7220612050726f766964657220746f207375626d697420612070726f6f662e00e0436865636b732074686174206070726f766964657260206973206120726567697374657265642050726f76696465722e204966206e6f6e65090169732070726f76696465642c207468652070726f6f66207375626d697474657220697320636f6e7369646572656420746f206265207468652050726f76696465722ef852656c696573206f6e20612050726f7669646572732070616c6c657420746f206765742074686520726f6f7420666f72207468652050726f76696465722e390156616c6964617465732074686174207468652070726f6f6620636f72726573706f6e647320746f2061206368616c6c656e6765207468617420776173206d61646520696e2074686520706173742c3901627920636865636b696e672074686520605469636b546f4368616c6c656e67657353656564602053746f726167654d61702e20546865206368616c6c656e6765207469636b207468617420746865410150726f76696465722073686f756c642068617665207375626d697474656420612070726f6f662069732063616c63756c61746564206261736564206f6e20746865206c617374207469636b207468657969017375626d697474656420612070726f6f6620666f7220285b604c6173745469636b50726f76696465725375626d69747465644150726f6f66466f72605d292c20616e64207468652070726f76696e6720706572696f6420666f72c8746861742050726f76696465722c20776869636820697320612066756e6374696f6e206f66207468656972207374616b652e3901546869732065787472696e73696320616c736f20636865636b732074686174207468657265206861736e2774206265656e206120636865636b706f696e74206368616c6c656e676520726f756e642101696e206265747765656e20746865206c6173742074696d65207468652050726f7669646572207375626d697474656420612070726f6f6620666f7220616e6420746865207469636b2901666f72207768696368207468652070726f6f66206973206265696e67207375626d69747465642e20496620746865726520686173206265656e2c207468652050726f7669646572206973507375626a65637420746f20736c617368696e672e002449662076616c69643a55012d2050757368657320666f7277617264207468652050726f766964657220696e20746865205b605469636b546f50726f766964657273446561646c696e6573605d2053746f726167654d61702061206e756d626572d06f66207469636b7320636f72726573706f6e64696e6720746f20746865207374616b65206f66207468652050726f76696465722e3d012d205265676973746572732074686973207469636b20617320746865206c617374207469636b20696e207768696368207468652050726f7669646572207375626d697474656420612070726f6f662e001501457865637574696f6e206f6620746869732065787472696e7369632073686f756c6420626520726566756e646564206966207468652070726f6f662069732076616c69642e80666f7263655f696e697469616c6973655f6368616c6c656e67655f6379636c6504012070726f766964657234014050726f76696465724964466f723c543e000218a0496e697469616c69736520612050726f76696465722773206368616c6c656e6765206379636c652e00584f6e6c792063616c6c61626c65206279207375646f2e005d015365747320746865206c617374207469636b207468652050726f7669646572207375626d697474656420612070726f6f6620666f7220746f207468652063757272656e74207469636b2c20616e642073657473207468657101646561646c696e6520666f72207375626d697474696e6720612070726f6f6620746f207468652063757272656e74207469636b202b207468652050726f7669646572277320706572696f64202b2074686520746f6c6572616e63652e287365745f706175736564040118706175736564200110626f6f6c00030ce053657420746865205b604368616c6c656e6765735469636b6572506175736564605d20746f20607472756560206f72206066616c7365602e00584f6e6c792063616c6c61626c65206279207375646f2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e79050c4470616c6c65745f72616e646f6d6e6573731870616c6c65741043616c6c0404540001044c7365745f626162655f72616e646f6d6e65737300000ced015468697320696e686572656e742074686174206d75737420626520696e636c7564656420284469737061746368436c6173733a3a4d616e6461746f727929206174206561636820626c6f636b20736176657320746865206c61746573742072616e646f6d6e65737320617661696c61626c652066726f6d20746865810172656c617920636861696e20696e746f2061207661726961626c6520746861742063616e207468656e20626520757365642061732061207365656420666f7220636f6d6d69746d656e747320746861742068617070656e656420647572696e67787468652070726576696f75732072656c617920636861696e2065706f6368040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e7d050c5870616c6c65745f7061796d656e745f73747265616d731870616c6c65741043616c6c040454000128806372656174655f66697865645f726174655f7061796d656e745f73747265616d0c012c70726f76696465725f696434014050726f76696465724964466f723c543e000130757365725f6163636f756e74000130543a3a4163636f756e7449640001107261746518013042616c616e63654f663c543e0000489501446973706174636861626c652065787472696e736963207468617420616c6c6f777320726f6f7420746f2061646420612066697865642d72617465207061796d656e742073747265616d2066726f6d2061205573657220746f20612050726f76696465722e00c101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f7420285061796d656e742073747265616d732073686f756c64206f6e6c792062652061646465642062792074726169747320696e206f746865722070616c6c6574732c98746869732065787472696e73696320697320666f72206d616e75616c2074657374696e67292e002c506172616d65746572733a01012d206070726f76696465725f6964603a205468652050726f7669646572204944207468617420746865207061796d656e742073747265616d20697320666f722e15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722ec42d206072617465603a2054686520696e697469616c2072617465206f6620746865207061796d656e742073747265616d2e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633aec312e20436865636b2074686174207468652065787472696e736963207761732065786563757465642062792074686520726f6f74206f726967696edc322e20436865636b207468617420746865207061796d656e742073747265616d20646f6573206e6f7420616c7265616479206578697374e8332e20436865636b20746861742074686520557365722068617320656e6f7567682066756e647320746f2070617920746865206465706f73697484342e20486f6c6420746865206465706f7369742066726f6d2074686520557365720d01352e2055706461746520746865205061796d656e742053747265616d732073746f7261676520746f2061646420746865206e6577207061796d656e742073747265616d00f0456d69747320604669786564526174655061796d656e7453747265616d4372656174656460206576656e74207768656e207375636365737366756c2e807570646174655f66697865645f726174655f7061796d656e745f73747265616d0c012c70726f76696465725f696434014050726f76696465724964466f723c543e000130757365725f6163636f756e74000130543a3a4163636f756e7449640001206e65775f7261746518013042616c616e63654f663c543e000140d901446973706174636861626c652065787472696e736963207468617420616c6c6f777320726f6f7420746f2075706461746520616e206578697374696e672066697865642d72617465207061796d656e742073747265616d206265747765656e2061205573657220616e6420612050726f76696465722e00c101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f7420285061796d656e742073747265616d732073686f756c64206f6e6c792062652061646465642062792074726169747320696e206f746865722070616c6c6574732c98746869732065787472696e73696320697320666f72206d616e75616c2074657374696e67292e002c506172616d65746572733a01012d206070726f76696465725f6964603a205468652050726f7669646572204944207468617420746865207061796d656e742073747265616d20697320666f722e15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722ec42d20606e65775f72617465603a20546865206e65772072617465206f6620746865207061796d656e742073747265616d2e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633aec312e20436865636b2074686174207468652065787472696e736963207761732065786563757465642062792074686520726f6f74206f726967696e9c322e20436865636b207468617420746865207061796d656e742073747265616d206578697374730901332e2055706461746520746865205061796d656e742053747265616d732073746f7261676520746f2075706461746520746865207061796d656e742073747265616d00f0456d69747320604669786564526174655061796d656e7453747265616d5570646174656460206576656e74207768656e207375636365737366756c2e8064656c6574655f66697865645f726174655f7061796d656e745f73747265616d08012c70726f76696465725f696434014050726f76696465724964466f723c543e000130757365725f6163636f756e74000130543a3a4163636f756e74496400023cd901446973706174636861626c652065787472696e736963207468617420616c6c6f777320726f6f7420746f2064656c65746520616e206578697374696e672066697865642d72617465207061796d656e742073747265616d206265747765656e2061205573657220616e6420612050726f76696465722e00c101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f7420285061796d656e742073747265616d732073686f756c64206f6e6c792062652061646465642062792074726169747320696e206f746865722070616c6c6574732c98746869732065787472696e73696320697320666f72206d616e75616c2074657374696e67292e002c506172616d65746572733a01012d206070726f76696465725f6964603a205468652050726f7669646572204944207468617420746865207061796d656e742073747265616d20697320666f722e15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633aec312e20436865636b2074686174207468652065787472696e736963207761732065786563757465642062792074686520726f6f74206f726967696e9c322e20436865636b207468617420746865207061796d656e742073747265616d206578697374730901332e2055706461746520746865205061796d656e742053747265616d732073746f7261676520746f2072656d6f766520746865207061796d656e742073747265616d00f0456d69747320604669786564526174655061796d656e7453747265616d44656c6574656460206576656e74207768656e207375636365737366756c2e886372656174655f64796e616d69635f726174655f7061796d656e745f73747265616d0c012c70726f76696465725f696434014050726f76696465724964466f723c543e000130757365725f6163636f756e74000130543a3a4163636f756e74496400013c616d6f756e745f70726f766964656430014c556e69747350726f7669646564466f723c543e0003489d01446973706174636861626c652065787472696e736963207468617420616c6c6f777320726f6f7420746f2061646420612064796e616d69632d72617465207061796d656e742073747265616d2066726f6d2061205573657220746f20612050726f76696465722e00c101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f7420285061796d656e742073747265616d732073686f756c64206f6e6c792062652061646465642062792074726169747320696e206f746865722070616c6c6574732c98746869732065787472696e73696320697320666f72206d616e75616c2074657374696e67292e002c506172616d65746572733a01012d206070726f76696465725f6964603a205468652050726f7669646572204944207468617420746865207061796d656e742073747265616d20697320666f722e15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722e05012d2060616d6f756e745f70726f7669646564603a2054686520696e697469616c20616d6f756e742070726f7669646564206279207468652050726f76696465722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633aec312e20436865636b2074686174207468652065787472696e736963207761732065786563757465642062792074686520726f6f74206f726967696edc322e20436865636b207468617420746865207061796d656e742073747265616d20646f6573206e6f7420616c7265616479206578697374e8332e20436865636b20746861742074686520557365722068617320656e6f7567682066756e647320746f2070617920746865206465706f73697484342e20486f6c6420746865206465706f7369742066726f6d2074686520557365720d01352e2055706461746520746865205061796d656e742053747265616d732073746f7261676520746f2061646420746865206e6577207061796d656e742073747265616d00f8456d697473206044796e616d6963526174655061796d656e7453747265616d4372656174656460206576656e74207768656e207375636365737366756c2e887570646174655f64796e616d69635f726174655f7061796d656e745f73747265616d0c012c70726f76696465725f696434014050726f76696465724964466f723c543e000130757365725f6163636f756e74000130543a3a4163636f756e74496400014c6e65775f616d6f756e745f70726f766964656430014c556e69747350726f7669646564466f723c543e000440e101446973706174636861626c652065787472696e736963207468617420616c6c6f777320726f6f7420746f2075706461746520616e206578697374696e672064796e616d69632d72617465207061796d656e742073747265616d206265747765656e2061205573657220616e6420612050726f76696465722e00c101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f7420285061796d656e742073747265616d732073686f756c64206f6e6c792062652061646465642062792074726169747320696e206f746865722070616c6c6574732c98746869732065787472696e73696320697320666f72206d616e75616c2074657374696e67292e002c506172616d65746572733a01012d206070726f76696465725f6964603a205468652050726f7669646572204944207468617420746865207061796d656e742073747265616d20697320666f722e15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722e05012d20606e65775f616d6f756e745f70726f7669646564603a20546865206e657720616d6f756e742070726f7669646564206279207468652050726f76696465722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633aec312e20436865636b2074686174207468652065787472696e736963207761732065786563757465642062792074686520726f6f74206f726967696e9c322e20436865636b207468617420746865207061796d656e742073747265616d206578697374730901332e2055706461746520746865205061796d656e742053747265616d732073746f7261676520746f2075706461746520746865207061796d656e742073747265616d00f8456d697473206044796e616d6963526174655061796d656e7453747265616d5570646174656460206576656e74207768656e207375636365737366756c2e8864656c6574655f64796e616d69635f726174655f7061796d656e745f73747265616d08012c70726f76696465725f696434014050726f76696465724964466f723c543e000130757365725f6163636f756e74000130543a3a4163636f756e74496400053ce101446973706174636861626c652065787472696e736963207468617420616c6c6f777320726f6f7420746f2064656c65746520616e206578697374696e672064796e616d69632d72617465207061796d656e742073747265616d206265747765656e2061205573657220616e6420612050726f76696465722e00c101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f7420285061796d656e742073747265616d732073686f756c64206f6e6c792062652061646465642062792074726169747320696e206f746865722070616c6c6574732c98746869732065787472696e73696320697320666f72206d616e75616c2074657374696e67292e002c506172616d65746572733a01012d206070726f76696465725f6964603a205468652050726f7669646572204944207468617420746865207061796d656e742073747265616d20697320666f722e15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633aec312e20436865636b2074686174207468652065787472696e736963207761732065786563757465642062792074686520726f6f74206f726967696e9c322e20436865636b207468617420746865207061796d656e742073747265616d206578697374730901332e2055706461746520746865205061796d656e742053747265616d732073746f7261676520746f2072656d6f766520746865207061796d656e742073747265616d00f8456d697473206044796e616d6963526174655061796d656e7453747265616d44656c6574656460206576656e74207768656e207375636365737366756c2e586368617267655f7061796d656e745f73747265616d73040130757365725f6163636f756e74000130543a3a4163636f756e7449640006705101446973706174636861626c652065787472696e736963207468617420616c6c6f77732050726f76696465727320746f206368617267652061207061796d656e742073747265616d2066726f6d206120557365722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e6d01546865206f726967696e206d757374206265207468652050726f7669646572207468617420686173206174206c65617374206f6e652074797065206f66207061796d656e742073747265616d20776974682074686520557365722e002c506172616d65746572733a15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722e4101322e20436865636b20746861742061207061796d656e742073747265616d206265747765656e20746865207369676e6572202850726f76696465722920616e6420746865205573657220657869737473ac332e20496620746865726520697320612066697865642d72617465207061796d656e742073747265616d3aa0202020312e20476574207468652072617465206f6620746865207061796d656e742073747265616dbd01202020322e204765742074686520646966666572656e6365206265747765656e20746865206c6173742063686172676564207469636b206e756d62657220616e6420746865206c6173742063686172676561626c65207469636b206e756d626572206f66207468652073747265616df8202020332e2043616c63756c6174652074686520616d6f756e7420746f2063686172676520646f696e67206072617465202a20646966666572656e636560e501202020342e204368617267652074686520757365722028696620746865207573657220646f6573206e6f74206861766520656e6f7567682066756e64732c206974206765747320666c616767656420616e642061206055736572576974686f757446756e647360206576656e7420697320656d697474656429fc202020352e2055706461746520746865206c6173742063686172676564207469636b206e756d626572206f6620746865207061796d656e742073747265616db4342e20496620746865726520697320612064796e616d69632d72617465207061796d656e742073747265616d3ac0202020312e204765742074686520616d6f756e742070726f7669646564206279207468652050726f7669646572202020f501202020322e204765742074686520646966666572656e6365206265747765656e20707269636520696e646578207768656e207468652073747265616d20776173206c617374206368617267656420616e642074686520707269636520696e64657820617420746865206c6173742063686172676561626c65207469636b2501202020332e2043616c63756c6174652074686520616d6f756e7420746f2063686172676520646f696e672060616d6f756e745f70726f7669646564202a20646966666572656e636560e501202020342e204368617267652074686520757365722028696620746865207573657220646f6573206e6f74206861766520656e6f7567682066756e64732c206974206765747320666c616767656420616e642061206055736572576974686f757446756e647360206576656e7420697320656d6974746564294d01202020352e205570646174652074686520707269636520696e646578207768656e207468652073747265616d20776173206c6173742063686172676564206f6620746865207061796d656e742073747265616d00d4456d697473206120605061796d656e7453747265616d4368617267656460206576656e74207768656e207375636365737366756c2e0001024e6f7465733a20612050726f766964657220636f756c64206861766520626f746820612066697865642d7261746520616e6420612064796e616d69632d72617465207061796d656e742073747265616d2077697468206120557365722e204966207468617427732074686520636173652c20746869732065787472696e736963b90177696c6c2074727920746f2063686172676520626f746820616e642074686520616d6f756e7420636861726765642077696c6c206265207468652073756d206f662074686520616d6f756e7473206368617267656420666f722065616368207061796d656e742073747265616d2e946368617267655f6d756c7469706c655f75736572735f7061796d656e745f73747265616d73040134757365725f6163636f756e7473810201b4426f756e6465645665633c543a3a4163636f756e7449642c20543a3a4d61785573657273546f4368617267653e0007785d01446973706174636861626c652065787472696e736963207468617420616c6c6f77732050726f76696465727320746f20636861726765206d756c7469706c6520557365722773207061796d656e742073747265616d732e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e9101546865206f726967696e206d757374206265207468652050726f7669646572207468617420686173206174206c65617374206f6e652074797065206f66207061796d656e742073747265616d20776974682065616368206f66207468652055736572732e002c506172616d65746572733a75012d2060757365725f6163636f756e7473603a20546865206172726179206f662055736572204163636f756e742049447320746861742068617665207061796d656e742073747265616d732077697468207468652050726f76696465722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722e2101322e20436865636b207468617420746865206172726179206f66205573657273206973206e6f7420626967676572207468616e20746865206d6178696d756d20616c6c6f7765642e4901332e2045786563757465206120666f72206c6f6f7020666f722065616368205573657220696e20746865206172726179206f662055736572204163636f756e74204944732c20696e2077686963682069743a490109612e20436865636b7320746861742061207061796d656e742073747265616d206265747765656e20746865207369676e6572202850726f76696465722920616e6420746865205573657220657869737473b009622e20496620746865726520697320612066697865642d72617465207061796d656e742073747265616d3aa82020200909312e20476574207468652072617465206f6620746865207061796d656e742073747265616dc5012020200909322e204765742074686520646966666572656e6365206265747765656e20746865206c6173742063686172676564207469636b206e756d62657220616e6420746865206c6173742063686172676561626c65207469636b206e756d626572206f66207468652073747265616d01012020200909332e2043616c63756c6174652074686520616d6f756e7420746f2063686172676520646f696e67206072617465202a20646966666572656e636560ed012020200909342e204368617267652074686520757365722028696620746865207573657220646f6573206e6f74206861766520656e6f7567682066756e64732c206974206765747320666c616767656420616e642061206055736572576974686f757446756e647360206576656e7420697320656d69747465642905012020200909352e2055706461746520746865206c6173742063686172676564207469636b206e756d626572206f6620746865207061796d656e742073747265616db809632e20496620746865726520697320612064796e616d69632d72617465207061796d656e742073747265616d3ac82020200909312e204765742074686520616d6f756e742070726f7669646564206279207468652050726f7669646572202020fd012020200909322e204765742074686520646966666572656e6365206265747765656e20707269636520696e646578207768656e207468652073747265616d20776173206c617374206368617267656420616e642074686520707269636520696e64657820617420746865206c6173742063686172676561626c65207469636b2d012020200909332e2043616c63756c6174652074686520616d6f756e7420746f2063686172676520646f696e672060616d6f756e745f70726f7669646564202a20646966666572656e636560ed012020200909342e204368617267652074686520757365722028696620746865207573657220646f6573206e6f74206861766520656e6f7567682066756e64732c206974206765747320666c616767656420616e642061206055736572576974686f757446756e647360206576656e7420697320656d69747465642955012020200909352e205570646174652074686520707269636520696e646578207768656e207468652073747265616d20776173206c6173742063686172676564206f6620746865207061796d656e742073747265616d008d01456d697473206120605061796d656e7453747265616d436861726765646020706572205573657220746861742068616420746f2070617920616e642061206055736572734368617267656460206576656e74207768656e207375636365737366756c2e0001024e6f7465733a20612050726f766964657220636f756c64206861766520626f746820612066697865642d7261746520616e6420612064796e616d69632d72617465207061796d656e742073747265616d2077697468206120557365722e204966207468617427732074686520636173652c20746869732065787472696e736963b90177696c6c2074727920746f2063686172676520626f746820616e642074686520616d6f756e7420636861726765642077696c6c206265207468652073756d206f662074686520616d6f756e7473206368617267656420666f722065616368207061796d656e742073747265616d2e507061795f6f75747374616e64696e675f64656274000848f501446973706174636861626c652065787472696e736963207468617420616c6c6f77732061207573657220666c616767656420617320776974686f75742066756e647320746f2070617920616c6c2072656d61696e696e67207061796d656e742073747265616d7320746f2062652061626c6520746f207265636f76657234697473206465706f736974732e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e0d01546865206f726967696e206d757374206265207468652055736572207468617420686173206265656e20666c616767656420617320776974686f75742066756e64732e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722ee4322e20436865636b207468617420746865207573657220686173206265656e20666c616767656420617320776974686f75742066756e64732e4101332e2052656c6561736520746865207573657227732066756e6473207468617420776572652068656c642061732061206465706f73697420666f722065616368207061796d656e742073747265616d2e7901342e2047657420616c6c207061796d656e742073747265616d73206f6620746865207573657220616e6420636861726765207468656d2c20706179696e67207468652050726f76696465727320666f72207468652073657276696365732ea8352e2044656c65746520616c6c207061796d656e742073747265616d73206f662074686520757365722e00b8456d697473206120275573657250616964446562747327206576656e74207768656e207375636365737366756c2e0001024e6f7465733a20746869732065787472696e736963206974657261746573206f76657220616c6c207061796d656e742073747265616d73206f6620746865207573657220616e642063686172676573207468656d2c20736f2069742063616e20626520657870656e7369766520696e207465726d73206f66207765696768742efd015468652066656520746f20657865637574652069742073686f756c64206265206869676820656e6f75676820746f20636f6d70656e7361746520666f722074686520776569676874206f66207468652065787472696e7369632c20776974686f7574206265696e6720746f6f206869676820746861742074686520757365724d0166696e6473206d6f726520636f6e76656e69656e7420746f207761697420666f722050726f76696465727320746f2067657420697473206465706f73697473206f6e65206279206f6e6520696e73746561642e50636c6561725f696e736f6c76656e745f666c6167000958dd01446973706174636861626c652065787472696e736963207468617420616c6c6f77732061207573657220666c616767656420617320776974686f75742066756e6473206c6f6e672061676f20656e6f75676820746f20636c656172207468697320666c61672066726f6d20697473206163636f756e742c0102616c6c6f77696e6720697420746f20626567696e20636f6e7472616374696e6720616e6420706179696e6720666f7220736572766963657320616761696e2e204966207468657265277320616e79206f75747374616e64696e6720646562742c2069742077696c6c206265206368617267656420616e6420636c65617265642e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e0d01546865206f726967696e206d757374206265207468652055736572207468617420686173206265656e20666c616767656420617320776974686f75742066756e64732e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722ee4322e20436865636b207468617420746865207573657220686173206265656e20666c616767656420617320776974686f75742066756e64732e6501332e20436865636b20746861742074686520636f6f6c646f776e20706572696f6420686173207061737365642073696e63652074686520757365722077617320666c616767656420617320776974686f75742066756e64732e2101342e20436865636b206966207468657265277320616e79206f75747374616e64696e67206465627420616e64206368617267652069742e205468697320697320646f6e652062793a35012020612e2052656c656173696e6720616e792072656d61696e696e672066756e64732068656c642061732061206465706f73697420666f722065616368207061796d656e742073747265616d2e99012020622e2047657474696e6720616c6c207061796d656e742073747265616d73206f6620746865207573657220616e64206368617267696e67207468656d2c20706179696e67207468652050726f76696465727320666f72207468652073657276696365732eb02020632e2052657475726e696e6720746865205573657220616e792072656d61696e696e672066756e64732eb82020642e2044656c6574696e6720616c6c207061796d656e742073747265616d73206f662074686520757365722e90352e20556e666c616720746865207573657220617320776974686f75742066756e64732e00b0456d6974732061202755736572536f6c76656e7427206576656e74207768656e207375636365737366756c2e0029024e6f7465733a20746869732065787472696e736963206974657261746573206f76657220616c6c2072656d61696e696e67207061796d656e742073747265616d73206f6620746865207573657220616e642063686172676573207468656d2c20736f2069742063616e20626520657870656e7369766520696e207465726d73206f66207765696768742efd015468652066656520746f20657865637574652069742073686f756c64206265206869676820656e6f75676820746f20636f6d70656e7361746520666f722074686520776569676874206f66207468652065787472696e7369632c20776974686f7574206265696e6720746f6f206869676820746861742074686520757365724d0166696e6473206d6f726520636f6e76656e69656e7420746f207761697420666f722050726f76696465727320746f2067657420697473206465706f73697473206f6e65206279206f6e6520696e73746561642e04c4446973706174636861626c6573202865787472696e7369637329206578706f73656420627920746869732070616c6c657481050c4870616c6c65745f6275636b65745f6e6674731870616c6c65741043616c6c0404540001083073686172655f616363657373100124726563697069656e74550401684163636f756e7449644c6f6f6b7570536f757263654f663c543e0001186275636b65743401384275636b65744964466f723c543e00011c6974656d5f6964100124543a3a4974656d4964000144726561645f6163636573735f7265676578850501684f7074696f6e3c5265616441636365737352656765783c543e3e00000cec53686172652061636365737320746f2066696c65732077697468696e2061206275636b6574207769746820616e6f74686572206163636f756e742e0079025468652060726561645f6163636573735f72656765786020706172616d65746572206973206f7074696f6e616c20616e64207768656e2073657420746f20604e6f6e6560206974206d65616e7320746861742074686520726563697069656e742077696c6c2062652064656e6965642061636365737320666f7220616e79207265616420726571756573742077697468696e20746865206275636b65742e487570646174655f726561645f6163636573730c01186275636b65743401384275636b65744964466f723c543e00011c6974656d5f6964100124543a3a4974656d4964000144726561645f6163636573735f7265676578850501684f7074696f6e3c5265616441636365737352656765783c543e3e0001047c55706461746520726561642061636365737320666f7220616e206974656d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e850504184f7074696f6e040454018d020108104e6f6e6500000010536f6d6504008d02000001000089050c2c70616c6c65745f6e6674731870616c6c65741043616c6c08045400044900019c1863726561746508011461646d696e550401504163636f756e7449644c6f6f6b75704f663c543e000118636f6e6669678d050164436f6c6c656374696f6e436f6e666967466f723c542c20493e00003c090149737375652061206e657720636f6c6c656374696f6e206f66206e6f6e2d66756e6769626c65206974656d732066726f6d2061207075626c6963206f726967696e2e001d0154686973206e657720636f6c6c656374696f6e20686173206e6f206974656d7320696e697469616c6c7920616e6420697473206f776e657220697320746865206f726967696e2e002501546865206f726967696e206d757374206265205369676e656420616e64207468652073656e646572206d75737420686176652073756666696369656e742066756e647320667265652e00c460436f6c6c656374696f6e4465706f736974602066756e6473206f662073656e646572206172652072657365727665642e002c506172616d65746572733a45012d206061646d696e603a205468652061646d696e206f66207468697320636f6c6c656374696f6e2e205468652061646d696e2069732074686520696e697469616c2061646472657373206f662065616368986d656d626572206f662074686520636f6c6c656374696f6e27732061646d696e207465616d2e0098456d69747320604372656174656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f2831296030666f7263655f6372656174650801146f776e6572550401504163636f756e7449644c6f6f6b75704f663c543e000118636f6e6669678d050164436f6c6c656374696f6e436f6e666967466f723c542c20493e00013c190149737375652061206e657720636f6c6c656374696f6e206f66206e6f6e2d66756e6769626c65206974656d732066726f6d20612070726976696c65676564206f726967696e2e00ac54686973206e657720636f6c6c656374696f6e20686173206e6f206974656d7320696e697469616c6c792e00a4546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e602e009c556e6c696b652060637265617465602c206e6f2066756e6473206172652072657365727665642e0039012d20606f776e6572603a20546865206f776e6572206f66207468697320636f6c6c656374696f6e206f66206974656d732e20546865206f776e6572206861732066756c6c20737570657275736572590120207065726d697373696f6e73206f7665722074686973206974656d2c20627574206d6179206c61746572206368616e676520616e6420636f6e66696775726520746865207065726d697373696f6e73207573696e67982020607472616e736665725f6f776e6572736869706020616e6420607365745f7465616d602e00ac456d6974732060466f7263654372656174656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f283129601c64657374726f79080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400011c7769746e657373ad05013844657374726f795769746e6573730002449c44657374726f79206120636f6c6c656374696f6e206f662066756e6769626c65206974656d732e005d01546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e60206f72206d75737420626520605369676e65646020616e64207468652073656e646572206d75737420626520746865686f776e6572206f66207468652060636f6c6c656374696f6e602e00dc4e4f54453a2054686520636f6c6c656374696f6e206d75737420686176652030206974656d7320746f2062652064657374726f7965642e0005012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e20746f2062652064657374726f7965642e31012d20607769746e657373603a20496e666f726d6174696f6e206f6e20746865206974656d73206d696e74656420696e2074686520636f6c6c656374696f6e2e2054686973206d75737420626520636f72726563742e00a0456d697473206044657374726f79656460206576656e74207768656e207375636365737366756c2e00745765696768743a20604f286d202b2063202b206129602077686572653a782d20606d203d207769746e6573732e6974656d5f6d657461646174617360702d206063203d207769746e6573732e6974656d5f636f6e6669677360682d206061203d207769746e6573732e6174747269627574657360106d696e74100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011c6d696e745f746f550401504163636f756e7449644c6f6f6b75704f663c543e0001307769746e6573735f64617461b10501d84f7074696f6e3c4d696e745769746e6573733c543a3a4974656d49642c204465706f73697442616c616e63654f663c542c20493e3e3e000340a04d696e7420616e206974656d206f66206120706172746963756c617220636f6c6c656374696f6e2e005101546865206f726967696e206d757374206265205369676e656420616e64207468652073656e646572206d75737420636f6d706c7920776974682074686520606d696e745f73657474696e6773602072756c65732e00e02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206d696e7465642ea02d20606974656d603a20416e206964656e746966696572206f6620746865206e6577206974656d2ee02d20606d696e745f746f603a204163636f756e7420696e746f20776869636820746865206974656d2077696c6c206265206d696e7465642e45012d20607769746e6573735f64617461603a205768656e20746865206d696e7420747970652069732060486f6c6465724f6628636f6c6c656374696f6e5f696429602c207468656e20746865206f776e6564590120206974656d5f69642066726f6d207468617420636f6c6c656374696f6e206e6565647320746f2062652070726f76696465642077697468696e20746865207769746e6573732064617461206f626a6563742e20496661012020746865206d696e74207072696365206973207365742c207468656e2069742073686f756c64206265206164646974696f6e616c6c7920636f6e6669726d656420696e2074686520607769746e6573735f64617461602e0051014e6f74653a20746865206465706f7369742077696c6c2062652074616b656e2066726f6d2074686520606f726967696e6020616e64206e6f742074686520606f776e657260206f662074686520606974656d602e0094456d697473206049737375656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f2831296028666f7263655f6d696e74100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011c6d696e745f746f550401504163636f756e7449644c6f6f6b75704f663c543e00012c6974656d5f636f6e666967b90501284974656d436f6e66696700043405014d696e7420616e206974656d206f66206120706172746963756c617220636f6c6c656374696f6e2066726f6d20612070726976696c65676564206f726967696e2e005d01546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e60206f72206d75737420626520605369676e65646020616e64207468652073656e646572206d757374206265207468656c497373756572206f66207468652060636f6c6c656374696f6e602e00e02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206d696e7465642ea02d20606974656d603a20416e206964656e746966696572206f6620746865206e6577206974656d2ee02d20606d696e745f746f603a204163636f756e7420696e746f20776869636820746865206974656d2077696c6c206265206d696e7465642ea82d20606974656d5f636f6e666967603a204120636f6e666967206f6620746865206e6577206974656d2e0094456d697473206049737375656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f28312960106275726e080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400052c5844657374726f7920612073696e676c65206974656d2e005d01546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e60206f72206d757374206265205369676e656420616e6420746865207369676e696e67206163636f756e74206d7573746c626520746865206f776e6572206f662074686520606974656d602e00e02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206275726e65642e802d20606974656d603a20546865206974656d20746f206265206275726e65642e003c456d69747320604275726e6564602e00385765696768743a20604f28312960207472616e736665720c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011064657374550401504163636f756e7449644c6f6f6b75704f663c543e000638c04d6f766520616e206974656d2066726f6d207468652073656e646572206163636f756e7420746f20616e6f746865722e00f44f726967696e206d757374206265205369676e656420616e6420746865207369676e696e67206163636f756e74206d757374206265206569746865723a682d20746865204f776e6572206f662074686520606974656d603b35012d2074686520617070726f7665642064656c656761746520666f722074686520606974656d602028696e207468697320636173652c2074686520617070726f76616c206973207265736574292e0028417267756d656e74733af42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265207472616e736665727265642e942d20606974656d603a20546865206974656d20746f206265207472616e736665727265642edc2d206064657374603a20546865206163636f756e7420746f2072656365697665206f776e657273686970206f6620746865206974656d2e0050456d69747320605472616e73666572726564602e00385765696768743a20604f283129602472656465706f736974080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001146974656d73910201385665633c543a3a4974656d49643e0007449c52652d6576616c7561746520746865206465706f73697473206f6e20736f6d65206974656d732e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468652060636f6c6c656374696f6e602e00f82d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d7320746f2062652072656576616c75617465642e29012d20606974656d73603a20546865206974656d73206f662074686520636f6c6c656374696f6e2077686f7365206465706f736974732077696c6c2062652072656576616c75617465642e002d014e4f54453a205468697320657869737473206173206120626573742d6566666f72742066756e6374696f6e2e20416e79206974656d732077686963682061726520756e6b6e6f776e206f723901696e207468652063617365207468617420746865206f776e6572206163636f756e7420646f6573206e6f7420686176652072657365727661626c652066756e647320746f2070617920666f7220614d016465706f73697420696e637265617365206172652069676e6f7265642e2047656e6572616c6c7920746865206f776e65722069736e277420676f696e6720746f2063616c6c2074686973206f6e206974656d73550177686f7365206578697374696e67206465706f736974206973206c657373207468616e2074686520726566726573686564206465706f73697420617320697420776f756c64206f6e6c7920636f7374207468656d2c78736f2069742773206f66206c6974746c6520636f6e73657175656e63652e00590149742077696c6c207374696c6c2072657475726e20616e206572726f7220696e20746865206361736520746861742074686520636f6c6c656374696f6e20697320756e6b6e6f776e206f7220746865207369676e6572706973206e6f74207065726d697474656420746f2063616c6c2069742e00605765696768743a20604f286974656d732e6c656e28292960486c6f636b5f6974656d5f7472616e73666572080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964000828c8446973616c6c6f77206675727468657220756e70726976696c65676564207472616e73666572206f6620616e206974656d2e003d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f66207468652060636f6c6c656374696f6e602e00e42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206368616e6765642eb82d20606974656d603a20546865206974656d20746f206265636f6d65206e6f6e2d7472616e7366657261626c652e006c456d69747320604974656d5472616e736665724c6f636b6564602e00385765696768743a20604f2831296050756e6c6f636b5f6974656d5f7472616e73666572080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964000928a852652d616c6c6f7720756e70726976696c65676564207472616e73666572206f6620616e206974656d2e003d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f66207468652060636f6c6c656374696f6e602e00e42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206368616e6765642ea82d20606974656d603a20546865206974656d20746f206265636f6d65207472616e7366657261626c652e0074456d69747320604974656d5472616e73666572556e6c6f636b6564602e00385765696768743a20604f283129603c6c6f636b5f636f6c6c656374696f6e080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001346c6f636b5f73657474696e677391050148436f6c6c656374696f6e53657474696e6773000a30d8446973616c6c6f7773207370656369666965642073657474696e677320666f72207468652077686f6c6520636f6c6c656374696f6e2e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468652060636f6c6c656374696f6e602e00b02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e20746f206265206c6f636b65642eb42d20606c6f636b5f73657474696e6773603a205468652073657474696e677320746f206265206c6f636b65642e001d014e6f74653a206974277320706f737369626c6520746f206f6e6c79206c6f636b2873657429207468652073657474696e672c20627574206e6f7420746f20756e7365742069742e0064456d6974732060436f6c6c656374696f6e4c6f636b6564602e00385765696768743a20604f28312960487472616e736665725f6f776e657273686970080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001246e65775f6f776e6572550401504163636f756e7449644c6f6f6b75704f663c543e000b2c844368616e676520746865204f776e6572206f66206120636f6c6c656374696f6e2e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468652060636f6c6c656374696f6e602e00f42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e2077686f7365206f776e65722073686f756c64206265206368616e6765642e09012d20606f776e6572603a20546865206e6577204f776e6572206f66207468697320636f6c6c656374696f6e2e2054686579206d75737420686176652063616c6c656449012020607365745f6163636570745f6f776e6572736869706020776974682060636f6c6c656374696f6e6020696e206f7264657220666f722074686973206f7065726174696f6e20746f20737563636565642e0054456d69747320604f776e65724368616e676564602e00385765696768743a20604f28312960207365745f7465616d100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000118697373756572bd0501704f7074696f6e3c4163636f756e7449644c6f6f6b75704f663c543e3e00011461646d696ebd0501704f7074696f6e3c4163636f756e7449644c6f6f6b75704f663c543e3e00011c667265657a6572bd0501704f7074696f6e3c4163636f756e7449644c6f6f6b75704f663c543e3e000c40d44368616e676520746865204973737565722c2041646d696e20616e6420467265657a6572206f66206120636f6c6c656374696f6e2e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468653460636f6c6c656374696f6e602e0051014e6f74653a2062792073657474696e672074686520726f6c6520746f20604e6f6e6560206f6e6c79207468652060466f7263654f726967696e602077696c6c2062652061626c6520746f206368616e676520697464616674657220746f2060536f6d65286163636f756e7429602e00f02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e2077686f7365207465616d2073686f756c64206265206368616e6765642eb82d2060697373756572603a20546865206e657720497373756572206f66207468697320636f6c6c656374696f6e2eb02d206061646d696e603a20546865206e65772041646d696e206f66207468697320636f6c6c656374696f6e2ec02d2060667265657a6572603a20546865206e657720467265657a6572206f66207468697320636f6c6c656374696f6e2e0050456d69747320605465616d4368616e676564602e00385765696768743a20604f2831296058666f7263655f636f6c6c656374696f6e5f6f776e6572080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001146f776e6572550401504163636f756e7449644c6f6f6b75704f663c543e000d28844368616e676520746865204f776e6572206f66206120636f6c6c656374696f6e2e00744f726967696e206d7573742062652060466f7263654f726967696e602e00c42d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2eb02d20606f776e6572603a20546865206e6577204f776e6572206f66207468697320636f6c6c656374696f6e2e0054456d69747320604f776e65724368616e676564602e00385765696768743a20604f283129605c666f7263655f636f6c6c656374696f6e5f636f6e666967080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000118636f6e6669678d050164436f6c6c656374696f6e436f6e666967466f723c542c20493e000e28884368616e67652074686520636f6e666967206f66206120636f6c6c656374696f6e2e00744f726967696e206d7573742062652060466f7263654f726967696e602e00c42d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2eb82d2060636f6e666967603a20546865206e657720636f6e666967206f66207468697320636f6c6c656374696f6e2e0080456d6974732060436f6c6c656374696f6e436f6e6669674368616e676564602e00385765696768743a20604f2831296040617070726f76655f7472616e73666572100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465550401504163636f756e7449644c6f6f6b75704f663c543e0001386d617962655f646561646c696e65190201644f7074696f6e3c426c6f636b4e756d626572466f723c543e3e000f381501417070726f766520616e206974656d20746f206265207472616e7366657272656420627920612064656c6567617465642074686972642d7061727479206163636f756e742e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468651c606974656d602e0045012d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f20626520617070726f76656420666f722064656c656761746564207472616e736665722ee42d20606974656d603a20546865206974656d20746f20626520617070726f76656420666f722064656c656761746564207472616e736665722e19012d206064656c6567617465603a20546865206163636f756e7420746f2064656c6567617465207065726d697373696f6e20746f207472616e7366657220746865206974656d2e49012d20606d617962655f646561646c696e65603a204f7074696f6e616c20646561646c696e6520666f722074686520617070726f76616c2e205370656369666965642062792070726f766964696e6720746865d8096e756d626572206f6620626c6f636b732061667465722077686963682074686520617070726f76616c2077696c6c206578706972650090456d69747320605472616e73666572417070726f76656460206f6e20737563636573732e00385765696768743a20604f283129603c63616e63656c5f617070726f76616c0c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465550401504163636f756e7449644c6f6f6b75704f663c543e001038e443616e63656c206f6e65206f6620746865207472616e7366657220617070726f76616c7320666f722061207370656369666963206974656d2e00584f726967696e206d757374206265206569746865723a542d207468652060466f72636560206f726967696e3be42d20605369676e656460207769746820746865207369676e6572206265696e6720746865204f776e6572206f662074686520606974656d603b0028417267756d656e74733a3d012d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d206f662077686f736520617070726f76616c2077696c6c2062652063616e63656c6c65642e25012d20606974656d603a20546865206974656d206f662074686520636f6c6c656374696f6e206f662077686f736520617070726f76616c2077696c6c2062652063616e63656c6c65642e01012d206064656c6567617465603a20546865206163636f756e74207468617420697320676f696e6720746f206c6f6f736520746865697220617070726f76616c2e0094456d6974732060417070726f76616c43616e63656c6c656460206f6e20737563636573732e00385765696768743a20604f2831296070636c6561725f616c6c5f7472616e736665725f617070726f76616c73080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964001134b043616e63656c20616c6c2074686520617070726f76616c73206f662061207370656369666963206974656d2e00584f726967696e206d757374206265206569746865723a542d207468652060466f72636560206f726967696e3be42d20605369676e656460207769746820746865207369676e6572206265696e6720746865204f776e6572206f662074686520606974656d603b0028417267756d656e74733a39012d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d206f662077686f736520617070726f76616c732077696c6c20626520636c65617265642e21012d20606974656d603a20546865206974656d206f662074686520636f6c6c656374696f6e206f662077686f736520617070726f76616c732077696c6c20626520636c65617265642e00a4456d6974732060416c6c417070726f76616c7343616e63656c6c656460206f6e20737563636573732e00385765696768743a20604f28312960506c6f636b5f6974656d5f70726f70657274696573100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001346c6f636b5f6d65746164617461200110626f6f6c00013c6c6f636b5f61747472696275746573200110626f6f6c001244e8446973616c6c6f7773206368616e67696e6720746865206d65746164617461206f722061747472696275746573206f6620746865206974656d2e0041014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e506f66207468652060636f6c6c656374696f6e602e00b42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e2069662074686520606974656d602e7c2d20606974656d603a20416e206974656d20746f206265206c6f636b65642e0d012d20606c6f636b5f6d65746164617461603a20537065636966696573207768657468657220746865206d657461646174612073686f756c64206265206c6f636b65642e61012d20606c6f636b5f61747472696275746573603a20537065636966696573207768657468657220746865206174747269627574657320696e207468652060436f6c6c656374696f6e4f776e657260206e616d6573706163654c202073686f756c64206265206c6f636b65642e005d014e6f74653a20606c6f636b5f6174747269627574657360206166666563747320746865206174747269627574657320696e207468652060436f6c6c656374696f6e4f776e657260206e616d657370616365206f6e6c792e45015768656e20746865206d65746164617461206f72206174747269627574657320617265206c6f636b65642c20697420776f6e277420626520706f737369626c652074686520756e6c6f636b207468656d2e0074456d69747320604974656d50726f706572746965734c6f636b6564602e00385765696768743a20604f28312960347365745f617474726962757465140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656d190201444f7074696f6e3c543a3a4974656d49643e0001246e616d657370616365990201804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e00010c6b65799502016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e00011476616c75658d020174426f756e6465645665633c75382c20543a3a56616c75654c696d69743e001358a853657420616e2061747472696275746520666f72206120636f6c6c656374696f6e206f72206974656d2e0001014f726967696e206d757374206265205369676e656420616e64206d75737420636f6e666f726d20746f20746865206e616d6573706163652072756c657365743a3d012d2060436f6c6c656374696f6e4f776e657260206e616d65737061636520636f756c64206265206d6f646966696564206279207468652060636f6c6c656374696f6e602041646d696e206f6e6c793b59012d20604974656d4f776e657260206e616d65737061636520636f756c64206265206d6f6469666965642062792074686520606d617962655f6974656d60206f776e6572206f6e6c792e20606d617962655f6974656d6074202073686f756c642062652073657420696e207468617420636173653b55012d20604163636f756e74284163636f756e7449642960206e616d65737061636520636f756c64206265206d6f646966696564206f6e6c79207768656e2074686520606f726967696e602077617320676976656e20615820207065726d697373696f6e20746f20646f20736f3b00f05468652066756e6473206f6620606f726967696e6020617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613a2d01604174747269627574654465706f73697442617365202b204465706f73697450657242797465202a20286b65792e6c656e202b2076616c75652e6c656e29602074616b696e6720696e746f8c6163636f756e7420616e7920616c72656164792072657365727665642066756e64732e0039012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f207365742e05012d20606d617962655f6974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f207365742e942d20606e616d657370616365603a204174747269627574652773206e616d6573706163652e882d20606b6579603a20546865206b6579206f6620746865206174747269627574652ecc2d206076616c7565603a205468652076616c756520746f20776869636820746f2073657420746865206174747269627574652e0054456d6974732060417474726962757465536574602e00385765696768743a20604f283129604c666f7263655f7365745f6174747269627574651801187365745f61739c01504f7074696f6e3c543a3a4163636f756e7449643e000128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656d190201444f7074696f6e3c543a3a4974656d49643e0001246e616d657370616365990201804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e00010c6b65799502016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e00011476616c75658d020174426f756e6465645665633c75382c20543a3a56616c75654c696d69743e001444c0466f7263652d73657420616e2061747472696275746520666f72206120636f6c6c656374696f6e206f72206974656d2e00744f726967696e206d7573742062652060466f7263654f726967696e602e0039014966207468652061747472696275746520616c72656164792065786973747320616e64206974207761732073657420627920616e6f74686572206163636f756e742c20746865206465706f7369749c77696c6c2062652072657475726e656420746f207468652070726576696f7573206f776e65722e00bc2d20607365745f6173603a20416e206f7074696f6e616c206f776e6572206f6620746865206174747269627574652e39012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f207365742e05012d20606d617962655f6974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f207365742e942d20606e616d657370616365603a204174747269627574652773206e616d6573706163652e882d20606b6579603a20546865206b6579206f6620746865206174747269627574652ecc2d206076616c7565603a205468652076616c756520746f20776869636820746f2073657420746865206174747269627574652e0054456d6974732060417474726962757465536574602e00385765696768743a20604f283129603c636c6561725f617474726962757465100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656d190201444f7074696f6e3c543a3a4974656d49643e0001246e616d657370616365990201804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e00010c6b65799502016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e00153cb0436c65617220616e2061747472696275746520666f72206120636f6c6c656374696f6e206f72206974656d2e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f6620746865286174747269627574652e00c0416e79206465706f73697420697320667265656420666f722074686520636f6c6c656374696f6e2773206f776e65722e0041012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f20636c6561722e0d012d20606d617962655f6974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f20636c6561722e942d20606e616d657370616365603a204174747269627574652773206e616d6573706163652e882d20606b6579603a20546865206b6579206f6620746865206174747269627574652e0064456d6974732060417474726962757465436c6561726564602e00385765696768743a20604f283129605c617070726f76655f6974656d5f617474726962757465730c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465550401504163636f756e7449644c6f6f6b75704f663c543e0016242d01417070726f7665206974656d2773206174747269627574657320746f206265206368616e67656420627920612064656c6567617465642074686972642d7061727479206163636f756e742e00e44f726967696e206d757374206265205369676e656420616e64206d75737420626520616e206f776e6572206f662074686520606974656d602e00a42d2060636f6c6c656374696f6e603a204120636f6c6c656374696f6e206f6620746865206974656d2ea42d20606974656d603a20546865206974656d207468617420686f6c647320617474726962757465732e49012d206064656c6567617465603a20546865206163636f756e7420746f2064656c6567617465207065726d697373696f6e20746f206368616e67652061747472696275746573206f6620746865206974656d2e00bc456d69747320604974656d41747472696275746573417070726f76616c416464656460206f6e20737563636573732e7c63616e63656c5f6974656d5f617474726962757465735f617070726f76616c100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465550401504163636f756e7449644c6f6f6b75704f663c543e00011c7769746e657373c105017c43616e63656c41747472696275746573417070726f76616c5769746e657373001728110143616e63656c207468652070726576696f75736c792070726f766964656420617070726f76616c20746f206368616e6765206974656d277320617474726962757465732e1101416c6c207468652070726576696f75736c7920736574206174747269627574657320627920746865206064656c6567617465602077696c6c2062652072656d6f7665642e00e44f726967696e206d757374206265205369676e656420616e64206d75737420626520616e206f776e6572206f662074686520606974656d602e00f42d2060636f6c6c656374696f6e603a20436f6c6c656374696f6e207468617420746865206974656d20697320636f6e7461696e65642077697468696e2ea42d20606974656d603a20546865206974656d207468617420686f6c647320617474726962757465732ee02d206064656c6567617465603a205468652070726576696f75736c7920617070726f766564206163636f756e7420746f2072656d6f76652e00c4456d69747320604974656d41747472696275746573417070726f76616c52656d6f76656460206f6e20737563636573732e307365745f6d657461646174610c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964000110646174618d020178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e0018407453657420746865206d6574616461746120666f7220616e206974656d2e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f66207468653460636f6c6c656374696f6e602e005101496620746865206f726967696e206973205369676e65642c207468656e2066756e6473206f66207369676e657220617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613af4604d657461646174614465706f73697442617365202b204465706f73697450657242797465202a20646174612e6c656e602074616b696e6720696e746f8c6163636f756e7420616e7920616c72656164792072657365727665642066756e64732e0039012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f207365742eec2d20606974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f207365742e4d012d206064617461603a205468652067656e6572616c20696e666f726d6174696f6e206f662074686973206974656d2e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e0060456d69747320604974656d4d65746164617461536574602e00385765696768743a20604f2831296038636c6561725f6d65746164617461080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640019347c436c65617220746865206d6574616461746120666f7220616e206974656d2e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f66207468653460636f6c6c656374696f6e602e00c0416e79206465706f73697420697320667265656420666f722074686520636f6c6c656374696f6e2773206f776e65722e0041012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f20636c6561722ef42d20606974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f20636c6561722e0070456d69747320604974656d4d65746164617461436c6561726564602e00385765696768743a20604f283129605c7365745f636f6c6c656374696f6e5f6d65746164617461080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000110646174618d020178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e001a3c8853657420746865206d6574616461746120666f72206120636f6c6c656374696f6e2e0055014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f7220605369676e65646020616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f66447468652060636f6c6c656374696f6e602e005901496620746865206f726967696e20697320605369676e6564602c207468656e2066756e6473206f66207369676e657220617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613af4604d657461646174614465706f73697442617365202b204465706f73697450657242797465202a20646174612e6c656e602074616b696e6720696e746f8c6163636f756e7420616e7920616c72656164792072657365727665642066756e64732e0011012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f207570646174652e4d012d206064617461603a205468652067656e6572616c20696e666f726d6174696f6e206f662074686973206974656d2e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e0078456d6974732060436f6c6c656374696f6e4d65746164617461536574602e00385765696768743a20604f2831296064636c6561725f636f6c6c656374696f6e5f6d65746164617461040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964001b3090436c65617220746865206d6574616461746120666f72206120636f6c6c656374696f6e2e0055014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f7220605369676e65646020616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f66447468652060636f6c6c656374696f6e602e00c0416e79206465706f73697420697320667265656420666f722074686520636f6c6c656374696f6e2773206f776e65722e0025012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206d6574616461746120746f20636c6561722e0088456d6974732060436f6c6c656374696f6e4d65746164617461436c6561726564602e00385765696768743a20604f28312960507365745f6163636570745f6f776e6572736869700401406d617962655f636f6c6c656374696f6e1902015c4f7074696f6e3c543a3a436f6c6c656374696f6e49643e001c28110153657420286f72207265736574292074686520616363657074616e6365206f66206f776e65727368697020666f72206120706172746963756c6172206163636f756e742e0061014f726967696e206d75737420626520605369676e65646020616e6420696620606d617962655f636f6c6c656374696f6e602069732060536f6d65602c207468656e20746865207369676e6572206d757374206861766520614c70726f7669646572207265666572656e63652e0051012d20606d617962655f636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206f776e65727368697020746865207369676e65722069736101202077696c6c696e6720746f206163636570742c206f7220696620604e6f6e65602c20616e20696e6469636174696f6e207468617420746865207369676e65722069732077696c6c696e6720746f20616363657074206e6f5c20206f776e657273686970207472616e73666572616c2e008c456d69747320604f776e657273686970416363657074616e63654368616e676564602e647365745f636f6c6c656374696f6e5f6d61785f737570706c79080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d61785f737570706c7910010c753332001d24e053657420746865206d6178696d756d206e756d626572206f66206974656d73206120636f6c6c656374696f6e20636f756c6420686176652e0055014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f7220605369676e65646020616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66447468652060636f6c6c656374696f6e602e00ec2d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e20746f206368616e67652e11012d20606d61785f737570706c79603a20546865206d6178696d756d206e756d626572206f66206974656d73206120636f6c6c656374696f6e20636f756c6420686176652e00d4456d6974732060436f6c6c656374696f6e4d6178537570706c7953657460206576656e74207768656e207375636365737366756c2e507570646174655f6d696e745f73657474696e6773080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001346d696e745f73657474696e677399050105014d696e7453657474696e67733c42616c616e63654f663c542c20493e2c20426c6f636b4e756d626572466f723c543e2c20543a3a436f6c6c656374696f6e49643e001e2454557064617465206d696e742073657474696e67732e004d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f7220605369676e65646020616e64207468652073656e6465722073686f756c642062652074686520497373756572506f66207468652060636f6c6c656374696f6e602e00ec2d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e20746f206368616e67652ea42d20606d696e745f73657474696e6773603a20546865206e6577206d696e742073657474696e67732e00f0456d6974732060436f6c6c656374696f6e4d696e7453657474696e67735570646174656460206576656e74207768656e207375636365737366756c2e247365745f7072696365100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001147072696365a105015c4f7074696f6e3c4974656d50726963653c542c20493e3e00014477686974656c69737465645f6275796572bd0501704f7074696f6e3c4163636f756e7449644c6f6f6b75704f663c543e3e001f2c9453657420286f72207265736574292074686520707269636520666f7220616e206974656d2e00e84f726967696e206d757374206265205369676e656420616e64206d75737420626520746865206f776e6572206f662074686520606974656d602e00ac2d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d2ea02d20606974656d603a20546865206974656d20746f207365742074686520707269636520666f722e0d012d20607072696365603a2054686520707269636520666f7220746865206974656d2e205061737320604e6f6e65602c20746f207265736574207468652070726963652ef42d20606275796572603a205265737472696374732074686520627579206f7065726174696f6e20746f2061207370656369666963206163636f756e742e00ec456d69747320604974656d507269636553657460206f6e207375636365737320696620746865207072696365206973206e6f7420604e6f6e65602eec456d69747320604974656d507269636552656d6f76656460206f6e20737563636573732069662074686520707269636520697320604e6f6e65602e206275795f6974656d0c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001246269645f707269636518013c4974656d50726963653c542c20493e002024a8416c6c6f777320746f2062757920616e206974656d206966206974277320757020666f722073616c652e00f84f726967696e206d757374206265205369676e656420616e64206d757374206e6f7420626520746865206f776e6572206f662074686520606974656d602e00ac2d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d2eac2d20606974656d603a20546865206974656d207468652073656e6465722077616e747320746f206275792ed82d20606269645f7072696365603a20546865207072696365207468652073656e6465722069732077696c6c696e6720746f207061792e0078456d69747320604974656d426f7567687460206f6e20737563636573732e207061795f7469707304011074697073c505019c426f756e6465645665633c4974656d5469704f663c542c20493e2c20543a3a4d6178546970733e00211c5c416c6c6f777320746f207061792074686520746970732e00584f726967696e206d757374206265205369676e65642e00542d206074697073603a20546970732061727261792e0098456d697473206054697053656e7460206f6e20657665727920746970207472616e736665722e2c6372656174655f737761701801486f6666657265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001306f6666657265645f6974656d100124543a3a4974656d4964000148646573697265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001486d617962655f646573697265645f6974656d190201444f7074696f6e3c543a3a4974656d49643e00012c6d617962655f70726963659d0201ac4f7074696f6e3c507269636557697468446972656374696f6e3c4974656d50726963653c542c20493e3e3e0001206475726174696f6e100144426c6f636b4e756d626572466f723c543e002240510152656769737465722061206e65772061746f6d696320737761702c206465636c6172696e6720616e20696e74656e74696f6e20746f2073656e6420616e20606974656d6020696e2065786368616e676520666f72fc60646573697265645f6974656d602066726f6d206f726967696e20746f20746172676574206f6e207468652063757272656e7420626c6f636b636861696e2e4d01546865207461726765742063616e206578656375746520746865207377617020647572696e67207468652073706563696669656420606475726174696f6e60206f6620626c6f636b732028696620736574292ef04164646974696f6e616c6c792c2074686520707269636520636f756c642062652073657420666f7220746865206465736972656420606974656d602e00e44f726967696e206d757374206265205369676e656420616e64206d75737420626520616e206f776e6572206f662074686520606974656d602e00ac2d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d2ea82d20606974656d603a20546865206974656d20616e206f776e65722077616e747320746f20676976652eec2d2060646573697265645f636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f66207468652064657369726564206974656d2ef42d2060646573697265645f6974656d603a205468652064657369726564206974656d20616e206f776e65722077616e747320746f20726563656976652e61012d20606d617962655f7072696365603a2054686520707269636520616e206f776e65722069732077696c6c696e6720746f20706179206f72207265636569766520666f7220746865206465736972656420606974656d602e49012d20606475726174696f6e603a204120646561646c696e6520666f722074686520737761702e205370656369666965642062792070726f766964696e6720746865206e756d626572206f6620626c6f636b73880961667465722077686963682074686520737761702077696c6c206578706972652e007c456d6974732060537761704372656174656460206f6e20737563636573732e2c63616e63656c5f737761700801486f6666657265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001306f6666657265645f6974656d100124543a3a4974656d49640023245843616e63656c20616e2061746f6d696320737761702e00584f726967696e206d757374206265205369676e65642e15014f726967696e206d75737420626520616e206f776e6572206f662074686520606974656d602069662074686520646561646c696e65206861736e277420657870697265642e00ac2d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d2ea82d20606974656d603a20546865206974656d20616e206f776e65722077616e747320746f20676976652e0084456d69747320605377617043616e63656c6c656460206f6e20737563636573732e28636c61696d5f7377617014013c73656e645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400012473656e645f6974656d100124543a3a4974656d4964000148726563656976655f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000130726563656976655f6974656d100124543a3a4974656d49640001347769746e6573735f70726963659d0201ac4f7074696f6e3c507269636557697468446972656374696f6e3c4974656d50726963653c542c20493e3e3e00243054436c61696d20616e2061746f6d696320737761702e390154686973206d6574686f6420657865637574657320612070656e64696e6720737761702c2074686174207761732063726561746564206279206120636f756e74657270617274206265666f72652e00e44f726967696e206d757374206265205369676e656420616e64206d75737420626520616e206f776e6572206f662074686520606974656d602e00ec2d206073656e645f636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f2062652073656e742e8c2d206073656e645f6974656d603a20546865206974656d20746f2062652073656e742e09012d2060726563656976655f636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f2062652072656365697665642ea82d2060726563656976655f6974656d603a20546865206974656d20746f2062652072656365697665642ee42d20607769746e6573735f7072696365603a20412070726963652074686174207761732070726576696f75736c7920616772656564206f6e2e007c456d697473206053776170436c61696d656460206f6e20737563636573732e3c6d696e745f7072655f7369676e65640c01246d696e745f64617461d1050168426f783c5072655369676e65644d696e744f663c542c20493e3e0001247369676e6174757265d5050150543a3a4f6666636861696e5369676e61747572650001187369676e6572000130543a3a4163636f756e744964002534c84d696e7420616e206974656d2062792070726f766964696e6720746865207072652d7369676e656420617070726f76616c2e00584f726967696e206d757374206265205369676e65642e005d012d20606d696e745f64617461603a20546865207072652d7369676e656420617070726f76616c207468617420636f6e7369737473206f662074686520696e666f726d6174696f6e2061626f757420746865206974656d2c51012020697473206d657461646174612c20617474726962757465732c2077686f2063616e206d696e742069742028604e6f6e656020666f7220616e796f6e652920616e6420756e74696c207768617420626c6f636b2420206e756d6265722ec82d20607369676e6174757265603a20546865207369676e6174757265206f662074686520606461746160206f626a6563742e39012d20607369676e6572603a2054686520606461746160206f626a6563742773207369676e65722e2053686f756c6420626520616e20497373756572206f662074686520636f6c6c656374696f6e2e0068456d697473206049737375656460206f6e20737563636573732ed4456d69747320604174747269627574655365746020696620746865206174747269627574657320776572652070726f76696465642ed8456d69747320604974656d4d657461646174615365746020696620746865206d6574616461746120776173206e6f7420656d7074792e647365745f617474726962757465735f7072655f7369676e65640c011064617461e105016c5072655369676e6564417474726962757465734f663c542c20493e0001247369676e6174757265d5050150543a3a4f6666636861696e5369676e61747572650001187369676e6572000130543a3a4163636f756e7449640026340101536574206174747269627574657320666f7220616e206974656d2062792070726f766964696e6720746865207072652d7369676e656420617070726f76616c2e00f84f726967696e206d757374206265205369676e656420616e64206d75737420626520616e206f776e6572206f66207468652060646174612e6974656d602e0049012d206064617461603a20546865207072652d7369676e656420617070726f76616c207468617420636f6e7369737473206f662074686520696e666f726d6174696f6e2061626f757420746865206974656d2ccc20206174747269627574657320746f2075706461746520616e6420756e74696c207768617420626c6f636b206e756d6265722ec82d20607369676e6174757265603a20546865207369676e6174757265206f662074686520606461746160206f626a6563742e51012d20607369676e6572603a2054686520606461746160206f626a6563742773207369676e65722e2053686f756c6420626520616e2041646d696e206f662074686520636f6c6c656374696f6e20666f722074686578202060436f6c6c656374696f6e4f776e657260206e616d6573706163652e00c4456d69747320604174747269627574655365746020666f7220656163682070726f7669646564206174747269627574652e1901456d69747320604974656d41747472696275746573417070726f76616c4164646564602069662074686520617070726f76616c207761736e277420736574206265666f72652ea8456d69747320605072655369676e65644174747269627574657353657460206f6e20737563636573732e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e8d050c2c70616c6c65745f6e66747314747970657340436f6c6c656374696f6e436f6e6669670c14507269636501182c426c6f636b4e756d626572011030436f6c6c656374696f6e49640110000c012073657474696e677391050148436f6c6c656374696f6e53657474696e67730001286d61785f737570706c791902012c4f7074696f6e3c7533323e0001346d696e745f73657474696e6773990501b84d696e7453657474696e67733c50726963652c20426c6f636b4e756d6265722c20436f6c6c656374696f6e49643e000091050c2c70616c6c65745f6e66747314747970657320426974466c616773040454019505000400300144436f6c6c656374696f6e53657474696e67000095050c2c70616c6c65745f6e66747314747970657344436f6c6c656374696f6e53657474696e67000114445472616e7366657261626c654974656d7300010040556e6c6f636b65644d6574616461746100020048556e6c6f636b65644174747269627574657300040044556e6c6f636b65644d6178537570706c790008003c4465706f73697452657175697265640010000099050c2c70616c6c65745f6e667473147479706573304d696e7453657474696e67730c14507269636501182c426c6f636b4e756d626572011030436f6c6c656374696f6e49640110001401246d696e745f747970659d0501584d696e74547970653c436f6c6c656374696f6e49643e0001147072696365a10501344f7074696f6e3c50726963653e00012c73746172745f626c6f636b1902014c4f7074696f6e3c426c6f636b4e756d6265723e000124656e645f626c6f636b1902014c4f7074696f6e3c426c6f636b4e756d6265723e00015464656661756c745f6974656d5f73657474696e6773a50501304974656d53657474696e677300009d050c2c70616c6c65745f6e667473147479706573204d696e74547970650430436f6c6c656374696f6e49640110010c18497373756572000000185075626c696300010020486f6c6465724f660400100130436f6c6c656374696f6e496400020000a10504184f7074696f6e04045401180108104e6f6e6500000010536f6d650400180000010000a5050c2c70616c6c65745f6e66747314747970657320426974466c61677304045401a90500040030012c4974656d53657474696e670000a9050c2c70616c6c65745f6e6674731474797065732c4974656d53657474696e6700010c305472616e7366657261626c6500010040556e6c6f636b65644d6574616461746100020048556e6c6f636b65644174747269627574657300040000ad050c2c70616c6c65745f6e6674731474797065733844657374726f795769746e65737300000c01386974656d5f6d6574616461746173cc010c7533320001306974656d5f636f6e66696773cc010c75333200012861747472696275746573cc010c7533320000b10504184f7074696f6e04045401b5050108104e6f6e6500000010536f6d650400b5050000010000b5050c2c70616c6c65745f6e6674731474797065732c4d696e745769746e65737308184974656d496401101c42616c616e63650118000801286f776e65645f6974656d190201384f7074696f6e3c4974656d49643e0001286d696e745f7072696365a105013c4f7074696f6e3c42616c616e63653e0000b9050c2c70616c6c65745f6e667473147479706573284974656d436f6e666967000004012073657474696e6773a50501304974656d53657474696e67730000bd0504184f7074696f6e0404540155040108104e6f6e6500000010536f6d65040055040000010000c1050c2c70616c6c65745f6e6674731474797065737c43616e63656c41747472696275746573417070726f76616c5769746e65737300000401486163636f756e745f6174747269627574657310010c7533320000c5050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401c905045300000400cd0501185665633c543e0000c9050c2c70616c6c65745f6e6674731474797065731c4974656d5469701030436f6c6c656374696f6e49640110184974656d49640110244163636f756e744964010018416d6f756e74011800100128636f6c6c656374696f6e100130436f6c6c656374696f6e49640001106974656d1001184974656d496400012072656365697665720001244163636f756e744964000118616d6f756e74180118416d6f756e740000cd05000002c90500d1050c2c70616c6c65745f6e667473147479706573345072655369676e65644d696e741430436f6c6c656374696f6e49640110184974656d49640110244163636f756e744964010020446561646c696e6501101c42616c616e63650118001c0128636f6c6c656374696f6e100130436f6c6c656374696f6e49640001106974656d1001184974656d4964000128617474726962757465732903015c5665633c285665633c75383e2c205665633c75383e293e0001206d6574616461746138011c5665633c75383e0001306f6e6c795f6163636f756e749c01444f7074696f6e3c4163636f756e7449643e000120646561646c696e65100120446561646c696e650001286d696e745f7072696365a105013c4f7074696f6e3c42616c616e63653e0000d505082873705f72756e74696d65384d756c74695369676e617475726500010c1c456432353531390400d9050148656432353531393a3a5369676e61747572650000001c537232353531390400d9050148737232353531393a3a5369676e61747572650001001445636473610400dd05014065636473613a3a5369676e617475726500020000d905000003400000000800dd05000003410000000800e1050c2c70616c6c65745f6e6674731474797065734c5072655369676e6564417474726962757465731030436f6c6c656374696f6e49640110184974656d49640110244163636f756e744964010020446561646c696e65011000140128636f6c6c656374696f6e100130436f6c6c656374696f6e49640001106974656d1001184974656d4964000128617474726962757465732903015c5665633c285665633c75383e2c205665633c75383e293e0001246e616d657370616365990201744174747269627574654e616d6573706163653c4163636f756e7449643e000120646561646c696e65100120446561646c696e650000e5050c4470616c6c65745f706172616d65746572731870616c6c65741043616c6c040454000104347365745f706172616d657465720401246b65795f76616c7565e9050150543a3a52756e74696d65506172616d657465727300001074536574207468652076616c7565206f66206120706172616d657465722e005501546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265206041646d696e4f726967696e6020666f722074686520676976656e20606b6579602e2056616c7565732062658864656c657465642062792073657474696e67207468656d20746f20604e6f6e65602e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ee905104c73746f726167655f6875625f72756e74696d651c636f6e666967733872756e74696d655f706172616d734452756e74696d65506172616d65746572730001043452756e74696d65436f6e6669670400ed0501a864796e616d69635f706172616d733a3a72756e74696d655f636f6e6669673a3a506172616d657465727300000000ed05184c73746f726167655f6875625f72756e74696d651c636f6e666967733872756e74696d655f706172616d733864796e616d69635f706172616d733872756e74696d655f636f6e66696728506172616d657465727300014464536c617368416d6f756e745065724d617846696c6553697a650800b9020164536c617368416d6f756e745065724d617846696c6553697a650000a105013c4f7074696f6e3c42616c616e63653e000000585374616b65546f4368616c6c656e6765506572696f640800bd0201585374616b65546f4368616c6c656e6765506572696f640000a105013c4f7074696f6e3c42616c616e63653e00010064436865636b706f696e744368616c6c656e6765506572696f640800c1020164436865636b706f696e744368616c6c656e6765506572696f6400001902014c4f7074696f6e3c426c6f636b4e756d6265723e000200484d696e4368616c6c656e6765506572696f640800c50201484d696e4368616c6c656e6765506572696f6400001902014c4f7074696f6e3c426c6f636b4e756d6265723e000300a453797374656d5574696c69736174696f6e4c6f7765725468726573686f6c6450657263656e746167650800c90201a453797374656d5574696c69736174696f6e4c6f7765725468726573686f6c6450657263656e746167650000f105013c4f7074696f6e3c50657262696c6c3e000400a453797374656d5574696c69736174696f6e55707065725468726573686f6c6450657263656e746167650800cd0201a453797374656d5574696c69736174696f6e55707065725468726573686f6c6450657263656e746167650000f105013c4f7074696f6e3c50657262696c6c3e000500444d6f73746c79537461626c6550726963650800d10201444d6f73746c79537461626c6550726963650000a105013c4f7074696f6e3c42616c616e63653e000600204d617850726963650800d50201204d617850726963650000a105013c4f7074696f6e3c42616c616e63653e000700204d696e50726963650800d90201204d696e50726963650000a105013c4f7074696f6e3c42616c616e63653e0008004c55707065724578706f6e656e74466163746f720800dd02014c55707065724578706f6e656e74466163746f7200001902012c4f7074696f6e3c7533323e0009004c4c6f7765724578706f6e656e74466163746f720800e102014c4c6f7765724578706f6e656e74466163746f7200001902012c4f7074696f6e3c7533323e000a005c5a65726f53697a654275636b65744669786564526174650800e502015c5a65726f53697a654275636b65744669786564526174650000a105013c4f7074696f6e3c42616c616e63653e000b0050496465616c5574696c69736174696f6e526174650800e9020150496465616c5574696c69736174696f6e526174650000f105013c4f7074696f6e3c50657262696c6c3e000c00244465636179526174650800ed0201244465636179526174650000f105013c4f7074696f6e3c50657262696c6c3e000d00484d696e696d756d54726561737572794375740800f10201484d696e696d756d54726561737572794375740000f105013c4f7074696f6e3c50657262696c6c3e000e00484d6178696d756d54726561737572794375740800f50201484d6178696d756d54726561737572794375740000f105013c4f7074696f6e3c50657262696c6c3e000f006442737053746f7053746f72696e6746696c6550656e616c74790800f902016442737053746f7053746f72696e6746696c6550656e616c74790000a105013c4f7074696f6e3c42616c616e63653e00100000f10504184f7074696f6e0404540109030108104e6f6e6500000010536f6d65040009030000010000f5050c2c70616c6c65745f7375646f1870616c6c6574144572726f720404540001042c526571756972655375646f0000048053656e646572206d75737420626520746865205375646f206163636f756e742e04684572726f7220666f7220746865205375646f2070616c6c65742ef9050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540100045300000400a401185665633c543e0000fd050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454010106045300000400050601185665633c543e000001060c6470616c6c65745f636f6c6c61746f725f73656c656374696f6e1870616c6c65743443616e646964617465496e666f08244163636f756e74496401001c42616c616e636501180008010c77686f0001244163636f756e74496400011c6465706f73697418011c42616c616e63650000050600000201060009060c6470616c6c65745f636f6c6c61746f725f73656c656374696f6e1870616c6c6574144572726f7204045400014444546f6f4d616e7943616e646964617465730000048c5468652070616c6c65742068617320746f6f206d616e792063616e646964617465732e5c546f6f466577456c696769626c65436f6c6c61746f7273000104ac4c656176696e6720776f756c6420726573756c7420696e20746f6f206665772063616e646964617465732e40416c726561647943616e6469646174650002047c4163636f756e7420697320616c726561647920612063616e6469646174652e304e6f7443616e6469646174650003046c4163636f756e74206973206e6f7420612063616e6469646174652e50546f6f4d616e79496e76756c6e657261626c65730004048454686572652061726520746f6f206d616e7920496e76756c6e657261626c65732e4c416c7265616479496e76756c6e657261626c650005048c4163636f756e7420697320616c726561647920616e20496e76756c6e657261626c652e3c4e6f74496e76756c6e657261626c650006047c4163636f756e74206973206e6f7420616e20496e76756c6e657261626c652e5c4e6f4173736f63696174656456616c696461746f7249640007049c4163636f756e7420686173206e6f206173736f6369617465642076616c696461746f722049442e5856616c696461746f724e6f74526567697374657265640008048c56616c696461746f72204944206973206e6f742079657420726567697374657265642e6c496e73657274546f43616e6469646174654c6973744661696c65640009049c436f756c64206e6f7420696e7365727420696e207468652063616e646964617465206c6973742e7452656d6f766546726f6d43616e6469646174654c6973744661696c6564000a04a4436f756c64206e6f742072656d6f76652066726f6d207468652063616e646964617465206c6973742e344465706f736974546f6f4c6f77000b04f44e6577206465706f73697420616d6f756e7420776f756c642062652062656c6f7720746865206d696e696d756d2063616e64696461637920626f6e642e6455706461746543616e6469646174654c6973744661696c6564000c0490436f756c64206e6f7420757064617465207468652063616e646964617465206c6973742e40496e73756666696369656e74426f6e64000d0429014465706f73697420616d6f756e7420697320746f6f206c6f7720746f2074616b652074686520746172676574277320736c6f7420696e207468652063616e646964617465206c6973742e5054617267657449734e6f7443616e646964617465000e042d0154686520746172676574206163636f756e7420746f206265207265706c6163656420696e207468652063616e646964617465206c697374206973206e6f7420612063616e6469646174652e404964656e746963616c4465706f736974000f040d015468652075706461746564206465706f73697420616d6f756e7420697320657175616c20746f2074686520616d6f756e7420616c72656164792072657365727665642e40496e76616c6964556e726573657276650010043d0143616e6e6f74206c6f7765722063616e64696461637920626f6e64207768696c65206f6363757079696e6720612066757475726520636f6c6c61746f7220736c6f7420696e20746865206c6973742e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e0d06000002110600110600000408007904001506000004081906380019060c1c73705f636f72651863727970746f244b65795479706549640000040048011c5b75383b20345d00001d060c3870616c6c65745f73657373696f6e1870616c6c6574144572726f7204045400011430496e76616c696450726f6f6600000460496e76616c6964206f776e6572736869702070726f6f662e5c4e6f4173736f63696174656456616c696461746f7249640001049c4e6f206173736f6369617465642076616c696461746f7220494420666f72206163636f756e742e344475706c6963617465644b65790002046452656769737465726564206475706c6963617465206b65792e184e6f4b657973000304a44e6f206b65797320617265206173736f63696174656420776974682074686973206163636f756e742e244e6f4163636f756e7400040419014b65792073657474696e67206163636f756e74206973206e6f74206c6976652c20736f206974277320696d706f737369626c6520746f206173736f6369617465206b6579732e04744572726f7220666f72207468652073657373696f6e2070616c6c65742e21060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454017d04045300000400250601185665633c543e000025060000027d04002906084873705f636f6e73656e7375735f736c6f747310536c6f740000040030010c75363400002d06000004082906100031060c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401e9010453000004003506012c42547265655365743c543e000035060420425472656553657404045401e90100040039060000003906000002e901003d060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454014106045300000400490601185665633c543e00004106086463756d756c75735f70616c6c65745f78636d705f7175657565584f7574626f756e644368616e6e656c44657461696c730000140124726563697069656e74e90101185061726149640001147374617465450601344f7574626f756e6453746174650001347369676e616c735f6578697374200110626f6f6c00012c66697273745f696e6465785d03010c7531360001286c6173745f696e6465785d03010c75313600004506086463756d756c75735f70616c6c65745f78636d705f7175657565344f7574626f756e645374617465000108084f6b0000002453757370656e6465640001000049060000024106004d0600000408e9015d030051060c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401080453000004003801185665633c543e00005506086463756d756c75735f70616c6c65745f78636d705f71756575653c5175657565436f6e6669674461746100000c014473757370656e645f7468726573686f6c6410010c75333200013864726f705f7468726573686f6c6410010c753332000140726573756d655f7468726573686f6c6410010c753332000059060c6463756d756c75735f70616c6c65745f78636d705f71756575651870616c6c6574144572726f72040454000114384261645175657565436f6e666967000004110153657474696e672074686520717565756520636f6e666967206661696c65642073696e6365206f6e65206f66206974732076616c7565732077617320696e76616c69642e40416c726561647953757370656e6465640001048c54686520657865637574696f6e20697320616c72656164792073757370656e6465642e38416c7265616479526573756d65640002048454686520657865637574696f6e20697320616c726561647920726573756d65642e74546f6f4d616e794163746976654f7574626f756e644368616e6e656c73000304b054686572652061726520746f6f206d616e7920616374697665206f7574626f756e64206368616e6e656c732e18546f6f4269670004045c546865206d65737361676520697320746f6f206269672e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e5d060c2870616c6c65745f78636d1870616c6c65742c5175657279537461747573042c426c6f636b4e756d6265720110010c1c50656e64696e67100124726573706f6e646572d901014456657273696f6e65644c6f636174696f6e00014c6d617962655f6d617463685f71756572696572610601644f7074696f6e3c56657273696f6e65644c6f636174696f6e3e0001306d617962655f6e6f74696679650601404f7074696f6e3c2875382c207538293e00011c74696d656f757410012c426c6f636b4e756d6265720000003c56657273696f6e4e6f7469666965720801186f726967696ed901014456657273696f6e65644c6f636174696f6e00012469735f616374697665200110626f6f6c000100145265616479080120726573706f6e73656d06014456657273696f6e6564526573706f6e7365000108617410012c426c6f636b4e756d62657200020000610604184f7074696f6e04045401d9010108104e6f6e6500000010536f6d650400d9010000010000650604184f7074696f6e0404540169060108104e6f6e6500000010536f6d650400690600000100006906000004080808006d06080c78636d4456657273696f6e6564526573706f6e736500010c08563204009904013076323a3a526573706f6e73650002000856330400c904013076333a3a526573706f6e736500030008563404003101013076343a3a526573706f6e73650004000071060000040810d9010075060000040c3028100079060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454017d06045300000400810601185665633c543e00007d0600000408d901100081060000027d060085060c2870616c6c65745f78636d1870616c6c65745456657273696f6e4d6967726174696f6e53746167650001105c4d696772617465537570706f7274656456657273696f6e0000005c4d69677261746556657273696f6e4e6f74696669657273000100504e6f7469667943757272656e745461726765747304008906013c4f7074696f6e3c5665633c75383e3e000200684d696772617465416e644e6f746966794f6c645461726765747300030000890604184f7074696f6e04045401380108104e6f6e6500000010536f6d6504003800000100008d060000040c100021050091060c2870616c6c65745f78636d1870616c6c65746852656d6f74654c6f636b656446756e6769626c655265636f72640848436f6e73756d65724964656e7469666965720198304d6178436f6e73756d6572730000100118616d6f756e74180110753132380001146f776e6572d901014456657273696f6e65644c6f636174696f6e0001186c6f636b6572d901014456657273696f6e65644c6f636174696f6e000124636f6e73756d657273950601d0426f756e6465645665633c28436f6e73756d65724964656e7469666965722c2075313238292c204d6178436f6e73756d6572733e000095060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540199060453000004009d0601185665633c543e00009906000004089818009d06000002990600a1060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401a506045300000400a90601185665633c543e0000a5060000040818d90100a906000002a50600ad060c2870616c6c65745f78636d1870616c6c6574144572726f720404540001602c556e726561636861626c650000085d0154686520646573697265642064657374696e6174696f6e2077617320756e726561636861626c652c2067656e6572616c6c7920626563617573652074686572652069732061206e6f20776179206f6620726f7574696e6718746f2069742e2c53656e644661696c757265000108410154686572652077617320736f6d65206f746865722069737375652028692e652e206e6f7420746f20646f207769746820726f7574696e672920696e2073656e64696e6720746865206d6573736167652ec8506572686170732061206c61636b206f6620737061636520666f7220627566666572696e6720746865206d6573736167652e2046696c74657265640002049c546865206d65737361676520657865637574696f6e206661696c73207468652066696c7465722e48556e776569676861626c654d657373616765000304b4546865206d65737361676527732077656967687420636f756c64206e6f742062652064657465726d696e65642e6044657374696e6174696f6e4e6f74496e7665727469626c65000404dc5468652064657374696e6174696f6e20604c6f636174696f6e602070726f76696465642063616e6e6f7420626520696e7665727465642e14456d707479000504805468652061737365747320746f2062652073656e742061726520656d7074792e3843616e6e6f745265616e63686f720006043501436f756c64206e6f742072652d616e63686f72207468652061737365747320746f206465636c61726520746865206665657320666f72207468652064657374696e6174696f6e20636861696e2e34546f6f4d616e79417373657473000704c4546f6f206d616e79206173736574732068617665206265656e20617474656d7074656420666f72207472616e736665722e34496e76616c69644f726967696e000804784f726967696e20697320696e76616c696420666f722073656e64696e672e2842616456657273696f6e00090421015468652076657273696f6e206f6620746865206056657273696f6e6564602076616c75652075736564206973206e6f742061626c6520746f20626520696e7465727072657465642e2c4261644c6f636174696f6e000a08410154686520676976656e206c6f636174696f6e20636f756c64206e6f7420626520757365642028652e672e20626563617573652069742063616e6e6f742062652065787072657373656420696e2074686560646573697265642076657273696f6e206f662058434d292e384e6f537562736372697074696f6e000b04bc546865207265666572656e63656420737562736372697074696f6e20636f756c64206e6f7420626520666f756e642e44416c726561647953756273637269626564000c041101546865206c6f636174696f6e20697320696e76616c69642073696e636520697420616c726561647920686173206120737562736372697074696f6e2066726f6d2075732e5843616e6e6f74436865636b4f757454656c65706f7274000d042901436f756c64206e6f7420636865636b2d6f7574207468652061737365747320666f722074656c65706f72746174696f6e20746f207468652064657374696e6174696f6e20636861696e2e284c6f7742616c616e6365000e044101546865206f776e657220646f6573206e6f74206f776e2028616c6c29206f662074686520617373657420746861742074686579207769736820746f20646f20746865206f7065726174696f6e206f6e2e30546f6f4d616e794c6f636b73000f04c0546865206173736574206f776e65722068617320746f6f206d616e79206c6f636b73206f6e207468652061737365742e4c4163636f756e744e6f74536f7665726569676e001004310154686520676976656e206163636f756e74206973206e6f7420616e206964656e7469666961626c6520736f7665726569676e206163636f756e7420666f7220616e79206c6f636174696f6e2e28466565734e6f744d65740011042901546865206f7065726174696f6e207265717569726564206665657320746f20626520706169642077686963682074686520696e69746961746f7220636f756c64206e6f74206d6565742e304c6f636b4e6f74466f756e64001204f4412072656d6f7465206c6f636b20776974682074686520636f72726573706f6e64696e67206461746120636f756c64206e6f7420626520666f756e642e14496e557365001304490154686520756e6c6f636b206f7065726174696f6e2063616e6e6f742073756363656564206265636175736520746865726520617265207374696c6c20636f6e73756d657273206f6620746865206c6f636b2e68496e76616c69644173736574556e6b6e6f776e52657365727665001504f0496e76616c69642061737365742c207265736572766520636861696e20636f756c64206e6f742062652064657465726d696e656420666f722069742e78496e76616c69644173736574556e737570706f72746564526573657276650016044501496e76616c69642061737365742c20646f206e6f7420737570706f72742072656d6f7465206173736574207265736572766573207769746820646966666572656e7420666565732072657365727665732e3c546f6f4d616e7952657365727665730017044901546f6f206d616e7920617373657473207769746820646966666572656e742072657365727665206c6f636174696f6e732068617665206265656e20617474656d7074656420666f72207472616e736665722e604c6f63616c457865637574696f6e496e636f6d706c6574650018047c4c6f63616c2058434d20657865637574696f6e20696e636f6d706c6574652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742eb106085070616c6c65745f6d6573736167655f717565756524426f6f6b537461746504344d6573736167654f726967696e01e50100180114626567696e10012450616765496e64657800010c656e6410012450616765496e646578000114636f756e7410012450616765496e64657800014072656164795f6e65696768626f757273b50601844f7074696f6e3c4e65696768626f7572733c4d6573736167654f726967696e3e3e0001346d6573736167655f636f756e7430010c75363400011073697a6530010c7536340000b50604184f7074696f6e04045401b9060108104e6f6e6500000010536f6d650400b9060000010000b906085070616c6c65745f6d6573736167655f7175657565284e65696768626f75727304344d6573736167654f726967696e01e5010008011070726576e50101344d6573736167654f726967696e0001106e657874e50101344d6573736167654f726967696e0000bd0600000408e5011000c106085070616c6c65745f6d6573736167655f71756575651050616765081053697a650110204865617053697a65000018012472656d61696e696e6710011053697a6500013872656d61696e696e675f73697a6510011053697a6500012c66697273745f696e64657810011053697a65000114666972737410011053697a650001106c61737410011053697a6500011068656170c506019c426f756e6465645665633c75382c20496e746f5533323c4865617053697a652c2053697a653e3e0000c5060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000c9060c5070616c6c65745f6d6573736167655f71756575651870616c6c6574144572726f720404540001242c4e6f745265617061626c65000008490150616765206973206e6f74207265617061626c65206265636175736520697420686173206974656d732072656d61696e696e6720746f2062652070726f63657373656420616e64206973206e6f74206f6c641c656e6f7567682e184e6f50616765000104845061676520746f2062652072656170656420646f6573206e6f742065786973742e244e6f4d657373616765000204a8546865207265666572656e636564206d65737361676520636f756c64206e6f7420626520666f756e642e40416c726561647950726f6365737365640003040101546865206d6573736167652077617320616c72656164792070726f63657373656420616e642063616e6e6f742062652070726f63657373656420616761696e2e18517565756564000404ac546865206d6573736167652069732071756575656420666f722066757475726520657865637574696f6e2e48496e73756666696369656e74576569676874000504190154686572652069732074656d706f726172696c79206e6f7420656e6f7567682077656967687420746f20636f6e74696e756520736572766963696e67206d657373616765732e6054656d706f726172696c79556e70726f6365737361626c65000610a854686973206d6573736167652069732074656d706f726172696c7920756e70726f6365737361626c652e00590153756368206572726f7273206172652065787065637465642c20627574206e6f742067756172616e746565642c20746f207265736f6c7665207468656d73656c766573206576656e7475616c6c79207468726f756768247265747279696e672e2c517565756550617573656400070cec5468652071756575652069732070617573656420616e64206e6f206d6573736167652063616e2062652065786563757465642066726f6d2069742e001d01546869732063616e206368616e676520617420616e792074696d6520616e64206d6179207265736f6c766520696e20746865206675747572652062792072652d747279696e672e4c526563757273697665446973616c6c6f7765640008043101416e6f746865722063616c6c20697320696e2070726f677265737320616e64206e6565647320746f2066696e697368206265666f726520746869732063616c6c2063616e2068617070656e2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ecd060c6070616c6c65745f73746f726167655f70726f766964657273147479706573345369676e557052657175657374040454000008014873705f7369676e5f75705f72657175657374d10601605369676e5570526571756573745370506172616d733c543e0001086174100144426c6f636b4e756d626572466f723c543e0000d1060c6070616c6c65745f73746f726167655f70726f766964657273147479706573545369676e5570526571756573745370506172616d73040454000108544261636b757053746f7261676550726f76696465720400d50601604261636b757053746f7261676550726f76696465723c543e0000004c4d61696e53746f7261676550726f76696465720400d906018c4d61696e53746f7261676550726f76696465725369676e5570526571756573743c543e00010000d5060c6070616c6c65745f73746f726167655f70726f766964657273147479706573544261636b757053746f7261676550726f76696465720404540000240120636170616369747930014853746f7261676544617461556e69743c543e00013463617061636974795f7573656430014853746f7261676544617461556e69743c543e0001386d756c7469616464726573736573f50101444d756c74696164647265737365733c543e000110726f6f743401544d65726b6c655061747269636961526f6f743c543e0001506c6173745f63617061636974795f6368616e6765100144426c6f636b4e756d626572466f723c543e0001346f776e65725f6163636f756e74000130543a3a4163636f756e74496400013c7061796d656e745f6163636f756e74000130543a3a4163636f756e74496400014472657075746174696f6e5f77656967687410015c52657075746174696f6e576569676874547970653c543e0001347369676e5f75705f626c6f636b100144426c6f636b4e756d626572466f723c543e0000d9060c6070616c6c65745f73746f726167655f70726f766964657273147479706573804d61696e53746f7261676550726f76696465725369676e55705265717565737404045400000801206d73705f696e666fdd0601584d61696e53746f7261676550726f76696465723c543e00012876616c75655f70726f700502014c56616c756550726f706f736974696f6e3c543e0000dd060c6070616c6c65745f73746f726167655f70726f7669646572731474797065734c4d61696e53746f7261676550726f766964657204045400001c0120636170616369747930014853746f7261676544617461556e69743c543e00013463617061636974795f7573656430014853746f7261676544617461556e69743c543e0001386d756c7469616464726573736573f50101444d756c74696164647265737365733c543e0001506c6173745f63617061636974795f6368616e6765100144426c6f636b4e756d626572466f723c543e0001346f776e65725f6163636f756e74000130543a3a4163636f756e74496400013c7061796d656e745f6163636f756e74000130543a3a4163636f756e7449640001347369676e5f75705f626c6f636b100144426c6f636b4e756d626572466f723c543e0000e1060c6070616c6c65745f73746f726167655f70726f766964657273147479706573184275636b657404045400001c0110726f6f743401544d65726b6c655061747269636961526f6f743c543e00011c757365725f6964000130543a3a4163636f756e7449640001186d73705f6964150201804f7074696f6e3c4d61696e53746f7261676550726f766964657249643c543e3e00011c70726976617465200110626f6f6c000150726561645f6163636573735f67726f75705f6964190201704f7074696f6e3c543a3a5265616441636365737347726f757049643e00011073697a6530014853746f7261676544617461556e69743c543e00013476616c75655f70726f705f6964150201444f7074696f6e3c4861736849643c543e3e0000e50600000408343400e9060c6070616c6c65745f73746f726167655f70726f7669646572731870616c6c6574144572726f720404540001a444416c72656164795265676973746572656400000471014572726f72207468726f776e207768656e2061207573657220747269657320746f207369676e20757020617320612053502062757420697320616c726561647920726567697374657265642061732061204d5350206f72204253502e485369676e55704e6f7452657175657374656400010459014572726f72207468726f776e207768656e2061207573657220747269657320746f20636f6e6669726d2061207369676e207570207468617420776173206e6f74207265717565737465642070726576696f75736c792e505369676e55705265717565737450656e64696e670002048d014572726f72207468726f776e207768656e2061207573657220747269657320746f207265717565737420746f207369676e207570207768656e20697420616c7265616479206861732061207369676e20757020726571756573742070656e64696e672e384e6f4d756c7469416464726573730003040d014572726f72207468726f776e207768656e2061207573657220747269657320746f207369676e20757020776974686f757420616e79206d756c7469616464726573732e4c496e76616c69644d756c74694164647265737300040491014572726f72207468726f776e207768656e2061207573657220747269657320746f207369676e20757020617320612053502062757420616e79206f66207468652070726f7669646564206d756c746961646472657373657320697320696e76616c69642e3453746f72616765546f6f4c6f7700050401024572726f72207468726f776e207768656e2061207573657220747269657320746f207369676e207570206f72206368616e67652069747320636170616369747920746f2073746f7265206c6573732073746f72616765207468616e20746865206d696e696d756d207265717569726564206279207468652072756e74696d652e404e6f74456e6f75676842616c616e636500060431024572726f72207468726f776e207768656e2061207573657220646f6573206e6f74206861766520656e6f7567682062616c616e636520746f2070617920746865206465706f736974207468617420697420776f756c6420696e637572206279207369676e696e672075702061732061205350206f72206368616e67696e67206974732063617061636974792e4443616e6e6f74486f6c644465706f736974000704f9014572726f72207468726f776e207768656e207468652072756e74696d652063616e6e6f7420686f6c6420746865207265717569726564206465706f7369742066726f6d20746865206163636f756e7420746f2072656769737465722069742061732061205350206f72206368616e6765206974732063617061636974792e4453746f726167655374696c6c496e55736500080439014572726f72207468726f776e207768656e2061207573657220747269657320746f207369676e206f6666206173206120535020627574207374696c6c2068617320757365642073746f726167652e585369676e4f6666506572696f644e6f745061737365640009047d014572726f72207468726f776e207768656e2061207573657220747269657320746f207369676e206f66662061732061204253502062757420746865207369676e206f666620706572696f6420686173206e6f7420706173736564207965742e5452616e646f6d6e6573734e6f7456616c6964596574000a048d014572726f72207468726f776e207768656e2061207573657220747269657320746f20636f6e6669726d2061207369676e20757020627574207468652072616e646f6d6e65737320697320746f6f20667265736820746f2062652075736564207965742e505369676e55705265717565737445787069726564000b048d014572726f72207468726f776e207768656e2061207573657220747269657320746f20636f6e6669726d2061207369676e2075702062757420746f6f206d7563682074696d6520686173207061737365642073696e63652074686520726571756573742e784e657743617061636974794c6573735468616e5573656453746f72616765000c0451014572726f72207468726f776e207768656e2061207573657220747269657320746f206368616e67652069747320636170616369747920746f206c657373207468616e2069747320757365642073746f726167652e804e65774361706163697479457175616c7343757272656e744361706163697479000d045d014572726f72207468726f776e207768656e2061207573657220747269657320746f206368616e67652069747320636170616369747920746f207468652073616d652076616c756520697420616c7265616479206861732e544e6577436170616369747943616e7442655a65726f000e04c9014572726f72207468726f776e207768656e2061207573657220747269657320746f206368616e67652069747320636170616369747920746f207a65726f20287468657265206172652073706563696669632065787472696e7369637320746f207369676e206f66662061732061205350292e4c4e6f74456e6f75676854696d65506173736564000f04d9014572726f72207468726f776e207768656e206120535020747269657320746f206368616e6765206974732063617061636974792062757420697420686173206e6f74206265656e20656e6f7567682074696d652073696e636520746865206c6173742074696d65206974206368616e6765642069742e944e65775573656443617061636974794578636565647353746f726167654361706163697479001004c5014572726f72207468726f776e207768656e206120535020747269657320746f206368616e6765206974732063617061636974792062757420746865206e6577206361706163697479206973206e6f7420656e6f75676820746f2073746f72652074686520757365642073746f726167652e344e6f745265676973746572656400110465014572726f72207468726f776e207768656e2061207573657220747269657320746f20696e746572616374206173206120535020627574206973206e6f7420726567697374657265642061732061204d5350206f72204253502e204e6f55736572496400120431014572726f72207468726f776e207768656e20747279696e6720746f20676574206120726f6f742066726f6d2061204d535020776974686f75742070617373696e67206120557365722049442e284e6f4275636b6574496400130439014572726f72207468726f776e207768656e20747279696e6720746f20676574206120726f6f742066726f6d2061204d535020776974686f75742070617373696e672061204275636b65742049442e6c537052656769737465726564427574446174614e6f74466f756e64001404d1014572726f72207468726f776e207768656e206120757365722068617320612053502049442061737369676e656420746f2069742062757420746865205350206461746120646f6573206e6f7420657869737420696e2073746f726167652028496e636f6e73697374656e6379206572726f72292e384275636b65744e6f74466f756e64001504d84572726f72207468726f776e207768656e2061206275636b6574204944206973206e6f7420666f756e6420696e2073746f726167652e4c4275636b6574416c7265616479457869737473001604e04572726f72207468726f776e207768656e2061206275636b657420494420616c72656164792065786973747320696e2073746f726167652e384275636b65744e6f74456d707479001704c44275636b65742063616e6e6f742062652064656c657465642062656361757365206974206973206e6f7420656d7074792e5c417070656e644275636b6574546f4d73704661696c656400180445014572726f72207468726f776e207768656e2061206275636b657420494420636f756c64206e6f7420626520616464656420746f20746865206c697374206f66206275636b657473206f662061204d53502e5050726f76696465724e6f74536c61736861626c650019043d014572726f72207468726f776e207768656e20616e20617474656d707420776173206d61646520746f20736c61736820616e20756e736c61736861626c652053746f726167652050726f76696465722e744275636b65744d757374486176654d7370466f724f7065726174696f6e001a0421014572726f72207468726f776e207768656e20616e206f7065726174696f6e20726571756972657320616e204d535020746f2062652073746f72696e6720746865206275636b65742e784d756c74694164647265737365734d6178416d6f756e7452656163686564001b0411024572726f72207468726f776e207768656e20612050726f766964657220747269657320746f206164642061206e6577204d756c74694164647265737320746f20697473206163636f756e742062757420697420616c72656164792068617320746865206d6178696d756d20616d6f756e74206f66206d756c74696164647265737365732e504d756c7469416464726573734e6f74466f756e64001c04d1014572726f72207468726f776e207768656e20612050726f766964657220747269657320746f2064656c6574652061204d756c7469416464726573732066726f6d20697473206163636f756e742062757420697420646f6573206e6f7420686176652074686174204d756c7469416464726573732e644d756c746941646472657373416c7265616479457869737473001d0489014572726f72207468726f776e207768656e20612050726f766964657220747269657320746f206164642061206e6577204d756c74694164647265737320746f20697473206163636f756e742062757420697420616c7265616479206578697374732e744c6173744d756c74694164647265737343616e74426552656d6f766564001e0451014572726f72207468726f776e207768656e20612050726f766964657220747269657320746f2072656d6f766520746865206c617374204d756c7469416464726573732066726f6d20697473206163636f756e742e6056616c756550726f706f736974696f6e4e6f74466f756e64001f04e04572726f72207468726f776e207768656e207468652076616c75652070726f706f736974696f6e206964206973206e6f7420666f756e642e7456616c756550726f706f736974696f6e416c726561647945786973747300200411014572726f72207468726f776e207768656e2076616c75652070726f706f736974696f6e20756e646572206120676976656e20696420616c7265616479206578697374732e7056616c756550726f706f736974696f6e4e6f74417661696c61626c65002104dc4572726f72207468726f776e207768656e20612076616c75652070726f706f736974696f6e206973206e6f7420617661696c61626c652e784669786564526174655061796d656e7453747265616d4e6f74466f756e64002204d84572726f72207468726f776e207768656e2061206669786564207061796d656e742073747265616d206973206e6f7420666f756e642e684d7370416c726561647941737369676e6564546f4275636b657400230421014572726f72207468726f776e207768656e206368616e67696e6720746865204d5350206f662061206275636b657420746f207468652073616d652061737369676e6564204d53502e584275636b657453697a65457863656564734c696d697400240489014572726f72207468726f776e207768656e2061207573657220657863656564656420746865206275636b65742064617461206c696d6974206261736564206f6e20746865206173736f6369617465642076616c75652070726f706f736974696f6e2e6c4275636b65744861734e6f56616c756550726f706f736974696f6e002504d04572726f72207468726f776e207768656e2061206275636b657420686173206e6f2076616c75652070726f706f736974696f6e2e68496e76616c6964456e636f64656446696c654d6574616461746100260475014572726f72207468726f776e207768656e206661696c696e6720746f206465636f646520746865206d657461646174612066726f6d206120726563656976656420747269652076616c75652074686174207761732072656d6f7665642e5c496e76616c6964456e636f6465644163636f756e74496400270451014572726f72207468726f776e207768656e206661696c696e6720746f206465636f646520746865206f776e6572204163636f756e742049442066726f6d20746865207265636569766564206d657461646174612e545061796d656e7453747265616d4e6f74466f756e6400280421014572726f72207468726f776e207768656e20747279696e6720746f207570646174652061207061796d656e742073747265616d207468617420646f6573206e6f742065786973742e044901546865206572726f727320746861742063616e206265207468726f776e20627920746869732070616c6c657420746f20696e666f726d2075736572732061626f757420776861742077656e742077726f6e67ed060c4870616c6c65745f66696c655f73797374656d1474797065735853746f72616765526571756573744d6574616461746104045400002c01307265717565737465645f61741001345469636b4e756d6265723c543e0001146f776e6572000130543a3a4163636f756e7449640001246275636b65745f69643401384275636b65744964466f723c543e0001206c6f636174696f6e1d02013c46696c654c6f636174696f6e3c543e00012c66696e6765727072696e7434013846696e6765727072696e743c543e00011073697a6530013853746f72616765446174613c543e00010c6d7370f10601804f7074696f6e3c2850726f76696465724964466f723c543e2c20626f6f6c293e000134757365725f706565725f696473f5010128506565724964733c543e000134627370735f72657175697265641001605265706c69636174696f6e546172676574547970653c543e000138627370735f636f6e6669726d65641001605265706c69636174696f6e546172676574547970653c543e000140627370735f766f6c756e7465657265641001605265706c69636174696f6e546172676574547970653c543e0000f10604184f7074696f6e04045401f5060108104e6f6e6500000010536f6d650400f5060000010000f50600000408342000f9060c4870616c6c65745f66696c655f73797374656d1474797065736853746f7261676552657175657374427370734d657461646174610404540000040124636f6e6669726d6564200110626f6f6c0000fd060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540134045300000400250201185665633c543e000001070c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454010507045300000400090701185665633c543e000005070000040800340009070000020507000d070c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401e506045300000400110701185665633c543e00001107000002e5060015070c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401e506045300000400110701185665633c543e00001907000004081030001d070c4870616c6c65745f66696c655f73797374656d147479706573644d6f76654275636b6574526571756573744d657461646174610404540000040124726571756573746572000130543a3a4163636f756e744964000021070c4870616c6c65745f66696c655f73797374656d1870616c6c6574144572726f72040454000105017c53746f7261676552657175657374416c726561647952656769737465726564000004d853746f72616765207265717565737420616c7265616479207265676973746572656420666f722074686520676976656e2066696c652e5853746f72616765526571756573744e6f74466f756e64000104c853746f726167652072657175657374206e6f74207265676973746572656420666f722074686520676976656e2066696c652e6053746f72616765526571756573744e6f745265766f6b656400020415014f7065726174696f6e206e6f7420616c6c6f776564207768696c65207468652073746f726167652072657175657374206973206e6f74206265696e67207265766f6b65642e5053746f7261676552657175657374457869737473000304dc4f7065726174696f6e206e6f7420616c6c6f776564207768696c65207468652073746f726167652072657175657374206578697374732e745265706c69636174696f6e54617267657443616e6e6f7442655a65726f000404885265706c69636174696f6e207461726765742063616e6e6f74206265207a65726f2e644273707352657175697265644578636565647354617267657400050411014253507320726571756972656420666f722073746f7261676520726571756573742063616e6e6f742065786365656420746865206d6178696d756d20616c6c6f7765642e1c4e6f7441427370000604544163636f756e74206973206e6f742061204253502e1c4e6f74414d7370000704544163636f756e74206973206e6f742061204d53502e184e6f74415370000804504163636f756e74206973206e6f7420612053502e444273704e6f74566f6c756e746565726564000904c042535020686173206e6f7420766f6c756e74656572656420746f2073746f72652074686520676976656e2066696c652e3c4273704e6f74436f6e6669726d6564000a04b442535020686173206e6f7420636f6e6669726d65642073746f72696e672074686520676976656e2066696c652e4c427370416c7265616479436f6e6669726d6564000b04c44253502068617320616c726561647920636f6e6669726d65642073746f72696e672074686520676976656e2066696c652e8c53746f726167655265717565737442737073526571756972656446756c66696c6c6564000c04f44e756d626572206f66204253507320726571756972656420666f722073746f72616765207265717565737420686173206265656e20726561636865642e54427370416c7265616479566f6c756e746565726564000d04c042535020616c726561647920766f6c756e74656572656420746f2073746f72652074686520676976656e2066696c652e74496e73756666696369656e74417661696c61626c654361706163697479000e04ec535020646f6573206e6f74206861766520656e6f7567682073746f7261676520636170616369747920746f2073746f7265207468652066696c652ea0556e65787065637465644e756d6265724f6652656d6f766564566f6c756e74656572656442737073000f0485014e756d626572206f662072656d6f766564204253507320766f6c756e7465657265642066726f6d2073746f7261676520726571756573742070726566697820646964206e6f74206d6174636820746865206578706563746564206e756d6265722e9053746f7261676552657175657374457870697265644e6f536c6f74417661696c61626c6500100431014e6f20736c6f7420617661696c61626c6520666f756e6420696e20626c6f636b7320746f20696e736572742073746f7261676520726571756573742065787069726174696f6e2074696d652e6c53746f72616765526571756573744e6f74417574686f72697a6564001104b44e6f7420617574686f72697a656420746f2064656c657465207468652073746f7261676520726571756573742e544d6178426c6f636b4e756d6265725265616368656400120859014572726f72206372656174656420696e20323032342e20496620796f752073656520746869732c20796f75206172652077656c6c206265796f6e64207468652073696e67756c617269747920616e642073686f756c648070726f6261626c792073746f70207573696e6720746869732070616c6c65742e444661696c6564546f456e636f6465427370001304844661696c656420746f20656e636f64652042535020696420617320736c6963652e644661696c6564546f456e636f646546696e6765727072696e74001404984661696c656420746f20656e636f64652066696e6765727072696e7420617320736c6963652e5c4661696c6564546f4465636f64655468726573686f6c640015046c4661696c656420746f206465636f6465207468726573686f6c642e3841626f76655468726573686f6c640016049042535020646964206e6f742073756363656564207468726573686f6c6420636865636b2e605468726573686f6c6441726974686d657469634572726f72001704a841726974686d65746963206572726f7220696e207468726573686f6c642063616c63756c6174696f6e2e504661696c656454797065436f6e76657273696f6e001804904661696c656420746f20636f6e7665727420746f207072696d697469766520747970652e344469766964656442795a65726f0019043044697669646564206279203068496d706f737369626c654661696c6564546f47657456616c7565001a04c44661696c656420746f206765742076616c7565207768656e206a75737420636865636b656420697420657869737465642e484275636b657449734e6f7450726976617465001b041d014275636b6574206973206e6f7420707269766174652e2043616c6c20607570646174655f6275636b65745f707269766163796020746f206d616b6520697420707269766174652e384275636b65744e6f74466f756e64001c04544275636b657420646f6573206e6f74206578697374384275636b65744e6f74456d707479001d04504275636b6574206973206e6f7420656d7074792e384e6f744275636b65744f776e6572001e0411014f7065726174696f6e206661696c6564206265636175736520746865206163636f756e74206973206e6f7420746865206f776e6572206f6620746865206275636b65742e5050726f7669646572526f6f744e6f74466f756e64001f047c526f6f74206f66207468652070726f7669646572206e6f7420666f756e642e6445787065637465644e6f6e496e636c7573696f6e50726f6f6600200415014661696c656420746f207665726966792070726f6f663a20726571756972656420746f2070726f7669646520612070726f6f66206f66206e6f6e2d696e636c7573696f6e2e584578706563746564496e636c7573696f6e50726f6f6600210405014661696c656420746f207665726966792070726f6f663a20726571756972656420746f2070726f7669646520612070726f6f66206f6620696e636c7573696f6e2e58496e76616c696446696c654b65794d65746164617461002204c84d6574616461746120646f6573206e6f7420636f72726573706f6e6420746f2065787065637465642066696c65206b65792e5c5468726573686f6c6442656c6f774173796d70746f7465002304d0425350732061737369676e6d656e74207468726573686f6c642063616e6e6f742062652062656c6f77206173796d70746f74652e304e6f7446696c654f776e6572002404d4556e617574686f72697a6564206f7065726174696f6e2c207369676e657220646f6573206e6f74206f776e207468652066696c652e7446696c654b6579416c726561647950656e64696e6744656c6574696f6e0025048846696c65206b657920616c72656164792070656e64696e672064656c6574696f6e2e944d61785573657250656e64696e6744656c6574696f6e526571756573747352656163686564002604d44d6178206e756d626572206f6620757365722070656e64696e672064656c6574696f6e20726571756573747320726561636865642e4c4d73704e6f7453746f72696e674275636b6574002704f8556e617574686f72697a6564206f7065726174696f6e2c207369676e6572206973206e6f7420616e204d5350206f6620746865206275636b65742069642e6446696c654b65794e6f7450656e64696e6744656c6574696f6e002804c046696c65206b6579206e6f7420666f756e6420696e2070656e64696e672064656c6574696f6e2072657175657374732e5046696c6553697a6543616e6e6f7442655a65726f0029046446696c652073697a652063616e6e6f74206265207a65726f2e6c4e6f476c6f62616c52657075746174696f6e576569676874536574002a04804e6f20676c6f62616c2072657075746174696f6e20776569676874207365742e704d6178696d756d5468726573686f6c6443616e6e6f7442655a65726f002b04844d6178696d756d207468726573686f6c642063616e6e6f74206265207a65726f2e9c5469636b52616e6765546f4d6178696d756d5468726573686f6c6443616e6e6f7442655a65726f002c04bc5469636b2072616e676520746f206d6178696d756d207468726573686f6c642063616e6e6f74206265207a65726f2e8450656e64696e6753746f7053746f72696e67526571756573744e6f74466f756e64002d049c50656e64696e672073746f702073746f72696e672072657175657374206e6f7420666f756e642e7c4d696e57616974466f7253746f7053746f72696e674e6f7452656163686564002e0479014d696e696d756d20616d6f756e74206f6620626c6f636b73206265747765656e207468652072657175657374206f70656e696e6720616e64206265696e672061626c6520746f20636f6e6669726d206974206e6f7420726561636865642e9850656e64696e6753746f7053746f72696e6752657175657374416c7265616479457869737473002f04b050656e64696e672073746f702073746f72696e67207265717565737420616c7265616479206578697374732e40557365724e6f74496e736f6c76656e74003004a9014120535020747269656420746f2073746f702073746f72696e672066696c65732066726f6d2061207573657220746861742077617320737570706f7365646c7920696e736f6c76656e742c20627574207468652075736572206973206e6f7420696e736f6c76656e742e384e6f7453656c65637465644d7370003104a101546865204d535020697320747279696e6720746f20636f6e6669726d20746f2073746f726520612066696c652066726f6d20612073746f726167652072657175657374206973206e6f7420746865206f6e652073656c656374656420746f2073746f72652069742e4c4d7370416c7265616479436f6e6669726d6564003204ad01546865204d535020697320747279696e6720746f20636f6e6669726d20746f2073746f726520612066696c652066726f6d20612073746f72616765207265717565737420746861742069742068617320616c726561647920636f6e6669726d656420746f2073746f72652e4452657175657374576974686f75744d73700033049901546865204d535020697320747279696e6720746f20636f6e6669726d20746f2073746f726520612066696c652066726f6d20612073746f726167652072657175657374207468617420646f6573206e6f7420686176652061204d53502061737369676e65642e5c4d7370416c726561647953746f72696e674275636b657400340498546865204d535020697320616c72656164792073746f72696e6720746865206275636b65742e644d6f76654275636b6574526571756573744e6f74466f756e64003504a44d6f7665206275636b65742072657175657374206e6f7420666f756e6420696e2073746f726167652e484275636b657449734265696e674d6f766564003604cc416374696f6e206e6f7420616c6c6f776564207768696c6520746865206275636b6574206973206265696e67206d6f7665642e50427370416c726561647944617461536572766572003704e442535020697320616c7265616479206120646174612073657276657220666f7220746865206d6f7665206275636b657420726571756573742e5842737044617461536572766572734578636565646564003804f4546f6f206d616e7920726567697374657265642064617461207365727665727320666f7220746865206d6f7665206275636b657420726571756573742e7c46696c654d6574616461746150726f63657373696e67517565756546756c6c003904910154686520626f756e64656420766563746f72207468617420686f6c64732066696c65206d6574616461746120746f2070726f636573732069742069732066756c6c206275742074686572652773207374696c6c206d6f726520746f2070726f636573732e54546f6f4d616e794261746368526573706f6e736573003a0490546f6f206d616e7920626174636820726573706f6e73657320746f2070726f636573732e78546f6f4d616e7953746f7261676552657175657374526573706f6e736573003b048c546f6f206d616e792073746f72616765207265717565737420726573706f6e7365732e68496e76616c69644275636b6574496446696c654b657950616972003c049c4275636b657420696420616e642066696c65206b6579207061697220697320696e76616c69642e84496e636f6e73697374656e7453746174654b6579416c7265616479457869737473003d04c44b657920616c72656164792065786973747320696e206d617070696e67207768656e2069742073686f756c64206e6f742e784669786564526174655061796d656e7453747265616d4e6f74466f756e64003e04c04661696c656420746f20666574636820746865207261746520666f7220746865207061796d656e742073747265616d2e4443616e6e6f74486f6c644465706f736974003f04b843616e6e6f7420686f6c6420746865207265717569726564206465706f7369742066726f6d2074686520757365725c4661696c6564546f4765744f776e65724163636f756e74004004b44661696c656420746f20676574206f776e6572206163636f756e74206f66204944206f662070726f7669646572048054686520604572726f726020656e756d206f6620746869732070616c6c65742e25070000040810340029070c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540134045300000400250201185665633c543e00002d070c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540161020453000004006d0201185665633c543e000031070c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401340453000004003507012c42547265655365743c543e00003507042042547265655365740404540134000400250200000039070c5070616c6c65745f70726f6f66735f6465616c65721870616c6c6574144572726f720404540001582c4e6f7450726f76696465720000083847656e6572616c206572726f7273c45468652070726f6f66207375626d6974746572206973206e6f74206120726567697374657265642050726f76696465722e5c4368616c6c656e67657351756575654f766572666c6f7700010c70606368616c6c656e6765602065787472696e736963206572726f72730901546865204368616c6c656e67657351756575652069732066756c6c2e204e6f206d6f7265206d616e75616c206368616c6c656e6765732063616e206265206d616465e4756e74696c20736f6d65206f6620746865206368616c6c656e67657320696e207468652071756575652061726520646973706174636865642e7c5072696f726974794368616c6c656e67657351756575654f766572666c6f770002083101546865205072696f726974794368616c6c656e67657351756575652069732066756c6c2e204e6f206d6f7265207072696f72697479206368616c6c656e6765732063616e206265206d616465e4756e74696c20736f6d65206f6620746865206368616c6c656e67657320696e207468652071756575652061726520646973706174636865642e3c4665654368617267654661696c6564000304e05468652066656520666f72207375626d697474696e672061206368616c6c656e676520636f756c64206e6f7420626520636861726765642e38456d7074794b657950726f6f66730004087c607375626d69745f70726f6f66602065787472696e736963206572726f727388546865726520617265206e6f206b65792070726f6f6673207375626d69747465642e5050726f7669646572526f6f744e6f74466f756e64000504b454686520726f6f7420666f72207468652050726f766964657220636f756c64206e6f7420626520666f756e642e205a65726f526f6f7400060ce850726f7669646572206973207375626d697474696e6720612070726f6f66207768656e207468657920686176652061207a65726f20726f6f742e390150726f7669646572732077697468207a65726f20726f6f747320617265206e6f742070726f766964696e6720616e7920736572766963652c20736f20746865792073686f756c64206e6f74206265487375626d697474696e672070726f6f66732e704e6f5265636f72644f664c6173745375626d697474656450726f6f660007142d0150726f7669646572206973207375626d697474696e6720612070726f6f6620627574207468657265206973206e6f207265636f7264206f6620746865206c617374207469636b2074686579587375626d697474656420612070726f6f6620666f722e390150726f7669646572732077686f2061726520726571756972656420746f207375626d69742070726f6f66732073686f756c6420616c7761797320686176652061207265636f7264206f662074686535016c617374207469636b2074686579207375626d697474656420612070726f6f6620666f722c206f7468657277697365206974206d65616e73207468657920686176656e277420737461727465648c70726f766964696e67207365727669636520666f7220616e792075736572207965742e5450726f76696465725374616b654e6f74466f756e64000804985468652070726f7669646572207374616b6520636f756c64206e6f7420626520666f756e642e245a65726f5374616b65000904dc50726f7669646572206973207375626d697474696e6720612070726f6f6620627574207468656972207374616b65206973207a65726f2e605374616b65436f756c644e6f744265436f6e766572746564000a081101546865207374616b65642062616c616e6365206f66207468652050726f766964657220636f756c64206e6f7420626520636f6e76657274656420746f206075313238602e5901546869732073686f756c64206e6f7420626520706f737369626c652c20617320746865206042616c616e63656020747970652073686f756c6420626520616e20756e7369676e656420696e746567657220747970652e604368616c6c656e6765735469636b4e6f7452656163686564000b04e050726f7669646572206973207375626d697474696e6720612070726f6f6620666f722061207469636b20696e20746865206675747572652e504368616c6c656e6765735469636b546f6f4f6c64000c08510150726f7669646572206973207375626d697474696e6720612070726f6f6620666f722061207469636b206265666f726520746865206c617374207469636b20746869732070616c6c6574207265676973746572733c6368616c6c656e67657320666f722e544368616c6c656e6765735469636b546f6f4c617465000d08450150726f7669646572206973207375626d697474696e6720612070726f6f6620666f722061207469636b20746f6f206c6174652c20692e652e207468617420746865206368616c6c656e676573207469636b450169732067726561746572206f7220657175616c207468616e20606368616c6c656e6765735f7469636b60202b2060543a3a4368616c6c656e67655469636b73546f6c6572616e63653a3a6765742829602e30536565644e6f74466f756e64000e0ca4546865207365656420666f7220746865207469636b20636f756c64206e6f7420626520666f756e642e5101546869732073686f756c64206e6f7420626520706f737369626c6520666f722061207469636b2077697468696e2074686520604368616c6c656e6765486973746f72794c656e677468602072616e67652c20617301017365656473206172652067656e65726174656420666f7220616c6c207469636b732c20616e642073746f7265642077697468696e20746869732072616e67652e70436865636b706f696e744368616c6c656e6765734e6f74466f756e64000f0ca4436865636b706f696e74206368616c6c656e676573206e6f7420666f756e6420696e20626c6f636b2e5d01546869732073686f756c64206f6e6c7920626520706f737369626c6520696620605469636b546f436865636b706f696e744368616c6c656e676573602069732064657265666572656e63656420666f722061207469636b7874686174206973206e6f74206120636865636b706f696e74207469636b2e74466f7265737450726f6f66566572696669636174696f6e4661696c656400100cd854686520666f726573742070726f6f66207375626d6974746564206279207468652050726f766964657220697320696e76616c69642e49015468697320636f756c642062652062656361757365207468652070726f6f66206973206e6f742076616c696420666f722074686520726f6f742c206f722062656361757365207468652070726f6f662069739c6e6f742073756666696369656e7420666f7220746865206368616c6c656e676573206d6164652e404b657950726f6f664e6f74466f756e6400110861015468657265206973206174206c65617374206f6e65206b65792070726f76656e20696e2074686520666f726573742070726f6f662c207468617420646f6573206e6f742068617665206120636f72726573706f6e64696e67286b65792070726f6f662e684b657950726f6f66566572696669636174696f6e4661696c656400120cc441206b65792070726f6f66207375626d6974746564206279207468652050726f766964657220697320696e76616c69642e6d015468697320636f756c642062652062656361757365207468652070726f6f66206973206e6f742076616c696420666f722074686520726f6f74206f662074686174206b65792c206f722062656361757365207468652070726f6f66a86973206e6f742073756666696369656e7420666f7220746865206368616c6c656e676573206d6164652e484661696c6564546f4170706c7944656c7461001304dc4661696c656420746f206170706c792064656c746120746f2074686520666f726573742070726f6f66207061727469616c20747269652e944661696c6564546f55706461746550726f766964657241667465724b657952656d6f76616c001404ec4661696c656420746f20757064617465207468652070726f76696465722061667465722061206b65792072656d6f76616c206d75746174696f6e2e6c546f6f4d616e7956616c696450726f6f665375626d6974746572730015044501546865206c696d6974206f662050726f76696465727320746861742063616e207375626d697420612070726f6f6620696e20612073696e676c65207469636b20686173206265656e20726561636865642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e3d070000040834100041070000040834000045070c5870616c6c65745f7061796d656e745f73747265616d73147479706573584669786564526174655061796d656e7453747265616d04045400001001107261746518013042616c616e63654f663c543e0001446c6173745f636861726765645f7469636b100144426c6f636b4e756d626572466f723c543e000130757365725f6465706f73697418013042616c616e63654f663c543e0001446f75745f6f665f66756e64735f7469636b190201644f7074696f6e3c426c6f636b4e756d626572466f723c543e3e000049070c5870616c6c65745f7061796d656e745f73747265616d731474797065736044796e616d6963526174655061796d656e7453747265616d040454000010013c616d6f756e745f70726f766964656430014c556e69747350726f7669646564466f723c543e00017470726963655f696e6465785f7768656e5f6c6173745f6368617267656418013042616c616e63654f663c543e000130757365725f6465706f73697418013042616c616e63654f663c543e0001446f75745f6f665f66756e64735f7469636b190201644f7074696f6e3c426c6f636b4e756d626572466f723c543e3e00004d070c5870616c6c65745f7061796d656e745f73747265616d731474797065736850726f76696465724c61737443686172676561626c65496e666f04045400000801506c6173745f63686172676561626c655f7469636b100144426c6f636b4e756d626572466f723c543e00012c70726963655f696e64657818013042616c616e63654f663c543e000051070c5870616c6c65745f7061796d656e745f73747265616d731870616c6c6574144572726f72040454000140685061796d656e7453747265616d416c726561647945786973747300000469014572726f72207468726f776e207768656e20612075736572206f6620746869732070616c6c657420747269657320746f206164642061207061796d656e742073747265616d207468617420616c7265616479206578697374732e545061796d656e7453747265616d4e6f74466f756e64000104bd014572726f72207468726f776e207768656e20612075736572206f6620746869732070616c6c657420747269657320746f207570646174652c2072656d6f7665206f72206368617267652061207061796d656e742073747265616d207468617420646f6573206e6f742065786973742e304e6f744150726f766964657200020471014572726f72207468726f776e207768656e2061207573657220747269657320746f206368617267652061207061796d656e742073747265616d20616e642069742773206e6f74206120726567697374657265642050726f76696465726850726f7669646572496e636f6e73697374656e63794572726f7200030435014572726f72207468726f776e207768656e206661696c696e6720746f2067657420746865207061796d656e74206163636f756e74206f66206120726567697374657265642050726f76696465724443616e6e6f74486f6c644465706f736974000404a9014572726f72207468726f776e207768656e207468652073797374656d2063616e277420686f6c642066756e64732066726f6d2074686520557365722061732061206465706f73697420666f72206372656174696e672061206e6577207061796d656e742073747265616d5055706461746552617465546f53616d655261746500050495014572726f72207468726f776e207768656e20747279696e6720746f20757064617465207468652072617465206f6620612066697865642d72617465207061796d656e742073747265616d20746f207468652073616d652072617465206173206265666f726560557064617465416d6f756e74546f53616d65416d6f756e74000604d1014572726f72207468726f776e207768656e20747279696e6720746f207570646174652074686520616d6f756e742070726f7669646564206f6620612064796e616d69632d72617465207061796d656e742073747265616d20746f207468652073616d6520616d6f756e74206173206265666f7265385261746543616e7442655a65726f000704bd024572726f72207468726f776e207768656e20747279696e6720746f206372656174652061206e65772066697865642d72617465207061796d656e742073747265616d207769746820726174652030206f7220757064617465207468652072617465206f6620616e206578697374696e67206f6e6520746f2030202873686f756c64207573652072656d6f76655f66697865645f726174655f7061796d656e745f73747265616d20696e73746561642960416d6f756e7450726f766964656443616e7442655a65726f00080425034572726f72207468726f776e207768656e20747279696e6720746f206372656174652061206e65772064796e616d69632d72617465207061796d656e742073747265616d207769746820616d6f756e742070726f76696465642030206f72207570646174652074686520616d6f756e742070726f7669646564206f6620616e206578697374696e67206f6e6520746f2030202873686f756c64207573652072656d6f76655f64796e616d69635f726174655f7061796d656e745f73747265616d20696e737465616429904c61737443686172676564477265617465725468616e4c61737443686172676561626c6500090425024572726f72207468726f776e207768656e20746865207469636b206e756d626572206f66207768656e20746865207061796d656e742073747265616d20776173206c61737420636861726765642069732067726561746572207468616e20746865207469636b206e756d626572206f6620746865206c6173742063686172676561626c65207469636b80496e76616c69644c61737443686172676561626c65426c6f636b4e756d626572000a04bd024572726f72207468726f776e207768656e20746865206e6577206c6173742063686172676561626c65207469636b206e756d626572207468617420697320747279696e6720746f206265207365742069732067726561746572207468616e207468652063757272656e74207469636b206e756d626572206f7220736d616c6c6572207468616e207468652070726576696f7573206c6173742063686172676561626c65207469636b206e756d6265727c496e76616c69644c61737443686172676561626c655072696365496e646578000b04bd024572726f72207468726f776e207768656e20746865206e6577206c6173742063686172676561626c6520707269636520696e646578207468617420697320747279696e6720746f206265207365742069732067726561746572207468616e207468652063757272656e7420707269636520696e646578206f7220736d616c6c6572207468616e207468652070726576696f7573206c6173742063686172676561626c6520707269636520696e646578384368617267654f766572666c6f77000c046d014572726f72207468726f776e207768656e206368617267696e672061207061796d656e742073747265616d20776f756c6420726573756c7420696e20616e206f766572666c6f77206f66207468652062616c616e636520747970654055736572576974686f757446756e6473000d047d014572726f72207468726f776e207768656e20747279696e6720746f206f706572617465207768656e20746865205573657220686173206265656e20666c616767656420666f72206e6f7420686176696e6720656e6f7567682066756e64732e70557365724e6f74466c61676765644173576974686f757446756e6473000e04e9014572726f72207468726f776e207768656e20612075736572207468617420686173206e6f74206265656e20666c616767656420617320776974686f75742066756e647320747269657320746f20757365207468652065787472696e73696320746f2070617920697473206f75747374616e64696e6720646562745c436f6f6c646f776e506572696f644e6f74506173736564000f04b5014572726f72207468726f776e207768656e2061207573657220747269657320746f20636c6561722074686520666c6167206f66206265696e6720776974686f75742066756e6473206265666f72652074686520636f6f6c646f776e20706572696f642068617320706173736564044901546865206572726f727320746861742063616e206265207468726f776e20627920746869732070616c6c657420746f20696e666f726d2075736572732061626f757420776861742077656e742077726f6e6755070c4870616c6c65745f6275636b65745f6e6674731870616c6c6574144572726f72040454000110484275636b657449734e6f74507269766174650000048d014275636b6574206973206e6f7420707269766174652e2043616c6c20607570646174655f6275636b65745f70726976616379602066726f6d207468652066696c652073797374656d2070616c6c657420746f206d616b6520697420707269766174652e384e6f744275636b65744f776e65720001049c4163636f756e74206973206e6f7420746865206f776e6572206f6620746865206275636b65742e644e6f436f72726573706f6e64696e67436f6c6c656374696f6e000204dd014e6f20636f6c6c656374696f6e20636f72726573706f6e64696e6720746f20746865206275636b65742e2043616c6c20607570646174655f6275636b65745f70726976616379602066726f6d207468652066696c652073797374656d2070616c6c657420746f206d616b6520697420707269766174652e60436f6e766572744279746573546f426f756e6465645665630003049c4661696c656420746f20636f6e7665727420627974657320746f2060426f756e64656456656360048054686520604572726f726020656e756d206f6620746869732070616c6c65742e59070c2c70616c6c65745f6e66747314747970657344436f6c6c656374696f6e44657461696c7308244163636f756e7449640100384465706f73697442616c616e63650118001801146f776e65720001244163636f756e7449640001346f776e65725f6465706f7369741801384465706f73697442616c616e63650001146974656d7310010c7533320001386974656d5f6d657461646174617310010c7533320001306974656d5f636f6e6669677310010c7533320001286174747269627574657310010c75333200005d070000040c0010100061070000040800100065070000040810000069070c2c70616c6c65745f6e66747314747970657320426974466c616773040454016d07000400080138436f6c6c656374696f6e526f6c6500006d070c2c70616c6c65745f6e66747314747970657338436f6c6c656374696f6e526f6c6500010c184973737565720001001c467265657a65720002001441646d696e0004000071070c2c70616c6c65745f6e6674731474797065732c4974656d44657461696c730c244163636f756e74496401001c4465706f73697401750724417070726f76616c73017907000c01146f776e65720001244163636f756e744964000124617070726f76616c7379070124417070726f76616c7300011c6465706f7369747507011c4465706f736974000075070c2c70616c6c65745f6e6674731474797065732c4974656d4465706f73697408384465706f73697442616c616e63650118244163636f756e74496401000008011c6163636f756e740001244163636f756e744964000118616d6f756e741801384465706f73697442616c616e6365000079070c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b010004560119020453000004007d07013842547265654d61703c4b2c20563e00007d07042042547265654d617008044b01000456011902000400810700000081070000028507008507000004080019020089070c2c70616c6c65745f6e66747314747970657348436f6c6c656374696f6e4d65746164617461081c4465706f73697401182c537472696e674c696d6974000008011c6465706f73697418011c4465706f736974000110646174618d02016c426f756e6465645665633c75382c20537472696e674c696d69743e00008d070c2c70616c6c65745f6e667473147479706573304974656d4d65746164617461081c4465706f7369740191072c537472696e674c696d6974000008011c6465706f7369749107011c4465706f736974000110646174618d02016c426f756e6465645665633c75382c20537472696e674c696d69743e000091070c2c70616c6c65745f6e6674731474797065734c4974656d4d657461646174614465706f73697408384465706f73697442616c616e63650118244163636f756e74496401000008011c6163636f756e749c01444f7074696f6e3c4163636f756e7449643e000118616d6f756e741801384465706f73697442616c616e6365000095070000041010190299029502009907000004088d029d07009d070c2c70616c6c65745f6e667473147479706573404174747269627574654465706f73697408384465706f73697442616c616e63650118244163636f756e74496401000008011c6163636f756e749c01444f7074696f6e3c4163636f756e7449643e000118616d6f756e741801384465706f73697442616c616e63650000a10700000408189c00a5070c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e64656442547265655365740804540100045300000400a907012c42547265655365743c543e0000a907042042547265655365740404540100000400a4000000ad070c2c70616c6c65745f6e6674731474797065732c50656e64696e67537761701030436f6c6c656374696f6e49640110184974656d49640110584974656d507269636557697468446972656374696f6e01a10220446561646c696e65011000100148646573697265645f636f6c6c656374696f6e100130436f6c6c656374696f6e4964000130646573697265645f6974656d190201384f7074696f6e3c4974656d49643e00011470726963659d0201784f7074696f6e3c4974656d507269636557697468446972656374696f6e3e000120646561646c696e65100120446561646c696e650000b1070c2c70616c6c65745f6e66747314747970657320426974466c61677304045401b50700040030013450616c6c6574466561747572650000b5070c2c70616c6c65745f6e6674731474797065733450616c6c6574466561747572650001101c54726164696e67000100284174747269627574657300020024417070726f76616c7300040014537761707300080000b9070c2c70616c6c65745f6e6674731870616c6c6574144572726f720804540004490001b4304e6f5065726d697373696f6e000004e8546865207369676e696e67206163636f756e7420686173206e6f207065726d697373696f6e20746f20646f20746865206f7065726174696f6e2e44556e6b6e6f776e436f6c6c656374696f6e0001047454686520676976656e206974656d20494420697320756e6b6e6f776e2e34416c7265616479457869737473000204b8546865206974656d2049442068617320616c7265616479206265656e207573656420666f7220616e206974656d2e3c417070726f76616c45787069726564000304390154686520617070726f76616c20686164206120646561646c696e65207468617420657870697265642c20736f2074686520617070726f76616c2069736e27742076616c696420616e796d6f72652e2857726f6e674f776e6572000404e8546865206f776e6572207475726e6564206f757420746f20626520646966666572656e7420746f2077686174207761732065787065637465642e284261645769746e6573730005041501546865207769746e657373206461746120676976656e20646f6573206e6f74206d61746368207468652063757272656e74207374617465206f662074686520636861696e2e44436f6c6c656374696f6e4964496e5573650006047c436f6c6c656374696f6e20494420697320616c72656164792074616b656e2e504974656d734e6f6e5472616e7366657261626c65000704c84974656d732077697468696e207468617420636f6c6c656374696f6e20617265206e6f6e2d7472616e7366657261626c652e2c4e6f7444656c65676174650008049c5468652070726f7669646564206163636f756e74206973206e6f7420612064656c65676174652e3457726f6e6744656c6567617465000904f45468652064656c6567617465207475726e6564206f757420746f20626520646966666572656e7420746f2077686174207761732065787065637465642e28556e617070726f766564000a04c44e6f20617070726f76616c20657869737473207468617420776f756c6420616c6c6f7720746865207472616e736665722e28556e6163636570746564000b041901546865206e616d6564206f776e657220686173206e6f74207369676e6564206f776e65727368697020616363657074616e6365206f662074686520636f6c6c656374696f6e2e284974656d4c6f636b6564000c0498546865206974656d206973206c6f636b656420286e6f6e2d7472616e7366657261626c65292e504c6f636b65644974656d41747472696275746573000d04744974656d2773206174747269627574657320617265206c6f636b65642e684c6f636b6564436f6c6c656374696f6e41747472696275746573000e048c436f6c6c656374696f6e2773206174747269627574657320617265206c6f636b65642e484c6f636b65644974656d4d65746164617461000f04684974656d2773206d65746164617461206973206c6f636b65642e604c6f636b6564436f6c6c656374696f6e4d6574616461746100100480436f6c6c656374696f6e2773206d65746164617461206973206c6f636b65642e404d6178537570706c79526561636865640011046c416c6c206974656d732068617665206265656e206d696e7465642e3c4d6178537570706c794c6f636b6564001204b8546865206d617820737570706c79206973206c6f636b656420616e642063616e2774206265206368616e6765642e444d6178537570706c79546f6f536d616c6c00130449015468652070726f7669646564206d617820737570706c79206973206c657373207468616e20746865206e756d626572206f66206974656d73206120636f6c6c656374696f6e20616c7265616479206861732e2c556e6b6e6f776e4974656d0014047454686520676976656e206974656d20494420697320756e6b6e6f776e2e2c556e6b6e6f776e537761700015044c5377617020646f65736e27742065786973742e404d657461646174614e6f74466f756e640016048c54686520676976656e206974656d20686173206e6f206d65746164617461207365742e444174747269627574654e6f74466f756e64001704985468652070726f7669646564206174747269627574652063616e277420626520666f756e642e284e6f74466f7253616c65001804544974656d206973206e6f7420666f722073616c652e24426964546f6f4c6f77001904705468652070726f76696465642062696420697320746f6f206c6f772e5052656163686564417070726f76616c4c696d6974001a04a0546865206974656d2068617320726561636865642069747320617070726f76616c206c696d69742e3c446561646c696e6545787069726564001b048454686520646561646c696e652068617320616c726561647920657870697265642e3457726f6e674475726174696f6e001c043101546865206475726174696f6e2070726f76696465642073686f756c64206265206c657373207468616e206f7220657175616c20746f20604d6178446561646c696e654475726174696f6e602e384d6574686f6444697361626c6564001d04a8546865206d6574686f642069732064697361626c65642062792073797374656d2073657474696e67732e3057726f6e6753657474696e67001e04885468652070726f76696465642073657474696e672063616e2774206265207365742e58496e636f6e73697374656e744974656d436f6e666967001f0415014974656d277320636f6e66696720616c72656164792065786973747320616e642073686f756c6420626520657175616c20746f207468652070726f7669646564206f6e652e204e6f436f6e666967002004c8436f6e66696720666f72206120636f6c6c656374696f6e206f7220616e206974656d2063616e277420626520666f756e642e3c526f6c65734e6f74436c656172656400210470536f6d6520726f6c65732077657265206e6f7420636c65617265642e384d696e744e6f7453746172746564002204644d696e7420686173206e6f742073746172746564207965742e244d696e74456e6465640023045c4d696e742068617320616c726561647920656e6465642e38416c7265616479436c61696d6564002404c05468652070726f7669646564204974656d2077617320616c7265616479207573656420666f7220636c61696d696e672e34496e636f7272656374446174610025047c5468652070726f7669646564206461746120697320696e636f72726563742e2c57726f6e674f726967696e002604ac5468652065787472696e736963207761732073656e74206279207468652077726f6e67206f726967696e2e3857726f6e675369676e6174757265002704905468652070726f7669646564207369676e617475726520697320696e636f72726563742e44496e636f72726563744d65746164617461002804a05468652070726f7669646564206d65746164617461206d6967687420626520746f6f206c6f6e672e644d6178417474726962757465734c696d6974526561636865640029049c43616e277420736574206d6f7265206174747269627574657320706572206f6e652063616c6c2e3857726f6e674e616d657370616365002a04d05468652070726f7669646564206e616d6573706163652069736e277420737570706f7274656420696e20746869732063616c6c2e48436f6c6c656374696f6e4e6f74456d707479002b048c43616e27742064656c657465206e6f6e2d656d70747920636f6c6c656374696f6e732e3c5769746e6573735265717569726564002c0490546865207769746e65737320646174612073686f756c642062652070726f76696465642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ebd07102873705f72756e74696d651c67656e657269634c756e636865636b65645f65787472696e73696348556e636865636b656445787472696e736963101c416464726573730155041043616c6c016d04245369676e617475726501d50514457874726101c10700040038000000c10700000428c507c907cd07d107d507dd07e107e507e907ed0700c50710306672616d655f73797374656d28657874656e73696f6e7354636865636b5f6e6f6e5f7a65726f5f73656e64657248436865636b4e6f6e5a65726f53656e64657204045400000000c90710306672616d655f73797374656d28657874656e73696f6e7348636865636b5f737065635f76657273696f6e40436865636b5370656356657273696f6e04045400000000cd0710306672616d655f73797374656d28657874656e73696f6e7340636865636b5f74785f76657273696f6e38436865636b547856657273696f6e04045400000000d10710306672616d655f73797374656d28657874656e73696f6e7334636865636b5f67656e6573697330436865636b47656e6573697304045400000000d50710306672616d655f73797374656d28657874656e73696f6e733c636865636b5f6d6f7274616c69747938436865636b4d6f7274616c69747904045400000400d907010c4572610000d907102873705f72756e74696d651c67656e657269630c6572610c4572610001010420496d6d6f7274616c0000001c4d6f7274616c31040008000001001c4d6f7274616c32040008000002001c4d6f7274616c33040008000003001c4d6f7274616c34040008000004001c4d6f7274616c35040008000005001c4d6f7274616c36040008000006001c4d6f7274616c37040008000007001c4d6f7274616c38040008000008001c4d6f7274616c3904000800000900204d6f7274616c313004000800000a00204d6f7274616c313104000800000b00204d6f7274616c313204000800000c00204d6f7274616c313304000800000d00204d6f7274616c313404000800000e00204d6f7274616c313504000800000f00204d6f7274616c313604000800001000204d6f7274616c313704000800001100204d6f7274616c313804000800001200204d6f7274616c313904000800001300204d6f7274616c323004000800001400204d6f7274616c323104000800001500204d6f7274616c323204000800001600204d6f7274616c323304000800001700204d6f7274616c323404000800001800204d6f7274616c323504000800001900204d6f7274616c323604000800001a00204d6f7274616c323704000800001b00204d6f7274616c323804000800001c00204d6f7274616c323904000800001d00204d6f7274616c333004000800001e00204d6f7274616c333104000800001f00204d6f7274616c333204000800002000204d6f7274616c333304000800002100204d6f7274616c333404000800002200204d6f7274616c333504000800002300204d6f7274616c333604000800002400204d6f7274616c333704000800002500204d6f7274616c333804000800002600204d6f7274616c333904000800002700204d6f7274616c343004000800002800204d6f7274616c343104000800002900204d6f7274616c343204000800002a00204d6f7274616c343304000800002b00204d6f7274616c343404000800002c00204d6f7274616c343504000800002d00204d6f7274616c343604000800002e00204d6f7274616c343704000800002f00204d6f7274616c343804000800003000204d6f7274616c343904000800003100204d6f7274616c353004000800003200204d6f7274616c353104000800003300204d6f7274616c353204000800003400204d6f7274616c353304000800003500204d6f7274616c353404000800003600204d6f7274616c353504000800003700204d6f7274616c353604000800003800204d6f7274616c353704000800003900204d6f7274616c353804000800003a00204d6f7274616c353904000800003b00204d6f7274616c363004000800003c00204d6f7274616c363104000800003d00204d6f7274616c363204000800003e00204d6f7274616c363304000800003f00204d6f7274616c363404000800004000204d6f7274616c363504000800004100204d6f7274616c363604000800004200204d6f7274616c363704000800004300204d6f7274616c363804000800004400204d6f7274616c363904000800004500204d6f7274616c373004000800004600204d6f7274616c373104000800004700204d6f7274616c373204000800004800204d6f7274616c373304000800004900204d6f7274616c373404000800004a00204d6f7274616c373504000800004b00204d6f7274616c373604000800004c00204d6f7274616c373704000800004d00204d6f7274616c373804000800004e00204d6f7274616c373904000800004f00204d6f7274616c383004000800005000204d6f7274616c383104000800005100204d6f7274616c383204000800005200204d6f7274616c383304000800005300204d6f7274616c383404000800005400204d6f7274616c383504000800005500204d6f7274616c383604000800005600204d6f7274616c383704000800005700204d6f7274616c383804000800005800204d6f7274616c383904000800005900204d6f7274616c393004000800005a00204d6f7274616c393104000800005b00204d6f7274616c393204000800005c00204d6f7274616c393304000800005d00204d6f7274616c393404000800005e00204d6f7274616c393504000800005f00204d6f7274616c393604000800006000204d6f7274616c393704000800006100204d6f7274616c393804000800006200204d6f7274616c393904000800006300244d6f7274616c31303004000800006400244d6f7274616c31303104000800006500244d6f7274616c31303204000800006600244d6f7274616c31303304000800006700244d6f7274616c31303404000800006800244d6f7274616c31303504000800006900244d6f7274616c31303604000800006a00244d6f7274616c31303704000800006b00244d6f7274616c31303804000800006c00244d6f7274616c31303904000800006d00244d6f7274616c31313004000800006e00244d6f7274616c31313104000800006f00244d6f7274616c31313204000800007000244d6f7274616c31313304000800007100244d6f7274616c31313404000800007200244d6f7274616c31313504000800007300244d6f7274616c31313604000800007400244d6f7274616c31313704000800007500244d6f7274616c31313804000800007600244d6f7274616c31313904000800007700244d6f7274616c31323004000800007800244d6f7274616c31323104000800007900244d6f7274616c31323204000800007a00244d6f7274616c31323304000800007b00244d6f7274616c31323404000800007c00244d6f7274616c31323504000800007d00244d6f7274616c31323604000800007e00244d6f7274616c31323704000800007f00244d6f7274616c31323804000800008000244d6f7274616c31323904000800008100244d6f7274616c31333004000800008200244d6f7274616c31333104000800008300244d6f7274616c31333204000800008400244d6f7274616c31333304000800008500244d6f7274616c31333404000800008600244d6f7274616c31333504000800008700244d6f7274616c31333604000800008800244d6f7274616c31333704000800008900244d6f7274616c31333804000800008a00244d6f7274616c31333904000800008b00244d6f7274616c31343004000800008c00244d6f7274616c31343104000800008d00244d6f7274616c31343204000800008e00244d6f7274616c31343304000800008f00244d6f7274616c31343404000800009000244d6f7274616c31343504000800009100244d6f7274616c31343604000800009200244d6f7274616c31343704000800009300244d6f7274616c31343804000800009400244d6f7274616c31343904000800009500244d6f7274616c31353004000800009600244d6f7274616c31353104000800009700244d6f7274616c31353204000800009800244d6f7274616c31353304000800009900244d6f7274616c31353404000800009a00244d6f7274616c31353504000800009b00244d6f7274616c31353604000800009c00244d6f7274616c31353704000800009d00244d6f7274616c31353804000800009e00244d6f7274616c31353904000800009f00244d6f7274616c3136300400080000a000244d6f7274616c3136310400080000a100244d6f7274616c3136320400080000a200244d6f7274616c3136330400080000a300244d6f7274616c3136340400080000a400244d6f7274616c3136350400080000a500244d6f7274616c3136360400080000a600244d6f7274616c3136370400080000a700244d6f7274616c3136380400080000a800244d6f7274616c3136390400080000a900244d6f7274616c3137300400080000aa00244d6f7274616c3137310400080000ab00244d6f7274616c3137320400080000ac00244d6f7274616c3137330400080000ad00244d6f7274616c3137340400080000ae00244d6f7274616c3137350400080000af00244d6f7274616c3137360400080000b000244d6f7274616c3137370400080000b100244d6f7274616c3137380400080000b200244d6f7274616c3137390400080000b300244d6f7274616c3138300400080000b400244d6f7274616c3138310400080000b500244d6f7274616c3138320400080000b600244d6f7274616c3138330400080000b700244d6f7274616c3138340400080000b800244d6f7274616c3138350400080000b900244d6f7274616c3138360400080000ba00244d6f7274616c3138370400080000bb00244d6f7274616c3138380400080000bc00244d6f7274616c3138390400080000bd00244d6f7274616c3139300400080000be00244d6f7274616c3139310400080000bf00244d6f7274616c3139320400080000c000244d6f7274616c3139330400080000c100244d6f7274616c3139340400080000c200244d6f7274616c3139350400080000c300244d6f7274616c3139360400080000c400244d6f7274616c3139370400080000c500244d6f7274616c3139380400080000c600244d6f7274616c3139390400080000c700244d6f7274616c3230300400080000c800244d6f7274616c3230310400080000c900244d6f7274616c3230320400080000ca00244d6f7274616c3230330400080000cb00244d6f7274616c3230340400080000cc00244d6f7274616c3230350400080000cd00244d6f7274616c3230360400080000ce00244d6f7274616c3230370400080000cf00244d6f7274616c3230380400080000d000244d6f7274616c3230390400080000d100244d6f7274616c3231300400080000d200244d6f7274616c3231310400080000d300244d6f7274616c3231320400080000d400244d6f7274616c3231330400080000d500244d6f7274616c3231340400080000d600244d6f7274616c3231350400080000d700244d6f7274616c3231360400080000d800244d6f7274616c3231370400080000d900244d6f7274616c3231380400080000da00244d6f7274616c3231390400080000db00244d6f7274616c3232300400080000dc00244d6f7274616c3232310400080000dd00244d6f7274616c3232320400080000de00244d6f7274616c3232330400080000df00244d6f7274616c3232340400080000e000244d6f7274616c3232350400080000e100244d6f7274616c3232360400080000e200244d6f7274616c3232370400080000e300244d6f7274616c3232380400080000e400244d6f7274616c3232390400080000e500244d6f7274616c3233300400080000e600244d6f7274616c3233310400080000e700244d6f7274616c3233320400080000e800244d6f7274616c3233330400080000e900244d6f7274616c3233340400080000ea00244d6f7274616c3233350400080000eb00244d6f7274616c3233360400080000ec00244d6f7274616c3233370400080000ed00244d6f7274616c3233380400080000ee00244d6f7274616c3233390400080000ef00244d6f7274616c3234300400080000f000244d6f7274616c3234310400080000f100244d6f7274616c3234320400080000f200244d6f7274616c3234330400080000f300244d6f7274616c3234340400080000f400244d6f7274616c3234350400080000f500244d6f7274616c3234360400080000f600244d6f7274616c3234370400080000f700244d6f7274616c3234380400080000f800244d6f7274616c3234390400080000f900244d6f7274616c3235300400080000fa00244d6f7274616c3235310400080000fb00244d6f7274616c3235320400080000fc00244d6f7274616c3235330400080000fd00244d6f7274616c3235340400080000fe00244d6f7274616c3235350400080000ff0000dd0710306672616d655f73797374656d28657874656e73696f6e732c636865636b5f6e6f6e636528436865636b4e6f6e636504045400000400cc0120543a3a4e6f6e63650000e10710306672616d655f73797374656d28657874656e73696f6e7330636865636b5f7765696768742c436865636b57656967687404045400000000e507086870616c6c65745f7472616e73616374696f6e5f7061796d656e74604368617267655472616e73616374696f6e5061796d656e7404045400000400dc013042616c616e63654f663c543e0000e90708a463756d756c75735f7072696d6974697665735f73746f726167655f7765696768745f7265636c61696d5053746f726167655765696768745265636c61696d04045400000000ed0708746672616d655f6d657461646174615f686173685f657874656e73696f6e44436865636b4d657461646174614861736804045400000401106d6f6465f10701104d6f64650000f10708746672616d655f6d657461646174615f686173685f657874656e73696f6e104d6f64650001082044697361626c65640000001c456e61626c656400010000f507084c73746f726167655f6875625f72756e74696d651c52756e74696d6500000000601853797374656d011853797374656d481c4163636f756e7401010402000c4101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008004e8205468652066756c6c206163636f756e7420696e666f726d6174696f6e20666f72206120706172746963756c6172206163636f756e742049442e3845787472696e736963436f756e74000010040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e40496e686572656e74734170706c696564010020040004a4205768657468657220616c6c20696e686572656e74732068617665206265656e206170706c6965642e2c426c6f636b576569676874010024180000000000000488205468652063757272656e742077656967687420666f722074686520626c6f636b2e40416c6c45787472696e736963734c656e000010040004410120546f74616c206c656e6774682028696e2062797465732920666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e24426c6f636b486173680101040510348000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e3445787472696e736963446174610101040510380400043d012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e184e756d6265720100101000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801003480000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e1844696765737401003c040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e184576656e747301004c04001ca0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e001d01204e4f54453a20546865206974656d20697320756e626f756e6420616e642073686f756c64207468657265666f7265206e657665722062652072656164206f6e20636861696e2ed020497420636f756c64206f746865727769736520696e666c6174652074686520506f562073697a65206f66206120626c6f636b2e002d01204576656e747320686176652061206c6172676520696e2d6d656d6f72792073697a652e20426f7820746865206576656e747320746f206e6f7420676f206f75742d6f662d6d656d6f7279fc206a75737420696e206361736520736f6d656f6e65207374696c6c207265616473207468656d2066726f6d2077697468696e207468652072756e74696d652e284576656e74436f756e74010010100000000004b820546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e2c4576656e74546f70696373010104023411030400282501204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e646578657394206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e00510120416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e2054686973450120616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e64e420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e005901205468652076616c756520686173207468652074797065206028426c6f636b4e756d626572466f723c543e2c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573744d012074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b0101206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e484c61737452756e74696d65557067726164650000190304000455012053746f726573207468652060737065635f76657273696f6e6020616e642060737065635f6e616d6560206f66207768656e20746865206c6173742072756e74696d6520757067726164652068617070656e65642e545570677261646564546f553332526566436f756e740100200400044d012054727565206966207765206861766520757067726164656420736f207468617420607479706520526566436f756e74602069732060753332602e2046616c7365202864656661756c7429206966206e6f742e605570677261646564546f547269706c65526566436f756e740100200400085d012054727565206966207765206861766520757067726164656420736f2074686174204163636f756e74496e666f20636f6e7461696e73207468726565207479706573206f662060526566436f756e74602e2046616c736548202864656661756c7429206966206e6f742e38457865637574696f6e506861736500000d03040004882054686520657865637574696f6e207068617365206f662074686520626c6f636b2e44417574686f72697a65645570677261646500002103040004b82060536f6d6560206966206120636f6465207570677261646520686173206265656e20617574686f72697a65642e01250301581830426c6f636b57656967687473310389010700f2052a01000b00204aa9d101020040010265cd1d00010bc0560def45010200e000010b0098f73e5d010200f0000100000265cd1d00010bc0de5f59ba0102003001010b00204aa9d1010200400101070088526a74020050000265cd1d0000000004d020426c6f636b20262065787472696e7369637320776569676874733a20626173652076616c75657320616e64206c696d6974732e2c426c6f636b4c656e67746841033000003c00000050000000500004a820546865206d6178696d756d206c656e677468206f66206120626c6f636b2028696e206279746573292e38426c6f636b48617368436f756e74101000100000045501204d6178696d756d206e756d626572206f6620626c6f636b206e756d62657220746f20626c6f636b2068617368206d617070696e677320746f206b65657020286f6c64657374207072756e6564206669727374292e20446257656967687449034040787d010000000000e1f505000000000409012054686520776569676874206f662072756e74696d65206461746162617365206f7065726174696f6e73207468652072756e74696d652063616e20696e766f6b652e1c56657273696f6e4d03a9044c73746f726167652d6875622d72756e74696d654c73746f726167652d6875622d72756e74696d6501000000010000000000000050d7bdd8a272ca0d6501000000dd718d5cc53262d401000000df6acb689907609b0500000037e397fc7c91f5e40200000040fe3ad401f8959a06000000d2bc9897eed08f1503000000f78b278be53f454c02000000ab3c0572291feb8b01000000bc9d89904f5b923f0100000037c8bb1350a9a2a804000000f3ff14d5ab527059030000006ff52ee858e6c5bd0100000091b1c8b16328eb92010000009ffb505aa738d69c01000000ea93e3f16f3d696202000000fbc577b9d747efd601000000b9e7717ace5b45cd010000001078d7ac24a07b0e010000000be7208954c7c6c901000000966604ffe78eb0920100000001000000010484204765742074686520636861696e277320696e2d636f64652076657273696f6e2e28535335385072656669785d03082a0014a8205468652064657369676e61746564205353353820707265666978206f66207468697320636861696e2e0039012054686973207265706c6163657320746865202273733538466f726d6174222070726f7065727479206465636c6172656420696e2074686520636861696e20737065632e20526561736f6e20697331012074686174207468652072756e74696d652073686f756c64206b6e6f772061626f7574207468652070726566697820696e206f7264657220746f206d616b6520757365206f662069742061737020616e206964656e746966696572206f662074686520636861696e2e016103003c50617261636861696e53797374656d013c50617261636861696e53797374656d6044556e696e636c756465645365676d656e74010065030400184901204c617465737420696e636c7564656420626c6f636b2064657363656e64616e7473207468652072756e74696d652061636365707465642e20496e206f7468657220776f7264732c20746865736520617265610120616e636573746f7273206f66207468652063757272656e746c7920657865637574696e6720626c6f636b2077686963682068617665206e6f74206265656e20696e636c7564656420696e20746865206f627365727665644c2072656c61792d636861696e2073746174652e00750120546865207365676d656e74206c656e677468206973206c696d69746564206279207468652063617061636974792072657475726e65642066726f6d20746865205b60436f6e73656e737573486f6f6b605d20636f6e666967757265643c20696e207468652070616c6c65742e6c41676772656761746564556e696e636c756465645365676d656e740000890304000c69012053746f72616765206669656c642074686174206b6565707320747261636b206f662062616e64776964746820757365642062792074686520756e696e636c75646564207365676d656e7420616c6f6e672077697468207468652d01206c61746573742048524d502077617465726d61726b2e205573656420666f72206c696d6974696e672074686520616363657074616e6365206f66206e657720626c6f636b73207769746890207265737065637420746f2072656c617920636861696e20636f6e73747261696e74732e5450656e64696e6756616c69646174696f6e436f6465010038040018590120496e2063617365206f662061207363686564756c656420757067726164652c20746869732073746f72616765206669656c6420636f6e7461696e73207468652076616c69646174696f6e20636f646520746f20626524206170706c6965642e003d0120417320736f6f6e206173207468652072656c617920636861696e2067697665732075732074686520676f2d6168656164207369676e616c2c2077652077696c6c206f7665727772697465207468657101205b603a636f6465605d5b73705f636f72653a3a73746f726167653a3a77656c6c5f6b6e6f776e5f6b6579733a3a434f44455d2077686963682077696c6c20726573756c7420746865206e65787420626c6f636b2070726f636573730901207769746820746865206e65772076616c69646174696f6e20636f64652e205468697320636f6e636c756465732074686520757067726164652070726f636573732e444e657756616c69646174696f6e436f64650000380400145d012056616c69646174696f6e20636f6465207468617420697320736574206279207468652070617261636861696e20616e6420697320746f20626520636f6d6d756e69636174656420746f20636f6c6c61746f7220616e647820636f6e73657175656e746c79207468652072656c61792d636861696e2e00650120546869732077696c6c20626520636c656172656420696e20606f6e5f696e697469616c697a6560206f662065616368206e657720626c6f636b206966206e6f206f746865722070616c6c657420616c7265616479207365742c207468652076616c75652e3856616c69646174696f6e4461746100008d0304000cd020546865205b6050657273697374656456616c69646174696f6e44617461605d2073657420666f72207468697320626c6f636b2e2d0120546869732076616c756520697320657870656374656420746f20626520736574206f6e6c79206f6e63652070657220626c6f636b20616e642069742773206e657665722073746f7265643420696e2074686520747269652e5044696453657456616c69646174696f6e436f6465010020040004e02057657265207468652076616c69646174696f6e20646174612073657420746f206e6f74696679207468652072656c617920636861696e3f644c61737452656c6179436861696e426c6f636b4e756d62657201001010000000000c1d01205468652072656c617920636861696e20626c6f636b206e756d626572206173736f636961746564207769746820746865206c6173742070617261636861696e20626c6f636b2e00882054686973206973207570646174656420696e20606f6e5f66696e616c697a65602e60557067726164655265737472696374696f6e5369676e616c0100950304001c750120416e206f7074696f6e20776869636820696e64696361746573206966207468652072656c61792d636861696e20726573747269637473207369676e616c6c696e6720612076616c69646174696f6e20636f646520757067726164652e610120496e206f7468657220776f7264732c20696620746869732069732060536f6d656020616e64205b604e657756616c69646174696f6e436f6465605d2069732060536f6d6560207468656e207468652070726f64756365646c2063616e6469646174652077696c6c20626520696e76616c69642e00710120546869732073746f72616765206974656d2069732061206d6972726f72206f662074686520636f72726573706f6e64696e672076616c756520666f72207468652063757272656e742070617261636861696e2066726f6d207468656d012072656c61792d636861696e2e20546869732076616c756520697320657068656d6572616c207768696368206d65616e7320697420646f65736e277420686974207468652073746f726167652e20546869732076616c756520697360207365742061667465722074686520696e686572656e742e3855706772616465476f416865616401008103040014dc204f7074696f6e616c207570677261646520676f2d6168656164207369676e616c2066726f6d207468652072656c61792d636861696e2e00710120546869732073746f72616765206974656d2069732061206d6972726f72206f662074686520636f72726573706f6e64696e672076616c756520666f72207468652063757272656e742070617261636861696e2066726f6d207468656d012072656c61792d636861696e2e20546869732076616c756520697320657068656d6572616c207768696368206d65616e7320697420646f65736e277420686974207468652073746f726167652e20546869732076616c756520697360207365742061667465722074686520696e686572656e742e3c52656c6179537461746550726f6f6600009d03040018c4205468652073746174652070726f6f6620666f7220746865206c6173742072656c617920706172656e7420626c6f636b2e006d012054686973206669656c64206973206d65616e7420746f2062652075706461746564206561636820626c6f636b2077697468207468652076616c69646174696f6e206461746120696e686572656e742e205468657265666f72652c4d01206265666f72652070726f63657373696e67206f662074686520696e686572656e742c20652e672e20696e20606f6e5f696e697469616c697a656020746869732064617461206d6179206265207374616c652e00ac2054686973206461746120697320616c736f20616273656e742066726f6d207468652067656e657369732e5852656c6576616e744d6573736167696e6753746174650000a50304001c65012054686520736e617073686f74206f6620736f6d652073746174652072656c6174656420746f206d6573736167696e672072656c6576616e7420746f207468652063757272656e742070617261636861696e2061732070657248207468652072656c617920706172656e742e006d012054686973206669656c64206973206d65616e7420746f2062652075706461746564206561636820626c6f636b2077697468207468652076616c69646174696f6e206461746120696e686572656e742e205468657265666f72652c4d01206265666f72652070726f63657373696e67206f662074686520696e686572656e742c20652e672e20696e20606f6e5f696e697469616c697a656020746869732064617461206d6179206265207374616c652e00ac2054686973206461746120697320616c736f20616273656e742066726f6d207468652067656e657369732e44486f7374436f6e66696775726174696f6e0000b9030400182901205468652070617261636861696e20686f737420636f6e66696775726174696f6e207468617420776173206f627461696e65642066726f6d207468652072656c617920706172656e742e006d012054686973206669656c64206973206d65616e7420746f2062652075706461746564206561636820626c6f636b2077697468207468652076616c69646174696f6e206461746120696e686572656e742e205468657265666f72652c4d01206265666f72652070726f63657373696e67206f662074686520696e686572656e742c20652e672e20696e20606f6e5f696e697469616c697a656020746869732064617461206d6179206265207374616c652e00ac2054686973206461746120697320616c736f20616273656e742066726f6d207468652067656e657369732e384c617374446d714d7163486561640100c10380000000000000000000000000000000000000000000000000000000000000000010f420546865206c61737420646f776e77617264206d65737361676520717565756520636861696e20686561642077652068617665206f627365727665642e00650120546869732076616c7565206973206c6f61646564206265666f726520616e642073617665642061667465722070726f63657373696e6720696e626f756e6420646f776e77617264206d65737361676573206361727269656460206279207468652073797374656d20696e686572656e742e404c61737448726d704d716348656164730100c503040010490120546865206d65737361676520717565756520636861696e2068656164732077652068617665206f62736572766564207065722065616368206368616e6e656c20696e636f6d696e67206368616e6e656c2e00650120546869732076616c7565206973206c6f61646564206265666f726520616e642073617665642061667465722070726f63657373696e6720696e626f756e6420646f776e77617264206d65737361676573206361727269656460206279207468652073797374656d20696e686572656e742e6450726f636573736564446f776e776172644d6573736167657301001010000000000cc8204e756d626572206f6620646f776e77617264206d657373616765732070726f63657373656420696e206120626c6f636b2e00ec20546869732077696c6c20626520636c656172656420696e20606f6e5f696e697469616c697a6560206f662065616368206e657720626c6f636b2e3448726d7057617465726d61726b01001010000000000ca02048524d502077617465726d61726b2074686174207761732073657420696e206120626c6f636b2e00ec20546869732077696c6c20626520636c656172656420696e20606f6e5f696e697469616c697a6560206f662065616368206e657720626c6f636b2e5048726d704f7574626f756e644d657373616765730100d10304000ca42048524d50206d65737361676573207468617420776572652073656e7420696e206120626c6f636b2e00ec20546869732077696c6c20626520636c656172656420696e20606f6e5f696e697469616c697a6560206f662065616368206e657720626c6f636b2e385570776172644d6573736167657301003d0204000cac20557077617264206d65737361676573207468617420776572652073656e7420696e206120626c6f636b2e00ec20546869732077696c6c20626520636c656172656420696e20606f6e5f696e697469616c697a6560206f662065616368206e657720626c6f636b2e5450656e64696e675570776172644d6573736167657301003d02040004310120557077617264206d65737361676573207468617420617265207374696c6c2070656e64696e6720616e64206e6f74207965742073656e6420746f207468652072656c617920636861696e2e5c55707761726444656c6976657279466565466163746f720100d90340000064a7b3b6e00d000000000000000004e42054686520666163746f7220746f206d756c7469706c792074686520626173652064656c69766572792066656520627920666f7220554d502e84416e6e6f756e63656448726d704d6573736167657350657243616e646964617465010010100000000008650120546865206e756d626572206f662048524d50206d65737361676573207765206f6273657276656420696e20606f6e5f696e697469616c697a656020616e64207468757320757365642074686174206e756d62657220666f72f020616e6e6f756e63696e672074686520776569676874206f6620606f6e5f696e697469616c697a656020616e6420606f6e5f66696e616c697a65602e68526573657276656458636d705765696768744f766572726964650000280400085d01205468652077656967687420776520726573657276652061742074686520626567696e6e696e67206f662074686520626c6f636b20666f722070726f63657373696e672058434d50206d657373616765732e2054686973b8206f76657272696465732074686520616d6f756e742073657420696e2074686520436f6e6669672074726169742e645265736572766564446d705765696768744f766572726964650000280400085901205468652077656967687420776520726573657276652061742074686520626567696e6e696e67206f662074686520626c6f636b20666f722070726f63657373696e6720444d50206d657373616765732e2054686973b8206f76657272696465732074686520616d6f756e742073657420696e2074686520436f6e6669672074726169742e60437573746f6d56616c69646174696f6e486561644461746100003804000c2901204120637573746f6d2068656164206461746120746861742073686f756c642062652072657475726e656420617320726573756c74206f66206076616c69646174655f626c6f636b602e00110120536565206050616c6c65743a3a7365745f637573746f6d5f76616c69646174696f6e5f686561645f646174616020666f72206d6f726520696e666f726d6174696f6e2e01dd03017c042853656c66506172614964e90110e803000004b82052657475726e73207468652070617261636861696e204944207765206172652072756e6e696e6720776974682e010104012454696d657374616d70012454696d657374616d70080c4e6f7701003020000000000000000004a0205468652063757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e24446964557064617465010020040010d82057686574686572207468652074696d657374616d7020686173206265656e207570646174656420696e207468697320626c6f636b2e00550120546869732076616c7565206973207570646174656420746f206074727565602075706f6e207375636365737366756c207375626d697373696f6e206f6620612074696d657374616d702062792061206e6f64652e4501204974206973207468656e20636865636b65642061742074686520656e64206f66206561636820626c6f636b20657865637574696f6e20696e2074686520606f6e5f66696e616c697a656020686f6f6b2e0105040004344d696e696d756d506572696f6430200000000000000000188c20546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e004d012042652061776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a20706572696f6420746861742074686520626c6f636b2070726f64756374696f6e4901206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c2067656e6572616c6c7920776f726b2077697468207468697320746f61012064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20466f72206578616d706c652c20696e2074686520417572612070616c6c65742069742077696c6c20626520646f75626c6520746869737020706572696f64206f6e2064656661756c742073657474696e67732e00023450617261636861696e496e666f013450617261636861696e496e666f042c50617261636861696e49640100e901106400000000010904000000032042616c616e636573012042616c616e6365731c34546f74616c49737375616e6365010018400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e40496e61637469766549737375616e636501001840000000000000000000000000000000000409012054686520746f74616c20756e697473206f66206f75747374616e64696e672064656163746976617465642062616c616e636520696e207468652073797374656d2e1c4163636f756e74010104020014010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080600901205468652042616c616e6365732070616c6c6574206578616d706c65206f662073746f72696e67207468652062616c616e6365206f6620616e206163636f756e742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b19022020202074797065204163636f756e7453746f7265203d2053746f726167654d61705368696d3c53656c663a3a4163636f756e743c52756e74696d653e2c206672616d655f73797374656d3a3a50726f76696465723c52756e74696d653e2c204163636f756e7449642c2053656c663a3a4163636f756e74446174613c42616c616e63653e3e0c20207d102060606000150120596f752063616e20616c736f2073746f7265207468652062616c616e6365206f6620616e206163636f756e7420696e20746865206053797374656d602070616c6c65742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b7420202074797065204163636f756e7453746f7265203d2053797374656d0c20207d102060606000510120427574207468697320636f6d657320776974682074726164656f6666732c2073746f72696e67206163636f756e742062616c616e63657320696e207468652073797374656d2070616c6c65742073746f7265736d0120606672616d655f73797374656d60206461746120616c6f6e677369646520746865206163636f756e74206461746120636f6e747261727920746f2073746f72696e67206163636f756e742062616c616e63657320696e207468652901206042616c616e636573602070616c6c65742c20776869636820757365732061206053746f726167654d61706020746f2073746f72652062616c616e6365732064617461206f6e6c792e4101204e4f54453a2054686973206973206f6e6c79207573656420696e207468652063617365207468617420746869732070616c6c6574206973207573656420746f2073746f72652062616c616e6365732e144c6f636b7301010402000d04040010b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e2501204e4f54453a2053686f756c64206f6e6c79206265206163636573736564207768656e2073657474696e672c206368616e67696e6720616e642066726565696e672061206c6f636b2e00ad0120557365206f66206c6f636b73206973206465707265636174656420696e206661766f7572206f6620667265657a65732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f6020526573657276657301010402001d0404000ca4204e616d6564207265736572766573206f6e20736f6d65206163636f756e742062616c616e6365732e00b10120557365206f66207265736572766573206973206465707265636174656420696e206661766f7572206f6620686f6c64732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f6014486f6c6473010104020029040400046c20486f6c6473206f6e206163636f756e742062616c616e6365732e1c467265657a6573010104020045040400048820467265657a65206c6f636b73206f6e206163636f756e742062616c616e6365732e015104018410484578697374656e7469616c4465706f736974184000ca9a3b00000000000000000000000020410120546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e204d5553542042452047524541544552205448414e205a45524f2100590120496620796f75202a7265616c6c792a206e65656420697420746f206265207a65726f2c20796f752063616e20656e61626c652074686520666561747572652060696e7365637572655f7a65726f5f65646020666f72610120746869732070616c6c65742e20486f77657665722c20796f7520646f20736f20617420796f7572206f776e207269736b3a20746869732077696c6c206f70656e2075702061206d616a6f7220446f5320766563746f722e590120496e206361736520796f752068617665206d756c7469706c6520736f7572636573206f662070726f7669646572207265666572656e6365732c20796f75206d617920616c736f2067657420756e65787065637465648c206265686176696f757220696620796f7520736574207468697320746f207a65726f2e00f020426f74746f6d206c696e653a20446f20796f757273656c662061206661766f757220616e64206d616b65206974206174206c65617374206f6e6521204d61784c6f636b7310103200000010f420546865206d6178696d756d206e756d626572206f66206c6f636b7320746861742073686f756c64206578697374206f6e20616e206163636f756e742edc204e6f74207374726963746c7920656e666f726365642c20627574207573656420666f722077656967687420657374696d6174696f6e2e00ad0120557365206f66206c6f636b73206973206465707265636174656420696e206661766f7572206f6620667265657a65732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f602c4d617852657365727665731010320000000c0d0120546865206d6178696d756d206e756d626572206f66206e616d656420726573657276657320746861742063616e206578697374206f6e20616e206163636f756e742e00b10120557365206f66207265736572766573206973206465707265636174656420696e206661766f7572206f6620686f6c64732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f60284d6178467265657a657310100000000004610120546865206d6178696d756d206e756d626572206f6620696e646976696475616c20667265657a65206c6f636b7320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e0161040a485472616e73616374696f6e5061796d656e7401485472616e73616374696f6e5061796d656e7408444e6578744665654d756c7469706c6965720100d90340000064a7b3b6e00d0000000000000000003853746f7261676556657273696f6e0100650404000000018c04604f7065726174696f6e616c4665654d756c7469706c696572080405545901204120666565206d756c7469706c69657220666f7220604f7065726174696f6e616c602065787472696e7369637320746f20636f6d7075746520227669727475616c207469702220746f20626f6f73742074686569722c20607072696f726974796000510120546869732076616c7565206973206d756c7469706c69656420627920746865206066696e616c5f6665656020746f206f627461696e206120227669727475616c20746970222074686174206973206c61746572f420616464656420746f20612074697020636f6d706f6e656e7420696e20726567756c617220607072696f72697479602063616c63756c6174696f6e732e4d01204974206d65616e732074686174206120604e6f726d616c60207472616e73616374696f6e2063616e2066726f6e742d72756e20612073696d696c61726c792d73697a656420604f7065726174696f6e616c6041012065787472696e736963202877697468206e6f20746970292c20627920696e636c7564696e672061207469702076616c75652067726561746572207468616e20746865207669727475616c207469702e003c20606060727573742c69676e6f726540202f2f20466f7220604e6f726d616c608c206c6574207072696f72697479203d207072696f726974795f63616c6328746970293b0054202f2f20466f7220604f7065726174696f6e616c601101206c6574207669727475616c5f746970203d2028696e636c7573696f6e5f666565202b2074697029202a204f7065726174696f6e616c4665654d756c7469706c6965723bc4206c6574207072696f72697479203d207072696f726974795f63616c6328746970202b207669727475616c5f746970293b1020606060005101204e6f746520746861742073696e636520776520757365206066696e616c5f6665656020746865206d756c7469706c696572206170706c69657320616c736f20746f2074686520726567756c61722060746970605d012073656e74207769746820746865207472616e73616374696f6e2e20536f2c206e6f74206f6e6c7920646f657320746865207472616e73616374696f6e206765742061207072696f726974792062756d702062617365646101206f6e207468652060696e636c7573696f6e5f666565602c2062757420776520616c736f20616d706c6966792074686520696d70616374206f662074697073206170706c69656420746f20604f7065726174696f6e616c6038207472616e73616374696f6e732e000b105375646f01105375646f040c4b6579000000040004842054686520604163636f756e74496460206f6620746865207375646f206b65792e01690401900001f5050f28417574686f72736869700128417574686f72736869700418417574686f720000000400046420417574686f72206f662063757272656e7420626c6f636b2e000000001444436f6c6c61746f7253656c656374696f6e0144436f6c6c61746f7253656c656374696f6e1434496e76756c6e657261626c65730100f90504000411012054686520696e76756c6e657261626c652c207065726d697373696f6e656420636f6c6c61746f72732e2054686973206c697374206d75737420626520736f727465642e3443616e6469646174654c6973740100fd050400146901205468652028636f6d6d756e6974792c206c696d697465642920636f6c6c6174696f6e2063616e646964617465732e206043616e646964617465736020616e642060496e76756c6e657261626c6573602073686f756c6420626550206d757475616c6c79206578636c75736976652e0075012054686973206c69737420697320736f7274656420696e20617363656e64696e67206f72646572206279206465706f73697420616e64207768656e20746865206465706f736974732061726520657175616c2c20746865206c65617374a020726563656e746c79207570646174656420697320636f6e7369646572656420677265617465722e444c617374417574686f726564426c6f636b01010405001010000000000484204c61737420626c6f636b20617574686f72656420627920636f6c6c61746f722e444465736972656443616e6469646174657301001010000000000c782044657369726564206e756d626572206f662063616e646964617465732e00750120546869732073686f756c6420696465616c6c7920616c77617973206265206c657373207468616e205b60436f6e6669673a3a4d617843616e64696461746573605d20666f72207765696768747320746f20626520636f72726563742e3443616e646964616379426f6e6401001840000000000000000000000000000000000cb820466978656420616d6f756e7420746f206465706f73697420746f206265636f6d65206120636f6c6c61746f722e004101205768656e206120636f6c6c61746f722063616c6c7320606c656176655f696e74656e7460207468657920696d6d6564696174656c79207265636569766520746865206465706f736974206261636b2e01710401a000010906151c53657373696f6e011c53657373696f6e1c2856616c696461746f72730100a40400047c205468652063757272656e7420736574206f662076616c696461746f72732e3043757272656e74496e646578010010100000000004782043757272656e7420696e646578206f66207468652073657373696f6e2e345175657565644368616e676564010020040008390120547275652069662074686520756e6465726c79696e672065636f6e6f6d6963206964656e746974696573206f7220776569676874696e6720626568696e64207468652076616c696461746f7273a420686173206368616e67656420696e20746865207175657565642076616c696461746f72207365742e285175657565644b65797301000d060400083d012054686520717565756564206b65797320666f7220746865206e6578742073657373696f6e2e205768656e20746865206e6578742073657373696f6e20626567696e732c207468657365206b657973e02077696c6c206265207573656420746f2064657465726d696e65207468652076616c696461746f7227732073657373696f6e206b6579732e4844697361626c656456616c696461746f7273010091020400148020496e6469636573206f662064697361626c65642076616c696461746f72732e003d01205468652076656320697320616c77617973206b65707420736f7274656420736f20746861742077652063616e2066696e642077686574686572206120676976656e2076616c696461746f722069733d012064697361626c6564207573696e672062696e617279207365617263682e204974206765747320636c6561726564207768656e20606f6e5f73657373696f6e5f656e64696e67602072657475726e73642061206e657720736574206f66206964656e7469746965732e204e6578744b657973000104050079040400049c20546865206e6578742073657373696f6e206b65797320666f7220612076616c696461746f722e204b65794f776e657200010405150600040004090120546865206f776e6572206f662061206b65792e20546865206b65792069732074686520604b657954797065496460202b2074686520656e636f646564206b65792e01750401a800011d06161041757261011041757261082c417574686f726974696573010021060400046c205468652063757272656e7420617574686f72697479207365742e2c43757272656e74536c6f74010029062000000000000000000c80205468652063757272656e7420736c6f74206f66207468697320626c6f636b2e009420546869732077696c6c2062652073657420696e20606f6e5f696e697469616c697a65602e00000430536c6f744475726174696f6e30207017000000000000100d012054686520736c6f74206475726174696f6e20417572612073686f756c642072756e20776974682c2065787072657373656420696e206d696c6c697365636f6e64732e3d0120546865206566666563746976652076616c7565206f66207468697320747970652073686f756c64206e6f74206368616e6765207768696c652074686520636861696e2069732072756e6e696e672e00350120466f72206261636b776172647320636f6d7061746962696c6974792065697468657220757365205b604d696e696d756d506572696f6454696d657354776f605d206f72206120636f6e73742e00171c41757261457874011c41757261457874082c417574686f72697469657301002106040014942053657276657320617320636163686520666f722074686520617574686f7269746965732e0071012054686520617574686f72697469657320696e204175526120617265206f7665727772697474656e20696e20606f6e5f696e697469616c697a6560207768656e2077652073776974636820746f2061206e65772073657373696f6e2c5d0120627574207765207265717569726520746865206f6c6420617574686f72697469657320746f2076657269667920746865207365616c207768656e2076616c69646174696e67206120506f562e20546869732077696c6c0d0120616c77617973206265207570646174656420746f20746865206c6174657374204175526120617574686f72697469657320696e20606f6e5f66696e616c697a65602e20536c6f74496e666f00002d0604000cd82043757272656e7420736c6f742070616972656420776974682061206e756d626572206f6620617574686f72656420626c6f636b732e00982055706461746564206f6e206561636820626c6f636b20696e697469616c697a6174696f6e2e00000000182458636d705175657565012458636d7051756575651c50496e626f756e6458636d7053757370656e646564010031060400200d01205468652073757370656e64656420696e626f756e642058434d50206368616e6e656c732e20416c6c206f746865727320617265206e6f742073757370656e6465642e00710120546869732069732061206053746f7261676556616c75656020696e7374656164206f662061206053746f726167654d6170602073696e636520776520657870656374206d756c7469706c652072656164732070657220626c6f636b690120746f20646966666572656e74206b65797320776974682061206f6e652062797465207061796c6f61642e205468652061636365737320746f2060426f756e6465644254726565536574602077696c6c2062652063616368656415012077697468696e2074686520626c6f636b20616e64207468657265666f7265206f6e6c7920696e636c75646564206f6e636520696e207468652070726f6f662073697a652e006501204e4f54453a2054686520506f562062656e63686d61726b696e672063616e6e6f74206b6e6f77207468697320616e642077696c6c206f7665722d657374696d6174652c20627574207468652061637475616c2070726f6f66442077696c6c20626520736d616c6c65722e484f7574626f756e6458636d7053746174757301003d060400185d0120546865206e6f6e2d656d7074792058434d50206368616e6e656c7320696e206f72646572206f66206265636f6d696e67206e6f6e2d656d7074792c20616e642074686520696e646578206f6620746865206669727374510120616e64206c617374206f7574626f756e64206d6573736167652e204966207468652074776f20696e64696365732061726520657175616c2c207468656e20697420696e6469636174657320616e20656d707479590120717565756520616e64207468657265206d7573742062652061206e6f6e2d604f6b6020604f7574626f756e64537461747573602e20576520617373756d65207175657565732067726f77206e6f20677265617465725901207468616e203635353335206974656d732e20517565756520696e646963657320666f72206e6f726d616c206d6573736167657320626567696e206174206f6e653b207a65726f20697320726573657276656420696e11012063617365206f6620746865206e65656420746f2073656e64206120686967682d7072696f72697479207369676e616c206d657373616765207468697320626c6f636b2e09012054686520626f6f6c20697320747275652069662074686572652069732061207369676e616c206d6573736167652077616974696e6720746f2062652073656e742e504f7574626f756e6458636d704d6573736167657301010802054d065106040004bc20546865206d65737361676573206f7574626f756e6420696e206120676976656e2058434d50206368616e6e656c2e385369676e616c4d6573736167657301010402e9015106040004a020416e79207369676e616c206d657373616765732077616974696e6720746f2062652073656e742e2c5175657565436f6e66696701005506302000000030000000080000000415012054686520636f6e66696775726174696f6e20776869636820636f6e74726f6c73207468652064796e616d696373206f6620746865206f7574626f756e642071756575652e38517565756553757370656e64656401002004000441012057686574686572206f72206e6f74207468652058434d502071756575652069732073757370656e6465642066726f6d20657865637574696e6720696e636f6d696e672058434d73206f72206e6f742e4444656c6976657279466565466163746f7201010405e901d90340000064a7b3b6e00d000000000000000004c42054686520666163746f7220746f206d756c7469706c792074686520626173652064656c6976657279206665652062792e01810401ac0c4c4d6178496e626f756e6453757370656e6465641010e803000014490120546865206d6178696d756d206e756d626572206f6620696e626f756e642058434d50206368616e6e656c7320746861742063616e2062652073757370656e6465642073696d756c74616e656f75736c792e005d0120416e792066757274686572206368616e6e656c2073757370656e73696f6e732077696c6c206661696c20616e64206d65737361676573206d6179206765742064726f7070656420776974686f757420667572746865724501206e6f746963652e2043686f6f73696e67206120686967682076616c756520283130303029206973206f6b61793b207468652074726164652d6f666620746861742069732064657363726962656420696ed8205b60496e626f756e6458636d7053757370656e646564605d207374696c6c206170706c6965732061742074686174207363616c652e644d61784163746976654f7574626f756e644368616e6e656c73101080000000206501204d6178696d616c206e756d626572206f66206f7574626f756e642058434d50206368616e6e656c7320746861742063616e2068617665206d6573736167657320717565756564206174207468652073616d652074696d652e005501204966207468697320697320726561636865642c207468656e206e6f2066757274686572206d657373616765732063616e2062652073656e7420746f206368616e6e656c73207468617420646f206e6f74207965745d0120686176652061206d657373616765207175657565642e20546869732073686f756c642062652073657420746f20746865206578706563746564206d6178696d756d206f66206f7574626f756e64206368616e6e656c7361012077686963682069732064657465726d696e6564206279205b6053656c663a3a4368616e6e656c496e666f605d2e20497420697320696d706f7274616e7420746f207365742074686973206c6172676520656e6f7567682c5d012073696e6365206f74686572776973652074686520636f6e67657374696f6e20636f6e74726f6c2070726f746f636f6c2077696c6c206e6f7420776f726b20617320696e74656e64656420616e64206d657373616765735101206d61792062652064726f707065642e20546869732076616c756520696e637265617365732074686520506f5620616e642073686f756c64207468657265666f7265206e6f74206265207069636b656420746f6f4d0120686967682e20476f7665726e616e6365206e6565647320746f2070617920617474656e74696f6e20746f206e6f74206f70656e206d6f7265206368616e6e656c73207468616e20746869732076616c75652e2c4d61785061676553697a6510100000010014b820546865206d6178696d616c20706167652073697a6520666f722048524d50206d6573736167652070616765732e0061012041206c6f776572206c696d69742063616e206265207365742064796e616d6963616c6c792c2062757420746869732069732074686520686172642d6c696d697420666f722074686520506f5620776f727374206361736555012062656e63686d61726b696e672e20546865206c696d697420666f72207468652073697a65206f662061206d65737361676520697320736c696768746c792062656c6f7720746869732c2073696e636520736f6d65b8206f7665726865616420697320696e63757272656420666f7220656e636f64696e672074686520666f726d61742e0159061e2c506f6c6b61646f7458636d012c506f6c6b61646f7458636d38305175657279436f756e746572010030200000000000000000048820546865206c617465737420617661696c61626c6520717565727920696e6465782e1c5175657269657300010402305d060400045420546865206f6e676f696e6720717565726965732e28417373657454726170730101040634101000000000106820546865206578697374696e672061737365742074726170732e006101204b65792069732074686520626c616b6532203235362068617368206f6620286f726967696e2c2076657273696f6e65642060417373657473602920706169722e2056616c756520697320746865206e756d626572206f661d012074696d65732074686973207061697220686173206265656e20747261707065642028757375616c6c79206a75737420312069662069742065786973747320617420616c6c292e385361666558636d56657273696f6e00001004000861012044656661756c742076657273696f6e20746f20656e636f64652058434d207768656e206c61746573742076657273696f6e206f662064657374696e6174696f6e20697320756e6b6e6f776e2e20496620604e6f6e65602c3d01207468656e207468652064657374696e6174696f6e732077686f73652058434d2076657273696f6e20697320756e6b6e6f776e2061726520636f6e7369646572656420756e726561636861626c652e40537570706f7274656456657273696f6e0001080502710610040004f020546865204c61746573742076657273696f6e732074686174207765206b6e6f7720766172696f7573206c6f636174696f6e7320737570706f72742e4056657273696f6e4e6f746966696572730001080502710630040004050120416c6c206c6f636174696f6e7320746861742077652068617665207265717565737465642076657273696f6e206e6f74696669636174696f6e732066726f6d2e5056657273696f6e4e6f746966795461726765747300010805027106750604000871012054686520746172676574206c6f636174696f6e73207468617420617265207375627363726962656420746f206f75722076657273696f6e206368616e6765732c2061732077656c6c20617320746865206d6f737420726563656e7494206f66206f75722076657273696f6e7320776520696e666f726d6564207468656d206f662e5456657273696f6e446973636f7665727951756575650100790604000c65012044657374696e6174696f6e732077686f7365206c61746573742058434d2076657273696f6e20776520776f756c64206c696b6520746f206b6e6f772e204475706c696361746573206e6f7420616c6c6f7765642c20616e6471012074686520607533326020636f756e74657220697320746865206e756d626572206f662074696d6573207468617420612073656e6420746f207468652064657374696e6174696f6e20686173206265656e20617474656d707465642c8c20776869636820697320757365642061732061207072696f726974697a6174696f6e2e4043757272656e744d6967726174696f6e000085060400049c205468652063757272656e74206d6967726174696f6e27732073746167652c20696620616e792e5452656d6f74654c6f636b656446756e6769626c657300010c0502028d069106040004f02046756e6769626c6520617373657473207768696368207765206b6e6f7720617265206c6f636b6564206f6e20612072656d6f746520636861696e2e3c4c6f636b656446756e6769626c65730001040200a106040004e02046756e6769626c6520617373657473207768696368207765206b6e6f7720617265206c6f636b6564206f6e207468697320636861696e2e5458636d457865637574696f6e53757370656e646564010020040004b420476c6f62616c2073757370656e73696f6e207374617465206f66207468652058434d206578656375746f722e3c53686f756c645265636f726458636d01002004001c59012057686574686572206f72206e6f7420696e636f6d696e672058434d732028626f7468206578656375746564206c6f63616c6c7920616e64207265636569766564292073686f756c64206265207265636f726465642ec4204f6e6c79206f6e652058434d2070726f6772616d2077696c6c206265207265636f7264656420617420612074696d652e29012054686973206973206d65616e7420746f206265207573656420696e2072756e74696d6520415049732c20616e64206974277320616476697365642069742073746179732066616c73650d0120666f7220616c6c206f74686572207573652063617365732c20736f20617320746f206e6f74206465677261646520726567756c617220706572666f726d616e63652e005901204f6e6c792072656c6576616e7420696620746869732070616c6c6574206973206265696e67207573656420617320746865205b6078636d5f6578656375746f723a3a7472616974733a3a5265636f726458636d605dc820696d706c656d656e746174696f6e20696e207468652058434d206578656375746f7220636f6e66696775726174696f6e2e2c5265636f7264656458636d000005010400184901204966205b6053686f756c645265636f726458636d605d2069732073657420746f20747275652c207468656e20746865206c6173742058434d2070726f6772616d206578656375746564206c6f63616c6c79542077696c6c2062652073746f72656420686572652e29012052756e74696d6520415049732063616e206665746368207468652058434d20746861742077617320657865637574656420627920616363657373696e6720746869732076616c75652e005901204f6e6c792072656c6576616e7420696620746869732070616c6c6574206973206265696e67207573656420617320746865205b6078636d5f6578656375746f723a3a7472616974733a3a5265636f726458636d605dc820696d706c656d656e746174696f6e20696e207468652058434d206578656375746f7220636f6e66696775726174696f6e2e01850401b00001ad061f2843756d756c757358636d0001250501dd01000020304d657373616765517565756501304d65737361676551756575650c30426f6f6b5374617465466f7201010405e501b10674000000000000000000000000000000000000000000000000000000000004cc2054686520696e646578206f662074686520666972737420616e64206c61737420286e6f6e2d656d707479292070616765732e2c53657276696365486561640000e501040004bc20546865206f726967696e2061742077686963682077652073686f756c6420626567696e20736572766963696e672e1450616765730001080505bd06c1060400048820546865206d6170206f66207061676520696e646963657320746f2070616765732e01290501e10110204865617053697a651010009c0100143d01205468652073697a65206f662074686520706167653b207468697320696d706c69657320746865206d6178696d756d206d6573736167652073697a652077686963682063616e2062652073656e742e005901204120676f6f642076616c756520646570656e6473206f6e20746865206578706563746564206d6573736167652073697a65732c20746865697220776569676874732c207468652077656967687420746861742069735d0120617661696c61626c6520666f722070726f63657373696e67207468656d20616e6420746865206d6178696d616c206e6565646564206d6573736167652073697a652e20546865206d6178696d616c206d65737361676511012073697a6520697320736c696768746c79206c6f776572207468616e207468697320617320646566696e6564206279205b604d61784d6573736167654c656e4f66605d2e204d61785374616c651010080000000c5d0120546865206d6178696d756d206e756d626572206f66207374616c652070616765732028692e652e206f66206f766572776569676874206d657373616765732920616c6c6f776564206265666f72652063756c6c696e6751012063616e2068617070656e2e204f6e636520746865726520617265206d6f7265207374616c65207061676573207468616e20746869732c207468656e20686973746f726963616c207061676573206d6179206265fc2064726f707065642c206576656e206966207468657920636f6e7461696e20756e70726f636573736564206f766572776569676874206d657373616765732e34536572766963655765696768743d032c0107005840fba2020070001841012054686520616d6f756e74206f66207765696768742028696620616e79292077686963682073686f756c642062652070726f766964656420746f20746865206d65737361676520717565756520666f72a820736572766963696e6720656e717565756564206974656d7320606f6e5f696e697469616c697a65602e00fc2054686973206d6179206265206c65676974696d6174656c7920604e6f6e656020696e207468652063617365207468617420796f752077696c6c2063616c6c5d012060536572766963655175657565733a3a736572766963655f71756575657360206d616e75616c6c79206f7220736574205b6053656c663a3a49646c654d617853657276696365576569676874605d20746f2068617665542069742072756e20696e20606f6e5f69646c65602e5049646c654d6178536572766963655765696768743d030400145d0120546865206d6178696d756d20616d6f756e74206f66207765696768742028696620616e792920746f20626520757365642066726f6d2072656d61696e696e672077656967687420606f6e5f69646c656020776869636841012073686f756c642062652070726f766964656420746f20746865206d65737361676520717565756520666f7220736572766963696e6720656e717565756564206974656d7320606f6e5f69646c65602e3d012055736566756c20666f722070617261636861696e7320746f2070726f63657373206d65737361676573206174207468652073616d6520626c6f636b2074686579206172652072656365697665642e00290120496620604e6f6e65602c2069742077696c6c206e6f742063616c6c2060536572766963655175657565733a3a736572766963655f7175657565736020696e20606f6e5f69646c65602e01c906212450726f766964657273012450726f76696465727334385369676e557052657175657374730001040200cd06040028ed0120546865206d617070696e672066726f6d20616e204163636f756e74496420746861742072657175657374656420746f207369676e20757020746f2061207475706c65206f6620746865206d6574616461746120776974682074797065206f662074686520726571756573742c20616e642074686520626c6f636b88206e756d626572207768656e20746865207265717565737420776173206d6164652e00d1012054686973206973207573656420666f72207468652074776f2d737465702070726f63657373206f66207265676973746572696e673a207768656e2061207573657220726571756573747320746f20726567697374657220617320612053502028656974686572204d5350206f7220425350292cb10120746861742072657175657374207769746820746865206d6574616461746120616e6420746865206465706f7369742068656c642069732073746f72656420686572652e205768656e20746865207573657220636f6e6669726d7320746865207369676e2075702c20746865250120726571756573742069732072656d6f7665642066726f6d20746869732073746f7261676520616e64207468652075736572206973207265676973746572656420617320612053502e007020546869732073746f72616765206973207570646174656420696e3aad02202d205b726571756573745f6d73705f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a726571756573745f6d73705f7369676e5f75702920616e64205b726571756573745f6273705f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a726571756573745f6273705f7369676e5f7570292c207768696368206164642061206e657720656e74727920746f20746865206d61702e9102202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f75702920616e64205b63616e63656c5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a63616e63656c5f7369676e5f7570292c2077686963682072656d6f766520616e206578697374696e6720656e7472792066726f6d20746865206d61702e804163636f756e744964546f4d61696e53746f7261676550726f7669646572496400010402003404001ce820546865206d617070696e672066726f6d20616e204163636f756e74496420746f2061204d61696e53746f7261676550726f766964657249642e007d012054686973206973207573656420746f206765742061204d61696e2053746f726167652050726f7669646572277320756e69717565206964656e746966696572206e656564656420746f2061636365737320697473206d657461646174612e007020546869732073746f72616765206973207570646174656420696e3a5102202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c20776869636820616464732061206e657720656e74727920746f20746865206d617020696620746865206163636f756e7420746f20636f6e6669726d2069732061204d61696e2053746f726167652050726f76696465722ea901202d205b6d73705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6d73705f7369676e5f6f6666292c2077686963682072656d6f7665732074686520636f72726573706f6e64696e6720656e7472792066726f6d20746865206d61702e504d61696e53746f7261676550726f7669646572730001040234dd060400240d0120546865206d617070696e672066726f6d2061204d61696e53746f7261676550726f7669646572496420746f2061204d61696e53746f7261676550726f76696465722e00e02054686973206973207573656420746f206765742061204d61696e2053746f726167652050726f76696465722773206d657461646174612ebd012049742072657475726e7320604e6f6e656020696620746865204d61696e2053746f726167652050726f766964657220494420646f6573206e6f7420636f72726573706f6e6420746f20616e792072656769737465726564204d61696e2053746f726167652050726f76696465722e007020546869732073746f72616765206973207570646174656420696e3a5102202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c20776869636820616464732061206e657720656e74727920746f20746865206d617020696620746865206163636f756e7420746f20636f6e6669726d2069732061204d61696e2053746f726167652050726f76696465722ea901202d205b6d73705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6d73705f7369676e5f6f6666292c2077686963682072656d6f7665732074686520636f72726573706f6e64696e6720656e7472792066726f6d20746865206d61702e8901202d205b6368616e67655f63617061636974795d2863726174653a3a646973706174636861626c65733a3a6368616e67655f6361706163697479292c207768696368206368616e6765732074686520656e747279277320606361706163697479602e1c4275636b6574730001040234e106040024dc20546865206d617070696e672066726f6d2061204275636b6574496420746f2074686174206275636b65742773206d657461646174612e0031012054686973206973207573656420746f206765742061206275636b65742773206d657461646174612c207375636820617320726f6f742c20757365722049442c20616e64204d53502049442e45012049742072657475726e7320604e6f6e656020696620746865204275636b657420494420646f6573206e6f7420636f72726573706f6e6420746f20616e792072656769737465726564206275636b65742e007020546869732073746f72616765206973207570646174656420696e3a9501202d205b6164645f6275636b65745d287368705f7472616974733a3a4d757461746550726f766964657273496e746572666163653a3a6164645f6275636b6574292c20776869636820616464732061206e657720656e74727920746f20746865206d61702e0502202d205b6368616e67655f726f6f745f6275636b65745d287368705f7472616974733a3a4d757461746550726f766964657273496e746572666163653a3a6368616e67655f726f6f745f6275636b6574292c207768696368206368616e6765732074686520636f72726573706f6e64696e67206275636b6574277320726f6f742e1d02202d205b72656d6f76655f726f6f745f6275636b65745d287368705f7472616974733a3a4d757461746550726f766964657273496e746572666163653a3a72656d6f76655f726f6f745f6275636b6574292c2077686963682072656d6f7665732074686520656e747279206f662074686520636f72726573706f6e64696e67206275636b65742e7c4d61696e53746f7261676550726f7669646572496473546f4275636b6574730001080202e5069804001c01012054686520646f75626c65206d617070696e672066726f6d2061204d61696e53746f7261676550726f7669646572496420746f2061204275636b65744964732e00b1012054686973206973207573656420746f20656666696369656e746c7920726574726965766520746865206c697374206f66206275636b65747320746861742061204d61696e2053746f726167652050726f76696465722069732063757272656e746c792073746f72696e672e007020546869732073746f72616765206973207570646174656420696e3a0501202d205b6164645f6275636b65745d287368705f7472616974733a3a4d757461746550726f766964657273496e746572666163653a3a6164645f6275636b6574294501202d205b72656d6f76655f726f6f745f6275636b65745d287368705f7472616974733a3a4d757461746550726f766964657273496e746572666163653a3a72656d6f76655f726f6f745f6275636b657429884163636f756e744964546f4261636b757053746f7261676550726f76696465724964000104020034040020f020546865206d617070696e672066726f6d20616e204163636f756e74496420746f2061204261636b757053746f7261676550726f766964657249642e0085012054686973206973207573656420746f206765742061204261636b75702053746f726167652050726f7669646572277320756e69717565206964656e746966696572206e656564656420746f2061636365737320697473206d657461646174612e007020546869732073746f72616765206973207570646174656420696e3a005902202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c20776869636820616464732061206e657720656e74727920746f20746865206d617020696620746865206163636f756e7420746f20636f6e6669726d2069732061204261636b75702053746f726167652050726f76696465722ea901202d205b6273705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6273705f7369676e5f6f6666292c2077686963682072656d6f7665732074686520636f72726573706f6e64696e6720656e7472792066726f6d20746865206d61702e584261636b757053746f7261676550726f7669646572730001040234d5060400241d0120546865206d617070696e672066726f6d2061204261636b757053746f7261676550726f7669646572496420746f2061204261636b757053746f7261676550726f76696465722e00e82054686973206973207573656420746f206765742061204261636b75702053746f726167652050726f76696465722773206d657461646174612ecd012049742072657475726e7320604e6f6e656020696620746865204261636b75702053746f726167652050726f766964657220494420646f6573206e6f7420636f72726573706f6e6420746f20616e792072656769737465726564204261636b75702053746f726167652050726f76696465722e007020546869732073746f72616765206973207570646174656420696e3a5902202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c20776869636820616464732061206e657720656e74727920746f20746865206d617020696620746865206163636f756e7420746f20636f6e6669726d2069732061204261636b75702053746f726167652050726f76696465722ea901202d205b6273705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6273705f7369676e5f6f6666292c2077686963682072656d6f7665732074686520636f72726573706f6e64696e6720656e7472792066726f6d20746865206d61702e8901202d205b6368616e67655f63617061636974795d2863726174653a3a646973706174636861626c65733a3a6368616e67655f6361706163697479292c207768696368206368616e6765732074686520656e747279277320606361706163697479602e204d7370436f756e7401001010000000001c4d012054686520616d6f756e74206f66204d61696e2053746f726167652050726f7669646572732074686174206172652063757272656e746c79207265676973746572656420696e207468652072756e74696d652e0019012054686973206973207573656420746f206b65657020747261636b206f662074686520746f74616c20616d6f756e74206f66204d53507320696e207468652073797374656d2e007020546869732073746f72616765206973207570646174656420696e3a4502202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c2077686963682061646473206f6e6520746f20746869732073746f7261676520696620746865206163636f756e7420746f20636f6e6669726d2069732061204d61696e2053746f726167652050726f76696465722e7501202d205b6d73705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6d73705f7369676e5f6f6666292c20776869636820737562747261637473206f6e652066726f6d20746869732073746f726167652e20427370436f756e7401001010000000001c55012054686520616d6f756e74206f66204261636b75702053746f726167652050726f7669646572732074686174206172652063757272656e746c79207265676973746572656420696e207468652072756e74696d652e0019012054686973206973207573656420746f206b65657020747261636b206f662074686520746f74616c20616d6f756e74206f66204253507320696e207468652073797374656d2e007020546869732073746f72616765206973207570646174656420696e3a4d02202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c2077686963682061646473206f6e6520746f20746869732073746f7261676520696620746865206163636f756e7420746f20636f6e6669726d2069732061204261636b75702053746f726167652050726f76696465722e7501202d205b6273705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6273705f7369676e5f6f6666292c20776869636820737562747261637473206f6e652066726f6d20746869732073746f726167652e44546f74616c42737073436170616369747901003020000000000000000020d02054686520746f74616c20616d6f756e74206f662073746f7261676520636170616369747920616c6c204253507320686176652e00c9012054686973206973207573656420746f206b65657020747261636b206f662074686520746f74616c20616d6f756e74206f662073746f7261676520636170616369747920616c6c2042535073206861766520696e207468652073797374656d2c20776869636820697320616c736f207468658d0120746f74616c20616d6f756e74206f662073746f7261676520636170616369747920746861742063616e206265207573656420627920757365727320696620776520666163746f7220696e20746865207265706c69636174696f6e20666163746f722e007020546869732073746f72616765206973207570646174656420696e3afd02202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c207768696368206164647320746865206361706163697479206f662074686520726567697374657265642053746f726167652050726f766964657220746f20746869732073746f7261676520696620746865206163636f756e7420746f20636f6e6669726d2069732061204261636b75702053746f726167652050726f76696465722e4502202d205b6273705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6273705f7369676e5f6f6666292c2077686963682073756274726163747320746865206361706163697479206f6620746865204261636b75702053746f726167652050726f766964657220746f207369676e206f66662066726f6d20746869732073746f726167652e4055736564427370734361706163697479010030200000000000000000101d012054686520746f74616c20616d6f756e74206f662073746f72616765206361706163697479206f66204253507320746861742069732063757272656e746c7920696e207573652e00e9012054686973206973207573656420746f206b65657020747261636b206f662074686520746f74616c20616d6f756e74206f662073746f7261676520636170616369747920746861742069732063757272656e746c7920696e207573652062792075736572732c2077686963682069732075736566756c20666f720d012073797374656d206d65747269637320616e6420616c736f20746f2063616c63756c617465207468652063757272656e74207072696365206f662073746f726167652e68476c6f62616c4273707352657075746174696f6e576569676874010010100000000004c02054686520746f74616c20676c6f62616c2072657075746174696f6e20776569676874206f6620616c6c20425350732ea44d61696e53746f7261676550726f7669646572496473546f56616c756550726f706f736974696f6e730001080202e5060502040010290120446f75626c65206d617070696e672066726f6d2061205b604d61696e53746f7261676550726f76696465724964605d20746f205b6056616c756550726f706f736974696f6e605d732e00d10120546865736520617265206170706c69656420617420746865206275636b6574206c6576656c2e2050726f706f736974696f6e73206172652074686520707269636520706572205b60436f6e6669673a3a53746f7261676544617461556e6974605d2070657220626c6f636b20616e6420746865c0206c696d6974206f66206461746120746861742063616e2062652073746f72656420696e20746865206275636b65742e012d0501f1014820547265617375727900800000000000000000000000000000000000000000000000000000000000000000106020546865205472656173757279204163636f756e7449642e5820546865206163636f756e7420746f2077686963683adc202d20546865206665657320666f72207375626d697474696e672061206368616c6c656e676520617265207472616e736665727265642e94202d2054686520736c61736865642066756e647320617265207472616e736665727265642e3053704d696e4465706f736974184000407a10f35a0000000000000000000004410120546865206d696e696d756d20616d6f756e74207468617420616e206163636f756e742068617320746f206465706f73697420746f206265636f6d6520612073746f726167652070726f76696465722e3453704d696e4361706163697479302002000000000000000481012054686520616d6f756e74207468617420612042535020726563656976657320617320616c6c6f636174696f6e206f662073746f72616765206361706163697479207768656e206974206465706f736974732053704d696e4465706f7369742e384465706f736974506572446174611840020000000000000000000000000000000411032054686520736c6f7065206f662074686520636f6c6c61746572616c2076732073746f726167652063617061636974792063757276652e20496e206f74686572207465726d732c20686f77206d616e7920746f6b656e7320612053746f726167652050726f76696465722073686f756c642061646420617320636f6c6c61746572616c20746f20696e637265617365206974732073746f7261676520636170616369747920696e206f6e6520756e6974206f662053746f7261676544617461556e69742e2c4d617846696c6553697a653020ffffffffffffffff0cbc2054686520657374696d61746564206d6178696d756d2073697a65206f6620616e20756e6b6e6f776e2066696c652e00b9012055736564207072696d6172696c7920746f20736c61736820612053746f726167652050726f7669646572207768656e206974206661696c7320746f2070726f766964652061206368756e6b206f66206461746120666f7220616e20756e6b6e6f776e2066696c652073697a652e4c4d61784d756c74694164647265737353697a65101064000000049020546865206d6178696d756d2073697a65206f662061206d756c7469616464726573732e544d61784d756c746941646472657373416d6f756e74101005000000041d0120546865206d6178696d756d20616d6f756e74206f66206d756c7469616464726573736573207468617420612053746f726167652050726f76696465722063616e20686176652e304d617850726f746f636f6c73101064000000044d0120546865206d6178696d756d206e756d626572206f662070726f746f636f6c7320746865204d53502063616e20737570706f727420286174206c656173742077697468696e207468652072756e74696d65292e344275636b65744465706f736974184000407a10f35a0000000000000000000004f82054686520616d6f756e74207468617420616e206163636f756e742068617320746f206465706f73697420746f206372656174652061206275636b65742e3c4275636b65744e616d654c696d697410106400000004d82054797065207468617420726570726573656e7473207468652062797465206c696d6974206f662061206275636b6574206e616d652e584d6178426c6f636b73466f7252616e646f6d6e6573731010b004000004990120546865206d6178696d756d20616d6f756e74206f6620626c6f636b732061667465722077686963682061207369676e2075702072657175657374206578706972657320736f207468652072616e646f6d6e6573732063616e6e6f742062652063686f73656e7c4d696e426c6f636b734265747765656e43617061636974794368616e67657310100a00000004fc20546865206d696e696d756d20616d6f756e74206f6620626c6f636b73206265747765656e206361706163697479206368616e67657320666f7220612053504444656661756c744d65726b6c65526f6f74348003170a2e7597b7b7e3d84c05391d139a62b157e78786d8c082f29dcf4c111314042501205468652064656661756c742076616c7565206f662074686520726f6f74206f6620746865204d65726b6c652050617472696369612054726965206f66207468652072756e74696d6564536c617368416d6f756e745065724d617846696c6553697a6518400040e59c30120000000000000000000004c5012054686520736c61736820666163746f722064656475637465642066726f6d20612053746f726167652050726f76696465722773206465706f73697420666f722065766572792073696e676c652073746f726167652070726f6f662074686579206661696c20746f2070726f766964652e605374617274696e6752657075746174696f6e57656967687410100100000004dc205374617274696e672072657075746174696f6e2077656967687420666f722061206e65776c792072656769737465726564204253502e4c4273705369676e55704c6f636b506572696f64101080c613001481012054686520616d6f756e74206f6620626c6f636b732074686174206120425350206d7573742077616974206265666f7265206265696e672061626c6520746f207369676e206f66662c206166746572206265696e67207369676e65642075702e008d01205468697320697320746f2070726576656e7420425350732066726f6d207369676e696e6720757020616e64206f666620746f6f20717569636b6c792c2074687573206d616b696e672069742068617264657220666f7220616e2061747461636b65727d0120746f2073756464656e6c7920686176652061206c6172676520706f7274696f6e206f662074686520746f74616c206e756d626572206f6620425350732e2054686520726561736f6e20666f7220746869732c20697320746861742074686541012061747461636b657220776f756c64206861766520746f206c6f636b2075702061206c6172676520616d6f756e74206f662066756e647320666f72207468697320706572696f64206f662074696d652e444d6178436f6d6d69746d656e7453697a651010e8030000005c5a65726f53697a654275636b657446697865645261746518403000000000000000000000000000000008350120302d73697a65206275636b65742066697865642072617465207061796d656e742073747265616d2028692e652e2074686520616d6f756e742063686172676564206173206120626173652020c82066656520666f722061206275636b6574207468617420646f65736e2774206861766520616e792066696c6573207965742901e906282846696c6553797374656d012846696c6553797374656d403c53746f7261676552657175657374730001040234ed060400004853746f7261676552657175657374427370730001080202e506f9060400186901204120646f75626c65206d61702066726f6d2073746f72616765207265717565737420746f2042535020604163636f756e7449646073207468617420766f6c756e74656572656420746f2073746f7265207468652066696c652e009d0120416e792042535020756e64657220612073746f7261676520726571756573742070726566697820697320636f6e7369646572656420746f206265206120766f6c756e7465657220616e642063616e2062652072656d6f76656420617420616e792074696d652e8102204f6e6365206120425350207375626d69747320612076616c69642070726f6f6620746f20746865207669612074686520606273705f636f6e6669726d5f73746f72696e67602065787472696e7369632c207468652060636f6e6669726d656460206669656c6420696e205b6053746f7261676552657175657374427370734d65746164617461605d2077696c6c2062652073657420746f206074727565602e00bd01205768656e20612073746f7261676520726571756573742069732065787069726564206f722072656d6f7665642c2074686520636f72726573706f6e64696e672073746f7261676520726571756573742070726566697820696e2074686973206d61702069732072656d6f7665642e684275636b6574735769746853746f7261676552657175657374730001080202e50698040004f420426f6f6b6b656570696e67206f6620746865206275636b65747320636f6e7461696e696e67206f70656e2073746f726167652072657175657374732e6453746f726167655265717565737445787069726174696f6e730101040210fd06040004b42041206d6170206f6620626c6f636b7320746f20657870697265642073746f726167652072657175657374732e7846696c6544656c6574696f6e5265717565737445787069726174696f6e7301010402100107040004cc2041206d6170206f6620626c6f636b7320746f20657870697265642066696c652064656c6574696f6e2072657175657374732e704d6f76654275636b65745265717565737445787069726174696f6e7301010402100d07040004c42041206d6170206f6620626c6f636b7320746f2065787069726564206d6f7665206275636b65742072657175657374732ea84e657874417661696c61626c6553746f726167655265717565737445787069726174696f6e426c6f636b01001010000000000c5901204120706f696e74657220746f20746865206561726c6965737420617661696c61626c6520626c6f636b20746f20696e736572742061206e65772073746f7261676520726571756573742065787069726174696f6e2e006d0120546869732073686f756c6420616c776179732062652067726561746572206f7220657175616c207468616e2063757272656e7420626c6f636b202b205b60436f6e6669673a3a53746f726167655265717565737454746c605d2ebc4e657874417661696c61626c6546696c6544656c6574696f6e5265717565737445787069726174696f6e426c6f636b01001010000000000c7101204120706f696e74657220746f20746865206561726c6965737420617661696c61626c6520626c6f636b20746f20696e736572742061206e65772066696c652064656c6574696f6e20726571756573742065787069726174696f6e2e009d0120546869732073686f756c6420616c776179732062652067726561746572206f7220657175616c207468616e2063757272656e7420626c6f636b202b205b60436f6e6669673a3a50656e64696e6746696c6544656c6574696f6e5265717565737454746c605d2eb44e657874417661696c61626c654d6f76654275636b65745265717565737445787069726174696f6e426c6f636b01001010000000000c6901204120706f696e74657220746f20746865206561726c6965737420617661696c61626c6520626c6f636b20746f20696e736572742061206e6577206d6f7665206275636b657420726571756573742065787069726174696f6e2e00790120546869732073686f756c6420616c776179732062652067726561746572206f7220657175616c207468616e2063757272656e7420626c6f636b202b205b60436f6e6669673a3a4d6f76654275636b65745265717565737454746c605d2e684e6578745374617274696e67426c6f636b546f436c65616e55700100101000000000141901204120706f696e74657220746f20746865207374617274696e6720626c6f636b20746f20636c65616e20757020657870697265642073746f726167652072657175657374732e006901204966207468697320626c6f636b20697320626568696e64207468652063757272656e7420626c6f636b206e756d6265722c2074686520636c65616e757020616c676f726974686d20696e20606f6e5f69646c65602077696c6c750120617474656d707420746f20616363656c6572617465207468697320626c6f636b20706f696e74657220617320636c6f736520746f206f7220757020746f207468652063757272656e7420626c6f636b206e756d6265722e205468697319012077696c6c20657865637574652070726f7669646564207468617420746865726520697320656e6f7567682072656d61696e696e672077656967687420746f20646f20736f2e6c50656e64696e6746696c6544656c6574696f6e52657175657374730101040200150704000c802050656e64696e672066696c652064656c6574696f6e2072657175657374732e00f5012041206d617070696e672066726f6d20612075736572206163636f756e7420696420746f2061206c697374206f662070656e64696e672066696c652064656c6574696f6e2072657175657374732c20686f6c64696e672061207475706c65206f66207468652066696c65206b657920616e64206275636b65742069642e6850656e64696e6753746f7053746f72696e6752657175657374730001080202e5061907040018902050656e64696e672066696c652073746f702073746f72696e672072657175657374732e001102204120646f75626c65206d617070696e672066726f6d204253502049447320746f2061206c697374206f662066696c65206b6579732070656e64696e672073746f702073746f72696e6720726571756573747320746f2074686520626c6f636b20696e2077686963682074686f73652072657175657374732077657265206f70656e65648420616e64207468652070726f76656e2073697a65206f66207468652066696c652efd012054686520626c6f636b206e756d626572206973207573656420746f2061766f69642042535073206265696e672061626c6520746f2073746f702073746f72696e672066696c657320696d6d6564696174656c7920776869636820776f756c6420616c6c6f77207468656d20746f2061766f6964206368616c6c656e676573d501206f66206d697373696e672066696c65732e205468652073697a6520697320746f2062652061626c6520746f2064656372656173652074686569722075736564206361706163697479207768656e207468657920636f6e6669726d20746f2073746f702073746f72696e67207468652066696c652e6450656e64696e674d6f76654275636b657452657175657374730001080202e5061d07040010782050656e64696e67206d6f7665206275636b65742072657175657374732e009501204120646f75626c65206d617070696e672066726f6d204d53502049447320746f2061206c697374206f66206275636b65742049447320776869636820746865792063616e20616363657074206f72206465636c696e6520746f2074616b65206f7665722eb8205468652076616c75652069732074686520757365722077686f2072657175657374656420746865206d6f76652e5050656e64696e674275636b657473546f4d6f76650101040234980004090120426f6f6b6b656570696e67206f66206275636b6574732074686174206172652070656e64696e6720746f206265206d6f76656420746f2061206e6577204d53502e445265706c69636174696f6e54617267657401001010000000000cd4204e756d626572206f66204253507320726571756972656420746f2066756c66696c6c20612073746f72616765207265717565737400b501205468697320697320616c736f207573656420617320612064656661756c742076616c756520696620746865204253507320726571756972656420617265206e6f7420737065636966696564207768656e206372656174696e6720612073746f7261676520726571756573742e6c5469636b52616e6765546f4d6178696d756d5468726573686f6c64010010100000000004ed01204e756d626572206f66207469636b7320756e74696c20616c6c204253507320776f756c6420726561636820746865205b60436f6e6669673a3a4d6178696d756d5468726573686f6c64605d20746f20656e73757265207468617420616c6c2042535073206172652061626c6520746f20766f6c756e746565722e013105011102403c54726561737572794163636f756e740080000000000000000000000000000000000000000000000000000000000000000004310120546865207472656173757279206163636f756e74206f66207468652072756e74696d652c2077686572652061206672616374696f6e206f662065616368207061796d656e7420676f65732e6442737053746f7053746f72696e6746696c6550656e616c7479184000a0724e1809000000000000000000000405012050656e616c7479207061796564206279206120425350207768656e207468657920666f72636566756c6c792073746f702073746f72696e6720612066696c652e784d61784261746368436f6e6669726d53746f72616765526571756573747310100a000000049101204d6178696d756d206261746368206f662073746f7261676520726571756573747320746861742063616e20626520636f6e6669726d6564206174206f6e6365207768656e2063616c6c696e6720606273705f636f6e6669726d5f73746f72696e67602e844d617842617463684d7370526573706f6e6453746f72616765526571756573747310100a000000040502204d6178696d756d206261746368206f662073746f7261676520726571756573747320746861742063616e20626520726573706f6e64656420746f206174206f6e6365207768656e2063616c6c696e6720606d73705f726573706f6e645f73746f726167655f72657175657374735f6d756c7469706c655f6275636b657473602e3c4d617846696c655061746853697a651010000200000488204d6178696d756d20627974652073697a65206f6620612066696c6520706174682e344d617850656572496453697a651010640000000480204d6178696d756d20627974652073697a65206f66206120706565722069642e484d61784e756d6265724f665065657249647310100500000004c8204d6178696d756d206e756d626572206f6620706565722069647320666f7220612073746f7261676520726571756573742e6c4d6178446174615365727665724d756c746941646472657373657310100a00000004e0204d6178696d756d206e756d626572206f66206d756c746961646472657373657320666f7220612073746f7261676520726571756573742e584d6178457870697265644974656d73496e426c6f636b101064000000042901204d6178696d756d206e756d626572206f662065787069726564206974656d73202870657220747970652920746f20636c65616e20757020696e20612073696e676c6520626c6f636b2e4453746f726167655265717565737454746c10102800000004902054696d652d746f2d6c69766520666f7220612073746f7261676520726571756573742e7450656e64696e6746696c6544656c6574696f6e5265717565737454746c10102800000004e1012054696d652d746f2d6c69766520666f7220612070656e64696e672066696c652064656c6574696f6e20726571756573742c2061667465722077686963682061207072696f72697479206368616c6c656e67652069732073656e74206f757420746f20656e666f726365207468652064656c6574696f6e2e504d6f76654275636b65745265717565737454746c101028000000045d012054696d652d746f2d6c69766520666f722061206d6f7665206275636b657420726571756573742c20616674657220776869636820746865207265717565737420697320636f6e7369646572656420657870697265642e784d61785573657250656e64696e6744656c6574696f6e526571756573747310100a000000040901204d6178696d756d206e756d626572206f662066696c652064656c6574696f6e207265717565737473206120757365722063616e20686176652070656e64696e672e804d61785573657250656e64696e674d6f76654275636b6574526571756573747310100a000000040101204d6178696d756d206e756d626572206f66206d6f7665206275636b6574207265717565737473206120757365722063616e20686176652070656e64696e672e544d696e57616974466f7253746f7053746f72696e6710100a000000040d02204e756d626572206f6620626c6f636b7320726571756972656420746f2070617373206265747765656e2061204253502072657175657374696e6720746f2073746f702073746f72696e6720612066696c6520616e64206974206265696e672061626c6520746f20636f6e6669726d20746f2073746f702073746f72696e672069742e7453746f72616765526571756573744372656174696f6e4465706f73697418400a00000000000000000000000000000004fc204465706f7369742068656c642066726f6d207468652055736572207768656e206372656174696e672061206e65772073746f726167652072657175657374012107293050726f6f66734465616c6572013050726f6f66734465616c657238505469636b546f4368616c6c656e6765735365656400010402103404001085012041206d617070696e672066726f6d206368616c6c656e676573207469636b20746f20612072616e646f6d2073656564207573656420666f722067656e65726174696e6720746865206368616c6c656e67657320696e2074686174207469636b2e0001012054686973206973207573656420746f206b65657020747261636b206f6620746865206368616c6c656e67657327207365656420696e2074686520706173742e8d012054686973206d617070696e6720676f6573206261636b206f6e6c79205b604368616c6c656e6765486973746f72794c656e677468466f72605d20626c6f636b732e2050726576696f7573206368616c6c656e676573206172652072656d6f7665642e685469636b546f436865636b706f696e744368616c6c656e67657300010402105d0204001851012041206d617070696e672066726f6d206368616c6c656e676573207469636b20746f206120766563746f72206f6620637573746f6d206368616c6c656e676564206b65797320666f722074686174207469636b2e006d012054686973206973207573656420746f206b65657020747261636b206f6620746865206368616c6c656e67657320746861742068617665206265656e206d61646520696e2074686520706173742c207370656369666963616c6c799020696e2074686520636865636b706f696e74206368616c6c656e676520726f756e64732ef42054686520766563746f7220697320626f756e646564206279205b604d6178437573746f6d4368616c6c656e676573506572426c6f636b466f72605d2e89012054686973206d617070696e6720676f6573206261636b206f6e6c79205b604368616c6c656e6765486973746f72794c656e677468466f72605d207469636b732e2050726576696f7573206368616c6c656e676573206172652072656d6f7665642e484c617374436865636b706f696e745469636b010010100000000018ec20546865206368616c6c656e6765207469636b206f6620746865206c61737420636865636b706f696e74206368616c6c656e676520726f756e642e0069012054686973206973207573656420746f2064657465726d696e65207768656e20746f20696e636c75646520746865206368616c6c656e6765732066726f6d20746865205b604368616c6c656e6765735175657565605d20616e647d01205b605072696f726974794368616c6c656e6765735175657565605d20696e20746865205b605469636b546f436865636b706f696e744368616c6c656e676573605d2053746f726167654d61702e20546865736520636865636b706f696e744d01206368616c6c656e676520726f756e6473206861766520746f20626520616e73776572656420627920414c4c2050726f7669646572732c20616e64207468697320697320656e666f72636564206279207468656820607375626d69745f70726f6f66602065787472696e7369632e605469636b546f50726f766964657273446561646c696e6573000108020225079804002045012041206d617070696e672066726f6d206368616c6c656e6765207469636b20746f206120766563746f72206f66206368616c6c656e6765642050726f76696465727320666f722074686174207469636b2e0049012054686973206973207573656420746f206b65657020747261636b206f66207468652050726f76696465727320746861742068617665206265656e206368616c6c656e6765642c20616e642073686f756c644901207375626d697420612070726f6f66206279207468652074696d65206f6620746865205b604368616c6c656e6765735469636b6572605d207265616368657320746865206e756d62657220757365642061735901206b657920696e20746865206d617070696e672e2050726f7669646572732077686f20646f207375626d697420612070726f6f66206172652072656d6f7665642066726f6d20746865697220726573706563746976653d0120656e74727920616e642070757368656420666f727761726420746f20746865206e657874207469636b20696e20776869636820746865792073686f756c64207375626d697420612070726f6f662e4d012054686f73652077686f20617265207374696c6c20696e2074686520656e747279206279207468652074696d6520746865207469636b20697320726561636865642061726520636f6e7369646572656420746fdc2068617665206661696c656420746f207375626d697420612070726f6f6620616e64207375626a65637420746f20736c617368696e672e884c6173745469636b50726f76696465725375626d69747465644150726f6f66466f7200010402341004002465012041206d617070696e672066726f6d20612050726f766964657220746f20746865206c617374207469636b20666f7220776869636820746865792053484f554c442068617665207375626d697474656420612070726f6f662e410120496620666f7220612050726f7669646572206070602c20604c6173745469636b50726f76696465725375626d69747465644150726f6f66466f725b705d6020697320606e602c207468656e2074686531012050726f76696465722073686f756c64207375626d697420612070726f6f6620666f72207469636b20606e202b207374616b655f746f5f6368616c6c656e67655f706572696f64287029602e007101205468697320676574732075706461746564207768656e20612050726f7669646572207375626d69747320612070726f6f66207375636365737366756c6c7920616e64206973207573656420746f2064657465726d696e65207468652d01206e657874207469636b20666f72207768696368207468652050726f76696465722073686f756c64207375626d697420612070726f6f662c20616e64206974277320646561646c696e652e007101204966207468652050726f7669646572206661696c7320746f207375626d697420612070726f6f6620696e2074696d6520616e6420697320736c61736865642c20746869732077696c6c207374696c6c206765742075706461746564c820746f20746865207469636b2069742073686f756c642068617665207375626d697474656420612070726f6f6620666f722e3c4368616c6c656e676573517565756501002907040018d02041207175657565206f66206b65797320746861742068617665206265656e206368616c6c656e676564206d616e75616c6c792e0011012054686520656c656d656e747320696e20746869732071756575652077696c6c206265206368616c6c656e67656420696e2074686520636f6d696e6720626c6f636b732c450120616c7761797320656e737572696e67207468617420746865206d6178696d756d206e756d626572206f66206368616c6c656e6765732070657220626c6f636b206973206e6f742065786365656465642e350120412060426f756e64656456656360206973207573656420626563617573652074686520607061726974795f7363616c655f636f6465633a3a4d6178456e636f6465644c656e6020747261697455012069732072657175697265642c20627574207573696e672061206056656344657175656020776f756c64206265206d6f726520656666696369656e7420617320746869732069732061204649464f2071756575652e5c5072696f726974794368616c6c656e676573517565756501002d07040028f42041207072696f72697479207175657565206f66206b65797320746861742068617665206265656e206368616c6c656e676564206d616e75616c6c792e0025012054686520646966666572656e6365206265747765656e207468697320616e6420604368616c6c656e676573517565756560206973207468617420746865206368616c6c656e676573290120696e20746869732071756575652061726520676976656e207072696f72697479206f76657220746865206f74686572732e20536f20746869732071756575652073686f756c64206265390120656d7074696564206265666f726520616e79206f6620746865206368616c6c656e67657320696e2074686520604368616c6c656e6765735175657565602061726520646973706174636865642ecc20546869732071756575652073686f756c64206e6f742062652061636365737369626c6520746f20746865207075626c69632e11012054686520656c656d656e747320696e20746869732071756575652077696c6c206265206368616c6c656e67656420696e2074686520636f6d696e6720626c6f636b732c450120616c7761797320656e737572696e67207468617420746865206d6178696d756d206e756d626572206f66206368616c6c656e6765732070657220626c6f636b206973206e6f742065786365656465642e350120412060426f756e64656456656360206973207573656420626563617573652074686520607061726974795f7363616c655f636f6465633a3a4d6178456e636f6465644c656e6020747261697455012069732072657175697265642c20627574207573696e672061206056656344657175656020776f756c64206265206d6f726520656666696369656e7420617320746869732069732061204649464f2071756575652e404368616c6c656e6765735469636b6572010010100000000018e8204120636f756e746572206f6620626c6f636b7320696e207768696368206368616c6c656e67657320776572652064697374726962757465642e004101205468697320636f756e746572206973206e6f74206e65636573736172696c79207468652073616d652061732074686520626c6f636b206e756d6265722c206173206368616c6c656e67657320617265490120646973747269627574656420696e2074686520606f6e5f706f6c6c6020686f6f6b2c2077686963682068617070656e732061742074686520626567696e6e696e67206f6620657665727920626c6f636b2ced0120736f206c6f6e672061732074686520626c6f636b206973206e6f742070617274206f662061205b4d756c74692d426c6f636b2d4d6967726174696f6e5d2868747470733a2f2f6769746875622e636f6d2f706172697479746563682f706f6c6b61646f742d73646b2f70756c6c2f313738312920284d424d292e350120447572696e67204d424d736d2c2074686520626c6f636b206e756d62657220696e637265617365732c20627574205b604368616c6c656e6765735469636b6572605d20646f6573206e6f742e48536c61736861626c6550726f7669646572730001040234100400007456616c696450726f6f665375626d6974746572734c6173745469636b730001040210310704001495012041206d617070696e672066726f6d207469636b20746f2050726f7669646572732c20776869636820697320736574206966207468652050726f7669646572207375626d697474656420612076616c69642070726f6f6620696e2074686174207469636b2e005d012054686973206973207573656420746f206b65657020747261636b206f66207468652050726f76696465727320746861742068617665207375626d69747465642070726f6f667320696e20746865206c61737420666577b901207469636b732c20776865726520617661696c6162696c697479206f6e6c7920757020746f20746865206c617374205b60436f6e6669673a3a5461726765745469636b7353746f726167654f665375626d697474657273605d207469636b732069732067756172616e746565642e950120546869732073746f72616765206973207468656e206d61646520617661696c61626c6520666f72206f746865722070616c6c65747320746f20757365207468726f75676820746865206050726f6f665375626d697474657273496e74657266616365602e3c4c61737444656c657465645469636b010010100000000010b90120412076616c7565207468617420726570726573656e747320746865206c617374207469636b2074686174207761732064656c657465642066726f6d20746865205b6056616c696450726f6f665375626d6974746572734c6173745469636b73605d2053746f726167654d61702e00a5012054686973206973207573656420746f206b6e6f77207768696368207469636b20746f2064656c6574652066726f6d20746865205b6056616c696450726f6f665375626d6974746572734c6173745469636b73605d2053746f726167654d6170207768656e207468656820606f6e5f69646c656020686f6f6b2069732063616c6c65642e584368616c6c656e6765735469636b65725061757365640000980400201901204120626f6f6c65616e207468617420726570726573656e7473207768657468657220746865205b604368616c6c656e6765735469636b6572605d206973207061757365642e00c9012042792064656661756c742c2074686973206973206066616c7365602c206d65616e696e67207468617420746865205b604368616c6c656e6765735469636b6572605d20697320696e6372656d656e7465642065766572792074696d6520606f6e5f706f6c6c602069732063616c6c65642ec10120546869732063616e2062652073657420746f2060747275656020776869636820776f756c6420706175736520746865205b604368616c6c656e6765735469636b6572605d2c2070726576656e74696e672060646f5f6e65775f6368616c6c656e6765735f726f756e64602066726f6d6c206265696e672065786563757465642e205468657265666f72653a4d01202d204e6f206e65772072616e646f6d206368616c6c656e67657320776f756c6420626520656d697474656420616e6420616464656420746f205b605469636b546f4368616c6c656e67657353656564605d2e7501202d204e6f206e657720636865636b706f696e74206368616c6c656e67657320776f756c6420626520656d697474656420616e6420616464656420746f205b605469636b546f436865636b706f696e744368616c6c656e676573605d2ef8202d20446561646c696e657320666f722070726f6f66207375626d697373696f6e732061726520696e646566696e6974656c7920706f7374706f6e65642e4050617374426c6f636b73576569676874000104021028040010f82041206d617070696e672066726f6d20626c6f636b206e756d62657220746f2074686520776569676874207573656420696e207468617420626c6f636b2e0021012054686973206973207573656420746f20636865636b20696620746865206e6574776f726b2069732070726573756d61626c7920756e6465722061207370616d2061747461636b2e750120497420697320636c656172656420666f7220626c6f636b73206f6c646572207468616e206063757272656e745f626c6f636b60202d20285b60436f6e6669673a3a426c6f636b46756c6c6e657373506572696f64605d202b2031292e484e6f7446756c6c426c6f636b73436f756e7401001010000000000c9d0120546865206e756d626572206f6620626c6f636b7320746861742068617665206265656e20636f6e73696465726564205f6e6f745f2066756c6c20696e20746865206c617374205b60436f6e6669673a3a426c6f636b46756c6c6e657373506572696f64605d2e0021012054686973206973207573656420746f20636865636b20696620746865206e6574776f726b2069732070726573756d61626c7920756e6465722061207370616d2061747461636b2e0175050131023c6052616e646f6d4368616c6c656e676573506572426c6f636b10100a00000008510120546865206e756d626572206f662072616e646f6d206368616c6c656e6765732074686174206172652067656e6572617465642070657220626c6f636b2c207573696e67207468652072616e646f6d2073656564682067656e65726174656420666f72207468617420626c6f636b2e6c4d6178437573746f6d4368616c6c656e676573506572426c6f636b10100a000000045d0120546865206d6178696d756d206e756d626572206f6620637573746f6d206368616c6c656e67657320746861742063616e206265206d61646520696e20612073696e676c6520636865636b706f696e7420626c6f636b2e584368616c6c656e6765486973746f72794c656e6774681010640000000ce420546865206e756d626572206f66207469636b732074686174206368616c6c656e67657320686973746f7279206973206b65707420666f722e61012041667465722074686973206d616e79207469636b732c206368616c6c656e676573206172652072656d6f7665642066726f6d205b605469636b546f4368616c6c656e67657353656564605d2053746f726167654d61702e4501204120227469636b2220697320757375616c6c79206f6e6520626c6f636b2c2062757420736f6d6520626c6f636b73206d617920626520736b69707065642064756520746f206d6967726174696f6e732e544368616c6c656e67657351756575654c656e6774681010640000000cc820546865206c656e677468206f662074686520604368616c6c656e6765735175657565602053746f7261676556616c75652e1101205468697320697320746f206c696d6974207468652073697a65206f66207468652071756575652c20616e64207468657265666f726520746865206e756d626572206f6690206d616e75616c206368616c6c656e67657320746861742063616e206265206d6164652e64436865636b706f696e744368616c6c656e6765506572696f641010b80b000024750120546865206e756d626572206f6620626c6f636b7320696e206265747765656e206120636865636b706f696e74206368616c6c656e67657320726f756e642028692e652e207769746820637573746f6d206368616c6c656e676573292e61012054686973206973207573656420746f2064657465726d696e65207768656e20746f20696e636c75646520746865206368616c6c656e6765732066726f6d2074686520604368616c6c656e67657351756575656020616e64710120605072696f726974794368616c6c656e67657351756575656020696e207468652060426c6f636b546f4368616c6c656e676573602053746f726167654d61702e20546865736520636865636b706f696e74206368616c6c656e6765610120726f756e6473206861766520746f20626520616e73776572656420627920414c4c2050726f7669646572732c20616e64207468697320697320656e666f726365642062792074686520607375626d69745f70726f6f66602c2065787472696e7369632e006d01205741524e494e473a205468697320706572696f64206e6565647320746f20626520657175616c206f72206c6172676572207468616e20746865206368616c6c656e676520706572696f64206f662074686520736d616c6c6573747d012050726f766964657220696e20746865206e6574776f726b2e2049662074686520736d616c6c6573742050726f7669646572206861732061206368616c6c656e676520706572696f64206f66203130207469636b732028626c6f636b73292c1101207468656e2074686520636865636b706f696e74206368616c6c656e676520706572696f64206e6565647320746f206265206174206c65617374203130207469636b732e585374616b65546f4368616c6c656e6765506572696f64184000009e1869d0290400000000000000000cd42054686520726174696f20746f20636f6e76657274207374616b65642062616c616e636520746f20626c6f636b20706572696f642e65012054686973206973207573656420746f2064657465726d696e652074686520706572696f6420696e20776869636820612050726f76696465722073686f756c64207375626d697420612070726f6f662c206261736564206f6ee501207468656972207374616b652e2054686520706572696f642069732063616c63756c6174656420617320605374616b65546f4368616c6c656e6765506572696f64202f207374616b65602c2073617475726174696e67206174205b60436f6e6669673a3a4d696e4368616c6c656e6765506572696f64605d2e484d696e4368616c6c656e6765506572696f6410101e00000004550120546865206d696e696d756d20706572696f6420696e20776869636820612050726f76696465722063616e206265206368616c6c656e6765642c207265676172646c657373206f66207468656972207374616b652e5c4368616c6c656e67655469636b73546f6c6572616e63651010320000001c59012054686520746f6c6572616e636520696e206e756d626572206f66207469636b732028616c6d6f7374206571756976616c656e7420746f20626c6f636b732c2062757420736b697070696e67204d424d292074686174590120612050726f76696465722068617320746f207375626d697420612070726f6f662c20636f756e74696e672066726f6d20746865207469636b20746865206368616c6c656e676520697320656d697474656420666f723c20746861742050726f76696465722e00650120466f72206578616d706c652c20696620612050726f766964657220697320737570706f73656420746f207375626d697420612070726f6f6620666f72207469636b20606e602c20616e642074686520746f6c6572616e636569012069732073657420746f206074602c207468656e207468652050726f76696465722068617320746f207375626d697420612070726f6f6620666f72206368616c6c656e67657320696e207469636b20606e602c206265666f72652420606e202b2074602e344368616c6c656e67657346656518400010a5d4e800000000000000000000000cb02054686520666565206368617267656420666f72207375626d697474696e672061206368616c6c656e67652e550120546869732066656520676f657320746f207468652054726561737572792c20616e64206973207573656420746f2070726576656e74207370616d2e20526567697374657265642050726f7669646572732061726558206578656d70742066726f6d2074686973206665652e785461726765745469636b7353746f726167654f665375626d6974746572731010030000000c89012054686520746172676574206e756d626572206f66207469636b7320666f7220776869636820746f2073746f726520746865207375626d6974746572732074686174207375626d69747465642076616c69642070726f6f667320696e207468656d2cad012073746f72656420696e20746865206056616c696450726f6f665375626d6974746572734c6173745469636b73602053746f726167654d61702e20546861742073746f726167652077696c6c206265207472696d6d656420646f776e20746f2074686973206e756d6265723101206f66207469636b7320696e2074686520606f6e5f69646c656020686f6f6b206f6620746869732070616c6c65742c20746f2061766f696420626c6f6174696e67207468652073746174652e504d61785375626d6974746572735065725469636b1010e8030000102d0120546865206d6178696d756d20616d6f756e74206f662050726f76696465727320746861742063616e207375626d697420612070726f6f6620696e20612073696e676c6520626c6f636b2e410120416c74686f75676820746869732063616e206265207365656e20617320616e20617262697472617279206c696d69742c2069662073657420746f2074686520616c7265616479206578697374696e67410120696d706c69636974206c696d697420746861742069732022686f77206d616e7920607375626d69745f70726f6f66602065787472696e736963732066697420696e2074686520776569676874206f66f0206120626c6f636b2c207468697320776f756c646e27742061646420616e79206164646974696f6e616c206172746966696369616c206c696d69742e20547265617375727900800000000000000000000000000000000000000000000000000000000000000000106020546865205472656173757279204163636f756e7449642e5820546865206163636f756e7420746f2077686963683adc202d20546865206665657320666f72207375626d697474696e672061206368616c6c656e676520617265207472616e736665727265642e94202d2054686520736c61736865642066756e647320617265207472616e736665727265642e4c426c6f636b46756c6c6e657373506572696f6410103200000024f82054686520706572696f64206f6620626c6f636b7320666f722077686963682074686520626c6f636b2066756c6c6e65737320697320636865636b65642e00690120546869732069732074686520616d6f756e74206f6620626c6f636b732066726f6d2074686520706173742c20666f722077686963682074686520626c6f636b2066756c6c6e65737320686173206265656e20636865636b65645d0120616e642069732073746f7265642e20426c6f636b73206f6c646572207468616e206063757272656e745f626c6f636b60202d205b60436f6e6669673a3a426c6f636b46756c6c6e657373506572696f64605d206172655820636c65617265642066726f6d2073746f726167652e008101205468697320636f6e7374616e742073686f756c6420626520657175616c206f7220736d616c6c6572207468616e20746865205b60436f6e6669673a3a4368616c6c656e67655469636b73546f6c6572616e6365605d20636f6e7374616e742c7d012069662074686520676f616c20697320746f2070726576656e74207370616d6d696e672061747461636b73207468617420776f756c642070726576656e7420686f6e6573742050726f7669646572732066726f6d207375626d697474696e67582074686569722070726f6f667320696e2074696d652e54426c6f636b46756c6c6e65737348656164726f6f6d2818a291e146d10414390120546865206d696e696d756d20756e75736564207765696768742074686174206120626c6f636b206d757374206861766520746f20626520636f6e73696465726564205f6e6f745f2066756c6c2e009101205468697320697320757365642061732070617274206f662074686520637269746572696120666f7220636865636b696e6720696620746865206e6574776f726b2069732070726573756d61626c7920756e6465722061207370616d2061747461636b2e890120466f72206578616d706c652c20746869732063616e2062652073657420746f207468652062656e63686d61726b656420776569676874206f66206120607375626d69745f70726f6f66602065787472696e7369632c20776869636820776f756c648d01206d65616e2074686174206120626c6f636b206973206e6f7420636f6e736964657265642066756c6c206966206120607375626d69745f70726f6f66602065787472696e73696320636f756c642068617665207374696c6c2066697420696e2069742e544d696e4e6f7446756c6c426c6f636b73526174696f0903100065cd1d24710120546865206d696e696d756d20726174696f20286f722070657263656e7461676520696620796f752077696c6c29206f6620626c6f636b732074686174206d75737420626520636f6e73696465726564205f6e6f745f2066756c6c2c51012066726f6d2074686520746f74616c206e756d626572206f66205b60436f6e6669673a3a426c6f636b46756c6c6e657373506572696f64605d20626c6f636b732074616b656e20696e746f206163636f756e742e008501204966206c657373207468616e20746869732070657263656e74616765206f6620626c6f636b7320617265206e6f742066756c6c2c20746865206e6574776f726b7320697320636f6e7369646572656420746f2062652070726573756d61626c795420756e6465722061207370616d2061747461636b2e890120546869732063616e20616c736f2062652074686f75676874206f6620617320746865206d6178696d756d20726174696f206f66206d69736265686176696e6720636f6c6c61746f727320746f6c6572617465642e20466f72206578616d706c652ca10120696620746869732069732073657420746f206050657262696c6c3a3a66726f6d5f70657263656e7428353029602c207468656e206966206d6f7265207468616e2068616c66206f6620746865206c6173742060426c6f636b46756c6c6e657373506572696f6460850120626c6f636b7320617265206e6f742066756c6c2c207468656e206f6e65206f662074686f736520626c6f636b7320737572656c79207761732070726f647563656420627920616e20686f6e65737420636f6c6c61746f722c206d65616e696e677501207468617420746865726520776173206174206c65617374206f6e65207472756c79205f6e6f745f2066756c6c20626c6f636b20696e20746865206c6173742060426c6f636b46756c6c6e657373506572696f646020626c6f636b732e0139072a2852616e646f6d6e657373012852616e646f6d6e657373146c4c61746573744f6e6545706f636841676f52616e646f6d6e65737300003d070400042d02204c61746573742072616e646f6d2073656564206f627461696e65642066726f6d20746865206f6e652065706f63682061676f2072616e646f6d6e6573732066726f6d20424142452c20616e6420746865206c617465737420626c6f636b20746861742069742063616e2070726f636573732072616e646f6d6e6573732072657175657374732066726f6d6c4c6174657374506172656e74426c6f636b52616e646f6d6e65737300003d070400042902204c61746573742072616e646f6d2073656564206f627461696e65642066726f6d2074686520706172656e7420626c6f636b2072616e646f6d6e6573732066726f6d20424142452c20616e6420746865206c617465737420626c6f636b20746861742069742063616e2070726f636573732072616e646f6d6e6573732072657175657374732066726f6d2852656c617945706f636801003020000000000000000004502043757272656e742072656c61792065706f6368ac4c61737452656c6179426c6f636b416e6450617261426c6f636b56616c6964466f724e65787445706f636801001503200000000000000000043d01205468652072656c617920636861696e20626c6f636b2028616e6420616e63686f7265642070617261636861696e20626c6f636b2920746f20757365207768656e2065706f6368206368616e67657340496e686572656e74496e636c75646564000098040004e420456e737572657320746865206d616e6461746f727920696e686572656e742077617320696e636c7564656420696e2074686520626c6f636b01790501790200002b385061796d656e7453747265616d7301385061796d656e7453747265616d7328304f6e506f6c6c5469636b65720100101000000000180901204120636f756e746572206f6620626c6f636b7320666f722077686963682050726f7669646572732063616e206368617267652074686569722073747265616d732e009d01205468697320636f756e746572206973206e6f74206e65636573736172696c79207468652073616d652061732074686520626c6f636b206e756d6265722c20617320746865206c6173742063686172676561626c6520696e666f206f662050726f766964657273bd012028616e642074686520676c6f62616c20707269636520696e6465782920617265207570646174656420696e2074686520606f6e5f706f6c6c6020686f6f6b2c2077686963682068617070656e732061742074686520626567696e6e696e67206f6620657665727920626c6f636b2ced0120736f206c6f6e672061732074686520626c6f636b206973206e6f742070617274206f662061205b4d756c74692d426c6f636b2d4d6967726174696f6e5d2868747470733a2f2f6769746875622e636f6d2f706172697479746563682f706f6c6b61646f742d73646b2f70756c6c2f313738312920284d424d292e190120447572696e67204d424d732c2074686520626c6f636b206e756d62657220696e637265617365732c2062757420604f6e506f6c6c5469636b65726020646f6573206e6f742e5c4669786564526174655061796d656e7453747265616d7300010802024107450704002481012054686520646f75626c65206d617070696e672066726f6d20612050726f76696465722c20746f206974732070726f76696465642055736572732c20746f2074686569722066697865642d72617465207061796d656e742073747265616d732e0065012054686973206973207573656420746f2073746f726520616e64206d616e6167652066697865642d72617465207061796d656e742073747265616d73206265747765656e20557365727320616e642050726f7669646572732e007020546869732073746f72616765206973207570646174656420696e3a0502202d205b6372656174655f66697865645f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a6372656174655f66697865645f726174655f7061796d656e745f73747265616d292c20776869636820616464732061206e657720656e74727920746f20746865206d61702e4902202d205b64656c6574655f66697865645f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a64656c6574655f66697865645f726174655f7061796d656e745f73747265616d292c2077686963682072656d6f7665732074686520636f72726573706f6e64696e6720656e7472792066726f6d20746865206d61702e0102202d205b7570646174655f66697865645f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a7570646174655f66697865645f726174655f7061796d656e745f73747265616d292c20776869636820757064617465732074686520656e7472792773206072617465602ee501202d205b6368617267655f7061796d656e745f73747265616d735d2863726174653a3a646973706174636861626c65733a3a6368617267655f7061796d656e745f73747265616d73292c20776869636820757064617465732074686520656e747279277320606c6173745f636861726765645f7469636b602e6444796e616d6963526174655061796d656e7453747265616d7300010802024107490704002489012054686520646f75626c65206d617070696e672066726f6d20612050726f76696465722c20746f206974732070726f76696465642055736572732c20746f2074686569722064796e616d69632d72617465207061796d656e742073747265616d732e006d012054686973206973207573656420746f2073746f726520616e64206d616e6167652064796e616d69632d72617465207061796d656e742073747265616d73206265747765656e20557365727320616e642050726f7669646572732e007020546869732073746f72616765206973207570646174656420696e3a1502202d205b6372656174655f64796e616d69635f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a6372656174655f64796e616d69635f726174655f7061796d656e745f73747265616d292c20776869636820616464732061206e657720656e74727920746f20746865206d61702e5902202d205b64656c6574655f64796e616d69635f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a64656c6574655f64796e616d69635f726174655f7061796d656e745f73747265616d292c2077686963682072656d6f7665732074686520636f72726573706f6e64696e6720656e7472792066726f6d20746865206d61702e3d02202d205b7570646174655f64796e616d69635f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a7570646174655f64796e616d69635f726174655f7061796d656e745f73747265616d292c20776869636820757064617465732074686520656e74727927732060616d6f756e745f70726f7669646564602e1502202d205b6368617267655f7061796d656e745f73747265616d735d2863726174653a3a646973706174636861626c65733a3a6368617267655f7061796d656e745f73747265616d73292c20776869636820757064617465732074686520656e7472792773206070726963655f696e6465785f7768656e5f6c6173745f63686172676564602e484c61737443686172676561626c65496e666f01010402344d0750000000000000000000000000000000000000000018750220546865206d617070696e672066726f6d20612050726f766964657220746f20697473206c6173742063686172676561626c6520707269636520696e6465782028666f722064796e616d69632d72617465207061796d656e742073747265616d732920616e64206c6173742063686172676561626c65207469636b2028666f722066697865642d72617465207061796d656e742073747265616d73292e0069022054686973206973207573656420746f206b65657020747261636b206f6620746865206c6173742063686172676561626c6520707269636520696e64657820616e64207469636b206e756d62657220666f7220656163682050726f76696465722c20736f20746869732070616c6c65742063616e2063686172676520746865207061796d656e742073747265616d7320636f72726563746c792e007020546869732073746f72616765206973207570646174656420696e3a6502202d205b7570646174655f6c6173745f63686172676561626c655f696e666f5d2863726174653a3a5061796d656e744d616e616765723a3a7570646174655f6c6173745f63686172676561626c655f696e666f292c20776869636820757064617465732074686520656e747279277320606c6173745f63686172676561626c655f7469636b6020616e64206070726963655f696e646578602e704c6173745375626d6974746572735469636b52656769737465726564010010100000000014390120546865206c617374207469636b2066726f6d207468652050726f7669646572732050726f6f66205375626d6974746572732070616c6c657420746861742077617320726567697374657265642e00a5012054686973206973207573656420746f206b65657020747261636b206f6620746865206c617374207469636b2066726f6d207468652050726f7669646572732050726f6f66205375626d6974746572732070616c6c65742c207468617420746869732070616c6c6574a50120726567697374657265642e20466f7220746865207469636b20696e20746869732073746f7261676520656c656d656e742c20746869732070616c6c657420616c7265616479206b6e6f7773207468652050726f7669646572732074686174207375626d69747465643c20612076616c69642070726f6f662e445573657273576974686f757446756e6473000104020010040020c50120546865206d617070696e672066726f6d2061207573657220746f20696620697420686173206265656e20666c616767656420666f72206e6f7420686176696e6720656e6f7567682066756e647320746f2070617920666f7220697473207265717565737465642073657276696365732e00c5012054686973206973207573656420746f20666c6167207573657273207468617420646f206e6f74206861766520656e6f7567682066756e647320746f2070617920666f72207468656972207265717565737465642073657276696365732c20736f206f746865722050726f766964657273942063616e2073746f702070726f766964696e6720736572766963657320746f207468656d2e007020546869732073746f72616765206973207570646174656420696e3a9902202d205b6368617267655f7061796d656e745f73747265616d735d2863726174653a3a646973706174636861626c65733a3a6368617267655f7061796d656e745f73747265616d73292c20776869636820656d6974732061206055736572576974686f757446756e647360206576656e7420616e642073657473207468652075736572277320656e74727920696e2074686973206d617020696620697420646f6573206e6f745501206861766520656e6f7567682066756e64732c20616e6420636c656172732074686520656e747279206966206974207761732073657420616e642074686520757365722068617320656e6f7567682066756e64732e3c526567697374657265645573657273010104020010100000000028b90120546865206d617070696e672066726f6d2061207573657220746f20696620697420686173206265656e207265676973746572656420746f20746865206e6574776f726b20616e642074686520616d6f756e74206f66207061796d656e742073747265616d73206974206861732e0029022053696e6365207573657273206861766520746f2070726f766964652061206465706f73697420746f2062652061626c6520746f206f70656e2065616368207061796d656e742073747265616d2c2074686973206973207573656420746f206b65657020747261636b206f662074686520616d6f756e74206f66207061796d656e742073747265616d7361012074686174206120757365722068617320616e6420697420697320616c736f2075736566756c20746f20636865636b2069662061207573657220686173207265676973746572656420746f20746865206e6574776f726b2e007020546869732073746f72616765206973207570646174656420696e3a8102202d205b6372656174655f66697865645f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a6372656174655f66697865645f726174655f7061796d656e745f73747265616d292c20776869636820686f6c647320746865206465706f736974206f6620746865207573657220616e642061646473206f6e6520746f20746869732073746f726167652e9102202d205b6372656174655f64796e616d69635f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a6372656174655f64796e616d69635f726174655f7061796d656e745f73747265616d292c20776869636820686f6c647320746865206465706f736974206f6620746865207573657220616e642061646473206f6e6520746f20746869732073746f726167652e7102202d205b72656d6f76655f66697865645f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a72656d6f76655f66697865645f726174655f7061796d656e745f73747265616d292c2077686963682072656d6f766573206f6e652066726f6d20746869732073746f7261676520616e642072656c656173657320746865206465706f7369742e8102202d205b72656d6f76655f64796e616d69635f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a72656d6f76655f64796e616d69635f726174655f7061796d656e745f73747265616d292c2077686963682072656d6f766573206f6e652066726f6d20746869732073746f7261676520616e642072656c656173657320746865206465706f7369742e6843757272656e745072696365506572556e69745065725469636b0100184000000000000000000000000000000000181902205468652063757272656e742070726963652070657220756e697420706572207469636b206f66207468652070726f766964656420736572766963652c207573656420746f2063616c63756c6174652074686520616d6f756e7420746f2063686172676520666f722064796e616d69632d72617465207061796d656e742073747265616d732e009102205468697320697320757064617465642065616368207469636b207573696e672074686520666f726d756c61207468617420636f6e7369646572732063757272656e742073797374656d2063617061636974792028746f74616c2073746f72616765206f66207468652073797374656d2920616e642073797374656d20617661696c6162696c6974792028746f74616c2073746f7261676520617661696c61626c65292e007020546869732073746f72616765206973207570646174656420696e3a6d02202d205b646f5f7570646174655f63757272656e745f70726963655f7065725f756e69745f7065725f7469636b5d2863726174653a3a7574696c733a3a646f5f7570646174655f63757272656e745f70726963655f7065725f756e69745f7065725f7469636b292c2077686963682075706461746573207468652063757272656e742070726963652070657220756e697420706572207469636b2e54416363756d756c617465645072696365496e646578010018400000000000000000000000000000000020d1012054686520616363756d756c6174656420707269636520696e6465782073696e63652067656e657369732c207573656420746f2063616c63756c6174652074686520616d6f756e7420746f2063686172676520666f722064796e616d69632d72617465207061796d656e742073747265616d732e00f9012054686973206973206571756976616c656e7420746f207768617420697420776f756c64206861766520636f737420746f2070726f76696465206f6e6520756e6974206f66207468652070726f766964656420736572766963652073696e63652074686520626567696e6e696e67206f6620746865206e6574776f726b2e050220576520757365207468697320746f2063616c63756c6174652074686520616d6f756e7420746f2063686172676520666f722064796e616d69632d72617465207061796d656e742073747265616d732c20627920636865636b696e67206f75742074686520646966666572656e6365206265747765656e2074686520696e6465785501207768656e20746865207061796d656e742073747265616d20776173206c61737420636861726765642c20616e642074686520696e64657820617420746865206c6173742063686172676561626c65207469636b2e007020546869732073746f72616765206973207570646174656420696e3a2d02202d205b646f5f7570646174655f70726963655f696e6465785d2863726174653a3a7574696c733a3a646f5f7570646174655f70726963655f696e646578292c20776869636820757064617465732074686520616363756d756c6174656420707269636520696e6465782c20616464696e6720746f206974207468652063757272656e742070726963652e4c50726976696c6567656450726f76696465727300010402349804001084204d617070696e67206f662050726976696c656765642050726f7669646572732e004d012050726976696c656765642050726f766964657273206172652074686f73652077686f2061726520616c6c6f77656420746f2063686172676520757020746f207468652063757272656e74207469636b20696e21012066697865642072617465207061796d656e742073747265616d732c207265676172646c657373206f66207468656972205b604c61737443686172676561626c65496e666f605d2e017d05017d0210404e657753747265616d4465706f73697410100a00000014910120546865206e756d626572206f66207469636b73207468617420636f72726573706f6e6420746f20746865206465706f7369742074686174206120557365722068617320746f2070617920746f206f70656e2061207061796d656e742073747265616d2ea1012054686973206d65616e7320746861742c2066726f6d207468652062616c616e6365206f6620746865205573657220666f7220776869636820746865207061796d656e742073747265616d206973206265696e6720637265617465642c2074686520616d6f756e74d420604e657753747265616d4465706f736974202a2072617465602077696c6c2062652068656c642061732061206465706f7369742e250220496e207468652063617365206f662064796e616d69632d72617465207061796d656e742073747265616d732c206072617465602077696c6c2062652060616d6f756e745f70726f7669646564202a2063757272656e745f736572766963655f7072696365602c207768657265206063757272656e745f736572766963655f70726963656020686173310120746f2062652070726f7669646564206279207468652070616c6c6574207573696e672074686520605061796d656e7453747265616d73496e746572666163656020696e746572666163652e6055736572576974686f757446756e6473436f6f6c646f776e10106400000008ed0120546865206e756d626572206f66207469636b732074686174206120757365722077696c6c206861766520746f207761697420616674657220697420686173206265656e20666c616767656420617320776974686f75742066756e647320746f2062652061626c6520746f20636c656172207468617420666c6167c90120616e642062652061626c6520746f2070617920666f7220736572766963657320616761696e2e204966207468657265277320616e79206f75747374616e64696e672064656274207768656e2074686520666c616720697320636c65617265642c2069742077696c6c20626520706169642e3c54726561737572794163636f756e740080000000000000000000000000000000000000000000000000000000000000000004310120546865207472656173757279206163636f756e74206f66207468652072756e74696d652c2077686572652061206672616374696f6e206f662065616368207061796d656e7420676f65732e404d61785573657273546f43686172676510100a00000008610120546865206d6178696d756d20616d6f756e74206f66205573657273207468617420612050726f76696465722063616e2063686172676520696e20612073696e676c652065787472696e73696320657865637574696f6e2ed5012054686973206973207573656420746f2070726576656e7420612050726f76696465722066726f6d206368617267696e6720746f6f206d616e7920557365727320696e20612073696e676c6520626c6f636b2c20776869636820636f756c64206c65616420746f206120446f532061747461636b2e0151072c284275636b65744e66747300018105018502000155072d104e66747301104e6674733c28436f6c6c656374696f6e00010402105907040004642044657461696c73206f66206120636f6c6c656374696f6e2e4c4f776e657273686970416363657074616e636500010402001004000429012054686520636f6c6c656374696f6e2c20696620616e792c206f6620776869636820616e206163636f756e742069732077696c6c696e6720746f2074616b65206f776e6572736869702e1c4163636f756e7400010c0202025d0798040008590120546865206974656d732068656c6420627920616e7920676976656e206163636f756e743b20736574206f757420746869732077617920736f2074686174206974656d73206f776e656420627920612073696e676c656c206163636f756e742063616e20626520656e756d6572617465642e44436f6c6c656374696f6e4163636f756e74000108020261079804000869012054686520636f6c6c656374696f6e73206f776e656420627920616e7920676976656e206163636f756e743b20736574206f757420746869732077617920736f207468617420636f6c6c656374696f6e73206f776e65642062799020612073696e676c65206163636f756e742063616e20626520656e756d6572617465642e40436f6c6c656374696f6e526f6c654f66000108020265076907040008d020546865206974656d7320696e206578697374656e636520616e64207468656972206f776e6572736869702064657461696c732ea02053746f72657320636f6c6c656374696f6e20726f6c657320617320706572206163636f756e742e104974656d000108020215037107040004d020546865206974656d7320696e206578697374656e636520616e64207468656972206f776e6572736869702064657461696c732e50436f6c6c656374696f6e4d657461646174614f660001040210890704000468204d65746164617461206f66206120636f6c6c656374696f6e2e384974656d4d657461646174614f66000108020215038d0704000454204d65746164617461206f6620616e206974656d2e244174747269627574650001100202020295079907040004702041747472696275746573206f66206120636f6c6c656374696f6e2e2c4974656d50726963654f6600010802021503a107040004502041207072696365206f6620616e206974656d2e644974656d41747472696275746573417070726f76616c734f6601010802021503a50704000468204974656d2061747472696275746520617070726f76616c732e404e657874436f6c6c656374696f6e496400001004000831012053746f726573207468652060436f6c6c656374696f6e496460207468617420697320676f696e6720746f206265207573656420666f7220746865206e65787420636f6c6c656374696f6e2ef02054686973206765747320696e6372656d656e746564207768656e657665722061206e657720636f6c6c656374696f6e20697320637265617465642e3450656e64696e67537761704f6600010802021503ad070400047c2048616e646c657320616c6c207468652070656e64696e672073776170732e48436f6c6c656374696f6e436f6e6669674f6600010402108d050400046020436f6e666967206f66206120636f6c6c656374696f6e2e304974656d436f6e6669674f6600010802021503b9050400044c20436f6e666967206f6620616e206974656d2e0189050189023844436f6c6c656374696f6e4465706f736974184000407a10f35a000000000000000000000401012054686520626173696320616d6f756e74206f662066756e64732074686174206d75737420626520726573657276656420666f7220636f6c6c656374696f6e2e2c4974656d4465706f73697418400010a5d4e8000000000000000000000004f42054686520626173696320616d6f756e74206f662066756e64732074686174206d75737420626520726573657276656420666f7220616e206974656d2e4c4d657461646174614465706f73697442617365184000a0724e180900000000000000000000044d012054686520626173696320616d6f756e74206f662066756e64732074686174206d757374206265207265736572766564207768656e20616464696e67206d6574616461746120746f20796f7572206974656d2e504174747269627574654465706f73697442617365184000a0724e1809000000000000000000000455012054686520626173696320616d6f756e74206f662066756e64732074686174206d757374206265207265736572766564207768656e20616464696e6720616e2061747472696275746520746f20616e206974656d2e384465706f7369745065724279746518400010a5d4e8000000000000000000000008590120546865206164646974696f6e616c2066756e64732074686174206d75737420626520726573657276656420666f7220746865206e756d626572206f662062797465732073746f726520696e206d657461646174612cc02065697468657220226e6f726d616c22206d65746164617461206f7220617474726962757465206d657461646174612e2c537472696e674c696d697410100001000004b020546865206d6178696d756d206c656e677468206f6620646174612073746f726564206f6e2d636861696e2e204b65794c696d697410104000000004a020546865206d6178696d756d206c656e677468206f6620616e20617474726962757465206b65792e2856616c75654c696d697410100001000004a820546865206d6178696d756d206c656e677468206f6620616e206174747269627574652076616c75652e38417070726f76616c734c696d697410101400000004a820546865206d6178696d756d20617070726f76616c7320616e206974656d20636f756c6420686176652e704974656d41747472696275746573417070726f76616c734c696d697410101400000004d420546865206d6178696d756d206174747269627574657320617070726f76616c7320616e206974656d20636f756c6420686176652e1c4d61785469707310100a00000004a820546865206d6178206e756d626572206f6620746970732061207573657220636f756c642073656e642e4c4d6178446561646c696e654475726174696f6e1010001a4f0004a820546865206d6178206475726174696f6e20696e20626c6f636b7320666f7220646561646c696e65732e504d61784174747269627574657350657243616c6c10100a00000004e020546865206d6178206e756d626572206f6620617474726962757465732061207573657220636f756c6420736574207065722063616c6c2e204665617475726573b10720000000000000000004902044697361626c657320736f6d65206f662070616c6c657427732066656174757265732e01b9073228506172616d65746572730128506172616d65746572730428506172616d657465727300010402b10201030400044c2053746f72656420706172616d65746572732e01e50501ad02000033bd07042848436865636b4e6f6e5a65726f53656e646572c5079840436865636b5370656356657273696f6ec9071038436865636b547856657273696f6ecd071030436865636b47656e65736973d1073438436865636b4d6f7274616c697479d5073428436865636b4e6f6e6365dd07982c436865636b576569676874e10798604368617267655472616e73616374696f6e5061796d656e74e507985053746f726167655765696768745265636c61696de9079844436865636b4d6574616461746148617368ed0780f507" } \ No newline at end of file diff --git a/client/common/src/types.rs b/client/common/src/types.rs index 336d8e3ea..1e0186a68 100644 --- a/client/common/src/types.rs +++ b/client/common/src/types.rs @@ -32,15 +32,17 @@ pub type BlockNumber = frame_system::pallet_prelude::BlockNumberFor; pub type TickNumber = pallet_file_system::types::TickNumber; pub type StorageData = pallet_file_system::types::StorageData; pub type FileLocation = pallet_file_system::types::FileLocation; -pub type FileKeyResponsesInput = pallet_file_system::types::FileKeyResponsesInput; pub type MaxBatchMspRespondStorageRequests = pallet_file_system::types::MaxBatchMspRespondStorageRequests; +pub type StorageRequestMspBucketResponse = + pallet_file_system::types::StorageRequestMspBucketResponse; +pub type StorageRequestMspResponse = pallet_file_system::types::StorageRequestMspResponse; pub type MaxUsersToCharge = pallet_payment_streams::types::MaxUsersToChargeFor; -pub type MspStorageRequestResponse = pallet_file_system::types::MspStorageRequestResponse; -pub type AcceptedStorageRequestParameters = - pallet_file_system::types::AcceptedStorageRequestParameters; pub type RejectedStorageRequestReason = pallet_file_system::types::RejectedStorageRequestReason; -pub type BatchResponses = pallet_file_system::types::BatchResponses; +pub type RejectedStorageRequest = pallet_file_system::types::RejectedStorageRequest; +pub type StorageRequestMspAcceptedFileKeys = + pallet_file_system::types::StorageRequestMspAcceptedFileKeys; +pub type FileKeyWithProof = pallet_file_system::types::FileKeyWithProof; pub type PeerIds = pallet_file_system::types::PeerIds; pub type BucketId = pallet_storage_providers::types::MerklePatriciaRoot; pub type StorageProviderId = pallet_storage_providers::types::StorageProviderId; diff --git a/client/indexer-db/migrations/2024-09-27-152605_create_bucket/up.sql b/client/indexer-db/migrations/2024-09-27-152605_create_bucket/up.sql index 29225906e..3151d21e0 100644 --- a/client/indexer-db/migrations/2024-09-27-152605_create_bucket/up.sql +++ b/client/indexer-db/migrations/2024-09-27-152605_create_bucket/up.sql @@ -1,7 +1,7 @@ -- Create Bucket table CREATE TABLE bucket ( id SERIAL PRIMARY KEY, - msp_id INTEGER NOT NULL, + msp_id INTEGER, account VARCHAR NOT NULL, onchain_bucket_id VARCHAR NOT NULL, name BYTEA NOT NULL, diff --git a/client/indexer-db/src/models/bucket.rs b/client/indexer-db/src/models/bucket.rs index 7de01cd65..7459c031c 100644 --- a/client/indexer-db/src/models/bucket.rs +++ b/client/indexer-db/src/models/bucket.rs @@ -12,7 +12,7 @@ pub struct Bucket { /// The ID of the Bucket as stored in the database. For the runtime id, use `onchain_bucket_id`. pub id: i32, /// The ID of the MSP (column in the database) that the bucket belongs to. - pub msp_id: i32, + pub msp_id: Option, pub account: String, pub onchain_bucket_id: String, pub name: Vec, @@ -25,7 +25,7 @@ pub struct Bucket { impl Bucket { pub async fn create<'a>( conn: &mut DbConnection<'a>, - msp_id: i32, + msp_id: Option, account: String, onchain_bucket_id: String, name: Vec, diff --git a/client/indexer-db/src/schema.rs b/client/indexer-db/src/schema.rs index c29ca71dc..e5cbb5cc3 100644 --- a/client/indexer-db/src/schema.rs +++ b/client/indexer-db/src/schema.rs @@ -23,7 +23,7 @@ diesel::table! { diesel::table! { bucket (id) { id -> Int4, - msp_id -> Int4, + msp_id -> Nullable, account -> Varchar, onchain_bucket_id -> Varchar, name -> Bytea, diff --git a/client/indexer-service/src/handler.rs b/client/indexer-service/src/handler.rs index b121c1147..005963fcf 100644 --- a/client/indexer-service/src/handler.rs +++ b/client/indexer-service/src/handler.rs @@ -187,10 +187,15 @@ impl IndexerService { private, value_prop_id: _, } => { - let msp = Msp::get_by_onchain_msp_id(conn, msp_id.to_string()).await?; + let msp = match msp_id { + Some(msp_id) => { + Some(Msp::get_by_onchain_msp_id(conn, msp_id.to_string()).await?) + } + None => None, + }; Bucket::create( conn, - msp.id, + msp.map(|m| m.id), who.to_string(), bucket_id.to_string(), name.to_vec(), @@ -220,14 +225,15 @@ impl IndexerService { } pallet_file_system::Event::BspConfirmStoppedStoring { .. } => {} pallet_file_system::Event::BspConfirmedStoring { .. } => {} - pallet_file_system::Event::MspRespondedToStorageRequests { .. } => {} pallet_file_system::Event::NewStorageRequest { .. } => {} pallet_file_system::Event::MoveBucketRequested { .. } => {} pallet_file_system::Event::NewCollectionAndAssociation { .. } => {} pallet_file_system::Event::AcceptedBspVolunteer { .. } => {} pallet_file_system::Event::StorageRequestFulfilled { .. } => {} pallet_file_system::Event::StorageRequestExpired { .. } => {} + pallet_file_system::Event::StorageRequestRejected { .. } => {} pallet_file_system::Event::StorageRequestRevoked { .. } => {} + pallet_file_system::Event::MspAcceptedStorageRequest { .. } => {} pallet_file_system::Event::BspRequestedToStopStoring { .. } => {} pallet_file_system::Event::PriorityChallengeForFileDeletionQueued { .. } => {} pallet_file_system::Event::SpStopStoringInsolventUser { .. } => {} @@ -237,7 +243,6 @@ impl IndexerService { pallet_file_system::Event::BspChallengeCycleInitialised { .. } => {} pallet_file_system::Event::MoveBucketRequestExpired { .. } => {} pallet_file_system::Event::MoveBucketRejected { .. } => {} - pallet_file_system::Event::DataServerRegisteredForMoveBucket { .. } => {} pallet_file_system::Event::MspStoppedStoringBucket { .. } => {} pallet_file_system::Event::BucketDeleted { .. } => {} pallet_file_system::Event::__Ignore(_, _) => {} @@ -444,6 +449,7 @@ impl IndexerService { } => { Msp::delete(conn, who.to_string()).await?; } + pallet_storage_providers::Event::BucketRootChanged { .. } => {} pallet_storage_providers::Event::Slashed { provider_id, amount_slashed: _amount_slashed, diff --git a/node/src/tasks/msp_upload_file.rs b/node/src/tasks/msp_upload_file.rs index af1cd5104..2506472d9 100644 --- a/node/src/tasks/msp_upload_file.rs +++ b/node/src/tasks/msp_upload_file.rs @@ -2,7 +2,7 @@ use std::collections::HashMap; use std::{cmp::max, str::FromStr, time::Duration}; use anyhow::anyhow; -use pallet_file_system::types::BatchResponses; +use pallet_file_system::types::RejectedStorageRequest; use sc_network::PeerId; use sc_tracing::tracing::*; use shc_blockchain_service::types::{MspRespondStorageRequest, RespondStorageRequest, Tip}; @@ -15,15 +15,16 @@ use shc_actors_framework::event_bus::EventHandler; use shc_blockchain_service::events::ProcessMspRespondStoringRequest; use shc_blockchain_service::{commands::BlockchainServiceInterface, events::NewStorageRequest}; use shc_common::types::{ - AcceptedStorageRequestParameters, FileKey, FileMetadata, HashT, MspStorageRequestResponse, - RejectedStorageRequestReason, StorageProofsMerkleTrieLayout, StorageProviderId, + FileKey, FileKeyWithProof, FileMetadata, HashT, RejectedStorageRequestReason, + StorageProofsMerkleTrieLayout, StorageProviderId, StorageRequestMspAcceptedFileKeys, + StorageRequestMspBucketResponse, }; use shc_file_manager::traits::{FileStorageWriteError, FileStorageWriteOutcome}; use shc_file_transfer_service::{ commands::FileTransferServiceInterface, events::RemoteUploadRequest, }; use shc_forest_manager::traits::ForestStorage; -use storage_hub_runtime::{RuntimeEvent, StorageDataUnit}; +use storage_hub_runtime::StorageDataUnit; const LOG_TARGET: &str = "msp-upload-file-task"; @@ -177,16 +178,16 @@ where let call = storage_hub_runtime::RuntimeCall::FileSystem( pallet_file_system::Call::msp_respond_storage_requests_multiple_buckets { - file_key_responses_input: bounded_vec![( - bucket_id, - MspStorageRequestResponse { + storage_request_msp_response: bounded_vec![ + StorageRequestMspBucketResponse { + bucket_id, accept: None, - reject: Some(bounded_vec![( - H256(event.file_key.into()), - RejectedStorageRequestReason::ReceivedInvalidProof, - )]) + reject: bounded_vec![RejectedStorageRequest { + file_key: H256(event.file_key.into()), + reason: RejectedStorageRequestReason::ReceivedInvalidProof, + }], } - )], + ], }, ); @@ -230,16 +231,16 @@ where FileStorageWriteError::FileDoesNotExist => { let call = storage_hub_runtime::RuntimeCall::FileSystem( pallet_file_system::Call::msp_respond_storage_requests_multiple_buckets { - file_key_responses_input: bounded_vec![( - bucket_id, - MspStorageRequestResponse { + storage_request_msp_response: bounded_vec![ + StorageRequestMspBucketResponse { + bucket_id, accept: None, - reject: Some(bounded_vec![( - H256(event.file_key.into()), - RejectedStorageRequestReason::InternalError - )]) + reject: bounded_vec![RejectedStorageRequest { + file_key: H256(event.file_key.into()), + reason: RejectedStorageRequestReason::InternalError, + }], } - )], + ], }, ); @@ -269,16 +270,16 @@ where // This internal error should not happen. let call = storage_hub_runtime::RuntimeCall::FileSystem( pallet_file_system::Call::msp_respond_storage_requests_multiple_buckets { - file_key_responses_input: bounded_vec![( - bucket_id, - MspStorageRequestResponse { + storage_request_msp_response: bounded_vec![ + StorageRequestMspBucketResponse { + bucket_id, accept: None, - reject: Some(bounded_vec![( - H256(event.file_key.into()), - RejectedStorageRequestReason::InternalError - )]) + reject: bounded_vec![RejectedStorageRequest { + file_key: H256(event.file_key.into()), + reason: RejectedStorageRequestReason::InternalError, + }], } - )], + ], }, ); @@ -303,16 +304,16 @@ where // This means that something is seriously wrong, so we error out the whole task. let call = storage_hub_runtime::RuntimeCall::FileSystem( pallet_file_system::Call::msp_respond_storage_requests_multiple_buckets { - file_key_responses_input: bounded_vec![( - bucket_id, - MspStorageRequestResponse { + storage_request_msp_response: bounded_vec![ + StorageRequestMspBucketResponse { + bucket_id, accept: None, - reject: Some(bounded_vec![( - H256(event.file_key.into()), - RejectedStorageRequestReason::InternalError - )]) + reject: bounded_vec![RejectedStorageRequest { + file_key: H256(event.file_key.into()), + reason: RejectedStorageRequestReason::InternalError, + }], } - )], + ], }, ); @@ -337,16 +338,16 @@ where // This means that something is seriously wrong, so we error out the whole task. let call = storage_hub_runtime::RuntimeCall::FileSystem( pallet_file_system::Call::msp_respond_storage_requests_multiple_buckets { - file_key_responses_input: bounded_vec![( - bucket_id, - MspStorageRequestResponse { + storage_request_msp_response: bounded_vec![ + StorageRequestMspBucketResponse { + bucket_id, accept: None, - reject: Some(bounded_vec![( - H256(event.file_key.into()), - RejectedStorageRequestReason::InternalError - )]) + reject: bounded_vec![RejectedStorageRequest { + file_key: H256(event.file_key.into()), + reason: RejectedStorageRequestReason::InternalError, + }], } - )], + ], }, ); @@ -418,10 +419,7 @@ where } }; - let mut file_key_responses: HashMap< - H256, - (Vec<(H256, _)>, Vec<(H256, RejectedStorageRequestReason)>), - > = HashMap::new(); + let mut file_key_responses = HashMap::new(); let read_file_storage = self.storage_hub_handler.file_storage.read().await; @@ -468,19 +466,25 @@ where } }; - entry.0.push((respond.file_key, proof)); + entry.0.push(FileKeyWithProof { + file_key: respond.file_key, + proof, + }); } MspRespondStorageRequest::Reject(reason) => { - entry.1.push((respond.file_key, reason.clone())); + entry.1.push(RejectedStorageRequest { + file_key: respond.file_key, + reason: reason.clone(), + }); } } } drop(read_file_storage); - let mut final_responses: HashMap = HashMap::new(); + let mut storage_request_msp_response = Vec::new(); - for (bucket_id, (accepts, rejects)) in file_key_responses.iter_mut() { + for (bucket_id, (accept, reject)) in file_key_responses.iter_mut() { let fs = match self .storage_hub_handler .forest_storage_handler @@ -496,89 +500,75 @@ where } }; - let file_keys: Vec<_> = accepts.iter().map(|(file_key, _)| *file_key).collect(); - - let non_inclusion_forest_proof = match fs.read().await.generate_proof(file_keys) { - Ok(proof) => proof, - Err(e) => { - error!(target: LOG_TARGET, "Failed to generate non-inclusion forest proof: {:?}", e); - continue; - } - }; + let accept = if !accept.is_empty() { + let file_keys: Vec<_> = accept + .iter() + .map(|file_key_with_proof| file_key_with_proof.file_key) + .collect(); - let response = MspStorageRequestResponse { - accept: if !accepts.is_empty() { - Some(AcceptedStorageRequestParameters { - file_keys_and_proofs: accepts - .clone() - .try_into() - .map_err(|_| anyhow!("Failed to convert accepts to bounded vec"))?, - non_inclusion_forest_proof: non_inclusion_forest_proof.proof, - }) - } else { - None - }, - reject: if !rejects.is_empty() { - Some( - rejects - .clone() - .try_into() - .map_err(|_| anyhow!("Failed to convert rejects to bounded vec"))?, - ) - } else { - None - }, + let non_inclusion_forest_proof = match fs.read().await.generate_proof(file_keys) { + Ok(proof) => proof, + Err(e) => { + error!(target: LOG_TARGET, "Failed to generate non-inclusion forest proof: {:?}", e); + continue; + } + }; + + Some(StorageRequestMspAcceptedFileKeys { + file_keys_and_proofs: accept + .clone() + .try_into() + .map_err(|_| anyhow!("Failed to convert accepts to bounded vec"))?, + non_inclusion_forest_proof: non_inclusion_forest_proof.proof, + }) + } else { + None }; - final_responses.insert(*bucket_id, response); + storage_request_msp_response.push(StorageRequestMspBucketResponse { + bucket_id: *bucket_id, + accept, + reject: reject + .clone() + .try_into() + .map_err(|_| anyhow!("Failed to convert rejects to bounded vec"))?, + }); } let call = storage_hub_runtime::RuntimeCall::FileSystem( pallet_file_system::Call::msp_respond_storage_requests_multiple_buckets { - file_key_responses_input: final_responses - .into_iter() - .collect::>() + storage_request_msp_response: storage_request_msp_response + .clone() .try_into() .map_err(|_| anyhow!("Failed to convert file key responses to bounded vec"))?, }, ); - let events = self - .storage_hub_handler + self.storage_hub_handler .blockchain .send_extrinsic(call, Tip::from(0)) .await? .with_timeout(Duration::from_secs(60)) - .watch_for_success_with_events(&self.storage_hub_handler.blockchain) + .watch_for_success(&self.storage_hub_handler.blockchain) .await?; // Apply the necessary deltas to each one of the bucket's forest storage to reflect the result. - let results = events - .iter() - .find_map(|event| match &event.event { - RuntimeEvent::FileSystem( - pallet_file_system::Event::MspRespondedToStorageRequests { results }, - ) => Some(results.clone()), - _ => None, - }) - .ok_or_else(|| anyhow!("Failed to find MspRespondedToStorageRequests event"))?; - - if results.msp_id != own_msp_id { - let err_msg = format!( - "Expected MSP ID {:?} but got {:?}", - own_msp_id, results.msp_id - ); - error!(target: LOG_TARGET, "{}", err_msg); - return Err(anyhow!(err_msg)); - } - - for batch_responses in results.responses { + for storage_request_msp_bucket_response in storage_request_msp_response { // Add the file keys that were accepted to the forest storage of the bucket. - if let BatchResponses::Accepted(accepted) = &batch_responses { + if let Some(StorageRequestMspAcceptedFileKeys { + file_keys_and_proofs, + .. + }) = &storage_request_msp_bucket_response.accept + { let fs = self .storage_hub_handler .forest_storage_handler - .get(&accepted.bucket_id.as_ref().to_vec()) + .get( + &storage_request_msp_bucket_response + .bucket_id + .as_ref() + .to_vec(), + ) .await .ok_or_else(|| anyhow!("Failed to get forest storage."))?; @@ -586,20 +576,19 @@ where let read_file_storage = self.storage_hub_handler.file_storage.read().await; - let file_metadatas: Vec = accepted - .file_keys + let file_metadatas: Vec = file_keys_and_proofs .iter() - .filter_map(|file_key| { - match read_file_storage.get_metadata(&file_key) { + .filter_map(|file_key_with_proof| { + match read_file_storage.get_metadata(&file_key_with_proof.file_key) { Ok(Some(metadata)) => Some(metadata), Ok(None) => { // TODO: Should probably save this to state and retry later. - error!(target: LOG_TARGET, "CRITICAL❗️❗️ File does not exist after responding to storage request for file key {:?}", file_key); + error!(target: LOG_TARGET, "CRITICAL❗️❗️ File does not exist after responding to storage request for file key {:?}", file_key_with_proof.file_key); None } Err(e) => { // TODO: Should probably save this to state and retry later. - error!(target: LOG_TARGET, "CRITICAL❗️❗️ Failed to get file metadata after responding to storage request for file key {:?}: {:?}", file_key, e); + error!(target: LOG_TARGET, "CRITICAL❗️❗️ Failed to get file metadata after responding to storage request for file key {:?}: {:?}", file_key_with_proof.file_key, e); None } } @@ -612,30 +601,15 @@ where // TODO: Should probably figure out a way to stop storing the file. error!(target: LOG_TARGET, "CRITICAL❗️❗️ Failed to insert file metadatas after responding to storage requests: {:?}", e); } - - let local_bucket_root = write_fs.root(); - if local_bucket_root != accepted.new_bucket_root { - // TODO: Should probably figure out a way to stop storing the file. - error!(target: LOG_TARGET, "CRITICAL❗️❗️ Local bucket root after applying delta does not match the new bucket root on chain."); - continue; - } } - // Delete all files that were rejected from the file manager. - if let BatchResponses::Rejected(rejected) = &batch_responses { - let mut fs = self.storage_hub_handler.file_storage.write().await; + let mut fs = self.storage_hub_handler.file_storage.write().await; - for (file_key, _reason) in &rejected.file_keys { - if let Err(e) = fs.delete_file(&file_key) { - error!(target: LOG_TARGET, "Failed to delete file {:?}: {:?}", file_key, e); - } - } - } - - // Process the failed file keys. - if let BatchResponses::Failed(failed) = batch_responses { - for (_file_key, _reason) in &failed.file_keys { - // TODO: Handle failed file keys. + for RejectedStorageRequest { file_key, .. } in + &storage_request_msp_bucket_response.reject + { + if let Err(e) = fs.delete_file(&file_key) { + error!(target: LOG_TARGET, "Failed to delete file {:?}: {:?}", file_key, e); } } } @@ -743,16 +717,14 @@ where // Reject the storage request. let call = storage_hub_runtime::RuntimeCall::FileSystem( pallet_file_system::Call::msp_respond_storage_requests_multiple_buckets { - file_key_responses_input: bounded_vec![( - event.bucket_id, - MspStorageRequestResponse { - accept: None, - reject: Some(bounded_vec![( - H256(file_key.into()), - RejectedStorageRequestReason::FileKeyAlreadyStored, - )]) - } - )], + storage_request_msp_response: bounded_vec![StorageRequestMspBucketResponse { + bucket_id: event.bucket_id, + accept: None, + reject: bounded_vec![RejectedStorageRequest { + file_key: H256(file_key.into()), + reason: RejectedStorageRequestReason::FileKeyAlreadyStored, + }], + }], }, ); @@ -878,16 +850,16 @@ where // Build extrinsic. let call = storage_hub_runtime::RuntimeCall::FileSystem( pallet_file_system::Call::msp_respond_storage_requests_multiple_buckets { - file_key_responses_input: bounded_vec![( - event.bucket_id, - MspStorageRequestResponse { + storage_request_msp_response: bounded_vec![ + StorageRequestMspBucketResponse { + bucket_id: event.bucket_id, accept: None, - reject: Some(bounded_vec![( - H256(event.file_key.into()), - RejectedStorageRequestReason::ReachedMaximumCapacity, - )]) + reject: bounded_vec![RejectedStorageRequest { + file_key: H256(event.file_key.into()), + reason: RejectedStorageRequestReason::ReachedMaximumCapacity, + }], } - )], + ], }, ); diff --git a/node/src/tasks/user_sends_file.rs b/node/src/tasks/user_sends_file.rs index 57d662620..8adb93876 100644 --- a/node/src/tasks/user_sends_file.rs +++ b/node/src/tasks/user_sends_file.rs @@ -137,7 +137,10 @@ where info!(target: LOG_TARGET, "No peers were found to receive file key {:?}", file_key); } - self.send_chunks_to_provider(peer_ids, &file_metadata).await + self.send_chunks_to_provider(peer_ids, &file_metadata) + .await?; + + Ok(()) } } diff --git a/pallets/bucket-nfts/src/tests.rs b/pallets/bucket-nfts/src/tests.rs index eb42a174c..1592086cb 100644 --- a/pallets/bucket-nfts/src/tests.rs +++ b/pallets/bucket-nfts/src/tests.rs @@ -29,15 +29,14 @@ mod share_access_tests { assert_ok!(FileSystem::create_bucket( issuer_origin.clone(), - msp_id, + Some(msp_id), bucket_name.clone(), true, - value_prop_id + Some(value_prop_id) )); let bucket_id = <::Buckets as ReadBucketsInterface>::derive_bucket_id( - &msp_id, &issuer, bucket_name, ); @@ -81,15 +80,14 @@ mod share_access_tests { assert_ok!(FileSystem::create_bucket( issuer_origin.clone(), - msp_id, + Some(msp_id), bucket_name.clone(), true, - value_prop_id + Some(value_prop_id) )); let bucket_id = <::Buckets as ReadBucketsInterface>::derive_bucket_id( - &msp_id, &issuer, bucket_name, ); @@ -117,11 +115,10 @@ mod share_access_tests { let bucket_name = BoundedVec::try_from(b"bucket".to_vec()).unwrap(); let msp = Keyring::Charlie.to_account_id(); - let (msp_id, _) = add_msp_to_provider_storage(&msp); + let _ = add_msp_to_provider_storage(&msp); let bucket_id = <::Buckets as ReadBucketsInterface>::derive_bucket_id( - &msp_id, &issuer, bucket_name, ); @@ -154,15 +151,14 @@ mod share_access_tests { // Create a public bucket (no collection ID) assert_ok!(FileSystem::create_bucket( issuer_origin.clone(), - msp_id, + Some(msp_id), bucket_name.clone(), false, - value_prop_id + Some(value_prop_id) )); let bucket_id = <::Buckets as ReadBucketsInterface>::derive_bucket_id( - &msp_id, &issuer, bucket_name, ); @@ -194,15 +190,14 @@ mod share_access_tests { assert_ok!(FileSystem::create_bucket( issuer_origin.clone(), - msp_id, + Some(msp_id), bucket_name.clone(), true, - value_prop_id + Some(value_prop_id) )); let bucket_id = <::Buckets as ReadBucketsInterface>::derive_bucket_id( - &msp_id, &issuer, bucket_name, ); @@ -245,15 +240,14 @@ mod update_read_access_tests { assert_ok!(FileSystem::create_bucket( issuer_origin.clone(), - msp_id, + Some(msp_id), bucket_name.clone(), true, - value_prop_id + Some(value_prop_id) )); let bucket_id = <::Buckets as ReadBucketsInterface>::derive_bucket_id( - &msp_id, &issuer, bucket_name, ); @@ -307,15 +301,14 @@ mod update_read_access_tests { assert_ok!(FileSystem::create_bucket( issuer_origin.clone(), - msp_id, + Some(msp_id), bucket_name.clone(), true, - value_prop_id + Some(value_prop_id) )); let bucket_id = <::Buckets as ReadBucketsInterface>::derive_bucket_id( - &msp_id, &issuer, bucket_name, ); @@ -350,11 +343,10 @@ mod update_read_access_tests { let bucket_name = BoundedVec::try_from(b"bucket".to_vec()).unwrap(); let msp = Keyring::Charlie.to_account_id(); - let (msp_id, _) = add_msp_to_provider_storage(&msp); + let _ = add_msp_to_provider_storage(&msp); let bucket_id = <::Buckets as ReadBucketsInterface>::derive_bucket_id( - &msp_id, &issuer, bucket_name, ); @@ -384,15 +376,14 @@ mod update_read_access_tests { assert_ok!(FileSystem::create_bucket( issuer_origin.clone(), - msp_id, + Some(msp_id), bucket_name.clone(), true, - value_prop_id + Some(value_prop_id) )); let bucket_id = <::Buckets as ReadBucketsInterface>::derive_bucket_id( - &msp_id, &issuer, bucket_name, ); diff --git a/pallets/file-system/src/lib.rs b/pallets/file-system/src/lib.rs index f88975fdb..7e889676e 100644 --- a/pallets/file-system/src/lib.rs +++ b/pallets/file-system/src/lib.rs @@ -475,12 +475,12 @@ pub mod pallet { /// Notifies that a new bucket has been created. NewBucket { who: T::AccountId, - msp_id: ProviderIdFor, + msp_id: Option>, bucket_id: BucketIdFor, name: BucketNameFor, collection_id: Option>, private: bool, - value_prop_id: ValuePropId, + value_prop_id: Option>, }, /// Notifies that an empty bucket has been deleted. BucketDeleted { @@ -517,10 +517,16 @@ pub mod pallet { size: StorageData, peer_ids: PeerIds, }, - /// Notifies that a MSP has responded to storage request(s). - MspRespondedToStorageRequests { - results: MspRespondStorageRequestsResult, - }, + /// Notifies that a Main Storage Provider (MSP) has accepted a storage request for a specific file key. + /// + /// This event is emitted when an MSP agrees to store a file, but the storage request + /// is not yet fully fulfilled (i.e., the required number of Backup Storage Providers + /// have not yet confirmed storage). + /// + /// # Note + /// This event is not emitted when the storage request is immediately fulfilled upon + /// MSP acceptance. In such cases, a [`StorageRequestFulfilled`] event is emitted instead. + MspAcceptedStorageRequest { file_key: MerkleHash }, /// Notifies that a BSP has been accepted to store a given file. AcceptedBspVolunteer { bsp_id: ProviderIdFor, @@ -539,12 +545,26 @@ pub mod pallet { new_root: MerkleHash, }, /// Notifies that a storage request for a file key has been fulfilled. + /// This means that the storage request has been accepted by the MSP and the BSP target + /// has been reached. StorageRequestFulfilled { file_key: MerkleHash }, - /// Notifies the expiration of a storage request. + /// Notifies the expiration of a storage request. This means that the storage request has + /// been accepted by the MSP but the BSP target has not been reached (possibly 0 BSPs). + /// Note: This is a valid storage outcome, the user being responsible to track the number + /// of BSPs and choose to either delete the file and re-issue a storage request or continue. StorageRequestExpired { file_key: MerkleHash }, /// Notifies that a storage request has been revoked by the user who initiated it. + /// Note: the BSPs who confirmed the file are also issued a priority challenge to delete the + /// file. StorageRequestRevoked { file_key: MerkleHash }, - /// Notifies that a BSP has opened a request to stop storing a file. + /// Notifies that a storage request has either been directly rejected by the MSP or + /// the MSP did not respond to the storage request in time. + /// Note: There might be BSPs that have volunteered and confirmed the file already, for + /// which a priority challenge to delete the file will be issued. + StorageRequestRejected { + file_key: MerkleHash, + reason: RejectedStorageRequestReason, + }, BspRequestedToStopStoring { bsp_id: ProviderIdFor, file_key: MerkleHash, @@ -580,7 +600,7 @@ pub mod pallet { user: T::AccountId, file_key: MerkleHash, bucket_id: BucketIdFor, - msp_id: ProviderIdFor, + msp_id: Option>, proof_of_inclusion: bool, }, /// Notifies that a proof has been submitted for a pending file deletion request. @@ -612,11 +632,6 @@ pub mod pallet { bucket_id: BucketIdFor, msp_id: ProviderIdFor, }, - /// Notifies that a data server has been registered for a move bucket request. - DataServerRegisteredForMoveBucket { - bsp_id: ProviderIdFor, - bucket_id: BucketIdFor, - }, /// Notifies that a MSP has stopped storing a bucket. MspStoppedStoringBucket { msp_id: ProviderIdFor, @@ -780,10 +795,10 @@ pub mod pallet { #[pallet::weight(Weight::from_parts(10_000, 0) + T::DbWeight::get().writes(1))] pub fn create_bucket( origin: OriginFor, - msp_id: ProviderIdFor, + msp_id: Option>, name: BucketNameFor, private: bool, - value_prop_id: ValuePropId, + value_prop_id: Option>, ) -> DispatchResult { let who = ensure_signed(origin)?; @@ -925,7 +940,7 @@ pub mod pallet { location: FileLocation, fingerprint: Fingerprint, size: StorageData, - msp_id: ProviderIdFor, + msp_id: Option>, peer_ids: PeerIds, ) -> DispatchResult { // Check that the extrinsic was signed and get the signer @@ -938,7 +953,7 @@ pub mod pallet { location.clone(), fingerprint, size, - Some(msp_id), + msp_id, None, Some(peer_ids.clone()), )?; @@ -989,15 +1004,12 @@ pub mod pallet { #[pallet::weight(10_000 + T::DbWeight::get().reads_writes(1,1).ref_time())] pub fn msp_respond_storage_requests_multiple_buckets( origin: OriginFor, - file_key_responses_input: FileKeyResponsesInput, + storage_request_msp_response: StorageRequestMspResponse, ) -> DispatchResult { // Check that the extrinsic was signed and get the signer. let who = ensure_signed(origin)?; - let results = - Self::do_msp_respond_storage_request(who.clone(), file_key_responses_input)?; - - Self::deposit_event(Event::MspRespondedToStorageRequests { results }); + Self::do_msp_respond_storage_request(who.clone(), storage_request_msp_response)?; Ok(()) } diff --git a/pallets/file-system/src/tests.rs b/pallets/file-system/src/tests.rs index 2d9b2f2b5..b50852f71 100644 --- a/pallets/file-system/src/tests.rs +++ b/pallets/file-system/src/tests.rs @@ -2,12 +2,11 @@ use crate::{ self as file_system, mock::*, types::{ - AcceptedStorageRequestParameters, BatchResponses, BucketIdFor, BucketMoveRequestResponse, - BucketNameFor, FileKeyResponsesInput, FileLocation, MerkleHash, MoveBucketRequestMetadata, - MspFailedBatchStorageRequests, MspRejectedBatchStorageRequests, - MspRespondStorageRequestsResult, MspStorageRequestResponse, PeerIds, - PendingFileDeletionRequestTtl, ProviderIdFor, StorageData, StorageRequestBspsMetadata, - StorageRequestMetadata, StorageRequestTtl, ThresholdType, ValuePropId, + BucketIdFor, BucketMoveRequestResponse, BucketNameFor, FileKeyWithProof, FileLocation, + MoveBucketRequestMetadata, PeerIds, PendingFileDeletionRequestTtl, ProviderIdFor, + StorageData, StorageRequestBspsMetadata, StorageRequestMetadata, + StorageRequestMspAcceptedFileKeys, StorageRequestMspBucketResponse, StorageRequestTtl, + ThresholdType, ValuePropId, }, Config, Error, Event, PendingBucketsToMove, PendingMoveBucketRequests, PendingStopStoringRequests, ReplicationTarget, StorageRequestExpirations, StorageRequests, @@ -38,7 +37,6 @@ use sp_runtime::{ traits::{BlakeTwo256, Get, Zero}, BoundedVec, DispatchError, }; -use sp_std::collections::btree_map::BTreeMap; use sp_trie::CompactProof; mod create_bucket_tests { @@ -60,10 +58,10 @@ mod create_bucket_tests { assert_noop!( FileSystem::create_bucket( origin, - H256::from_slice(&msp.as_slice()), + Some(H256::from_slice(&msp.as_slice())), name, true, - ValuePropId::::default() + Some(ValuePropId::::default()) ), Error::::NotAMsp ); @@ -82,7 +80,13 @@ mod create_bucket_tests { let (msp_id, value_prop_id) = add_msp_to_provider_storage(&msp); assert_noop!( - FileSystem::create_bucket(origin, msp_id, name.clone(), private, value_prop_id), + FileSystem::create_bucket( + origin, + Some(msp_id), + name.clone(), + private, + Some(value_prop_id) + ), pallet_storage_providers::Error::::NotEnoughBalance ); }); @@ -109,7 +113,6 @@ mod create_bucket_tests { let (msp_id, value_prop_id) = add_msp_to_provider_storage(&msp); let bucket_id = ::Providers::derive_bucket_id( - &msp_id, &owner, name.clone(), ); @@ -117,10 +120,10 @@ mod create_bucket_tests { // Dispatch a signed extrinsic. assert_ok!(FileSystem::create_bucket( origin, - msp_id, + Some(msp_id), name.clone(), private, - value_prop_id + Some(value_prop_id) )); // Check if collection was created @@ -153,12 +156,12 @@ mod create_bucket_tests { System::assert_last_event( Event::NewBucket { who: owner.clone(), - msp_id, + msp_id: Some(msp_id), bucket_id, name, collection_id: Some(0), private, - value_prop_id, + value_prop_id: Some(value_prop_id), } .into(), ); @@ -180,7 +183,6 @@ mod create_bucket_tests { let (msp_id, value_prop_id) = add_msp_to_provider_storage(&msp); let bucket_id = ::Providers::derive_bucket_id( - &msp_id, &owner, name.clone(), ); @@ -188,10 +190,10 @@ mod create_bucket_tests { // Dispatch a signed extrinsic. assert_ok!(FileSystem::create_bucket( origin, - msp_id, + Some(msp_id), name.clone(), private, - value_prop_id + Some(value_prop_id) )); // Check that the bucket does not have a corresponding collection @@ -207,12 +209,12 @@ mod create_bucket_tests { System::assert_last_event( Event::NewBucket { who: owner, - msp_id, + msp_id: Some(msp_id), bucket_id, name, collection_id: None, private, - value_prop_id, + value_prop_id: Some(value_prop_id), } .into(), ); @@ -235,10 +237,9 @@ mod delete_bucket_tests { let msp = Keyring::Charlie.to_account_id(); let name = BoundedVec::try_from(b"bucket".to_vec()).unwrap(); - let (msp_id, _) = add_msp_to_provider_storage(&msp); + let _ = add_msp_to_provider_storage(&msp); let bucket_id = ::Providers::derive_bucket_id( - &msp_id, &owner, name.clone(), ); @@ -263,7 +264,6 @@ mod delete_bucket_tests { let (msp_id, value_prop_id) = add_msp_to_provider_storage(&msp); let bucket_id = ::Providers::derive_bucket_id( - &msp_id, &owner, name.clone(), ); @@ -271,10 +271,10 @@ mod delete_bucket_tests { // Dispatch a signed extrinsic. assert_ok!(FileSystem::create_bucket( RuntimeOrigin::signed(owner.clone()), - msp_id, + Some(msp_id), name.clone(), private, - value_prop_id + Some(value_prop_id) )); assert_noop!( @@ -296,7 +296,6 @@ mod delete_bucket_tests { let (msp_id, value_prop_id) = add_msp_to_provider_storage(&msp); let bucket_id = ::Providers::derive_bucket_id( - &msp_id, &owner, name.clone(), ); @@ -304,10 +303,10 @@ mod delete_bucket_tests { // Create a new bucket. assert_ok!(FileSystem::create_bucket( origin.clone(), - msp_id, + Some(msp_id), name.clone(), private, - value_prop_id + Some(value_prop_id) )); // Dispatch a signed extrinsic of a storage request. @@ -317,36 +316,34 @@ mod delete_bucket_tests { FileLocation::::try_from(b"test".to_vec()).unwrap(), BlakeTwo256::hash(&b"test".to_vec()), 4, - msp_id, + Some(msp_id), BoundedVec::try_from(vec![BoundedVec::try_from(vec![1]).unwrap()]).unwrap(), )); // Accept the storage request to store the file, so the bucket is not empty. assert_ok!(FileSystem::msp_respond_storage_requests_multiple_buckets( RuntimeOrigin::signed(msp), - bounded_vec![( + bounded_vec![StorageRequestMspBucketResponse { bucket_id, - MspStorageRequestResponse { - accept: Some(AcceptedStorageRequestParameters { - file_keys_and_proofs: bounded_vec![( - FileSystem::compute_file_key( - owner.clone(), - bucket_id, - FileLocation::::try_from(b"test".to_vec()).unwrap(), - 4, - BlakeTwo256::hash(&b"test".to_vec()) - ), - CompactProof { - encoded_nodes: vec![H256::default().as_ref().to_vec()], - } - )], - non_inclusion_forest_proof: CompactProof { + accept: Some(StorageRequestMspAcceptedFileKeys { + file_keys_and_proofs: bounded_vec![FileKeyWithProof { + file_key: FileSystem::compute_file_key( + owner.clone(), + bucket_id, + FileLocation::::try_from(b"test".to_vec()).unwrap(), + 4, + BlakeTwo256::hash(&b"test".to_vec()) + ), + proof: CompactProof { encoded_nodes: vec![H256::default().as_ref().to_vec()], - }, - }), - reject: None - } - )] + } + }], + non_inclusion_forest_proof: CompactProof { + encoded_nodes: vec![H256::default().as_ref().to_vec()], + }, + }), + reject: bounded_vec![], + }], )); // Make sure the bucket is now not empty. @@ -382,7 +379,6 @@ mod delete_bucket_tests { let (msp_id, value_prop_id) = add_msp_to_provider_storage(&msp); let bucket_id = ::Providers::derive_bucket_id( - &msp_id, &owner, name.clone(), ); @@ -390,10 +386,10 @@ mod delete_bucket_tests { // Create a new bucket. assert_ok!(FileSystem::create_bucket( origin.clone(), - msp_id, + Some(msp_id), name.clone(), private, - value_prop_id + Some(value_prop_id) )); // Dispatch a signed extrinsic. @@ -430,7 +426,6 @@ mod delete_bucket_tests { let (msp_id, value_prop_id) = add_msp_to_provider_storage(&msp); let bucket_id = ::Providers::derive_bucket_id( - &msp_id, &owner, name.clone(), ); @@ -438,10 +433,10 @@ mod delete_bucket_tests { // Create a new bucket. assert_ok!(FileSystem::create_bucket( origin.clone(), - msp_id, + Some(msp_id), name.clone(), private, - value_prop_id + Some(value_prop_id) )); // Get the bucket's collection ID. @@ -486,7 +481,6 @@ mod delete_bucket_tests { let (msp_id, value_prop_id) = add_msp_to_provider_storage(&msp); let bucket_id = ::Providers::derive_bucket_id( - &msp_id, &owner, name.clone(), ); @@ -494,10 +488,10 @@ mod delete_bucket_tests { // Create a new bucket. assert_ok!(FileSystem::create_bucket( origin.clone(), - msp_id, + Some(msp_id), name.clone(), private, - value_prop_id + Some(value_prop_id) )); // Dispatch a signed extrinsic of a storage request. @@ -507,36 +501,34 @@ mod delete_bucket_tests { FileLocation::::try_from(b"test".to_vec()).unwrap(), BlakeTwo256::hash(&b"test".to_vec()), 4, - msp_id, + Some(msp_id), BoundedVec::try_from(vec![BoundedVec::try_from(vec![1]).unwrap()]).unwrap(), )); // Accept the storage request to store the file, so the bucket is not empty. assert_ok!(FileSystem::msp_respond_storage_requests_multiple_buckets( RuntimeOrigin::signed(msp), - bounded_vec![( + bounded_vec![StorageRequestMspBucketResponse { bucket_id, - MspStorageRequestResponse { - accept: Some(AcceptedStorageRequestParameters { - file_keys_and_proofs: bounded_vec![( - FileSystem::compute_file_key( - owner.clone(), - bucket_id, - FileLocation::::try_from(b"test".to_vec()).unwrap(), - 4, - BlakeTwo256::hash(&b"test".to_vec()) - ), - CompactProof { - encoded_nodes: vec![H256::default().as_ref().to_vec()], - } - )], - non_inclusion_forest_proof: CompactProof { + accept: Some(StorageRequestMspAcceptedFileKeys { + file_keys_and_proofs: bounded_vec![FileKeyWithProof { + file_key: FileSystem::compute_file_key( + owner.clone(), + bucket_id, + FileLocation::::try_from(b"test".to_vec()).unwrap(), + 4, + BlakeTwo256::hash(&b"test".to_vec()) + ), + proof: CompactProof { encoded_nodes: vec![H256::default().as_ref().to_vec()], - }, - }), - reject: None - } - )] + } + }], + non_inclusion_forest_proof: CompactProof { + encoded_nodes: vec![H256::default().as_ref().to_vec()], + }, + }), + reject: bounded_vec![], + }], )); // Make sure the bucket is now not empty. @@ -625,7 +617,7 @@ mod request_move_bucket { location.clone(), fingerprint, 4, - msp_charlie_id, + Some(msp_charlie_id), peer_ids.clone(), )); @@ -770,7 +762,7 @@ mod request_move_bucket { location.clone(), fingerprint, size, - msp_charlie_id, + Some(msp_charlie_id), peer_ids.clone(), )); @@ -803,23 +795,21 @@ mod request_move_bucket { // This operation increases the bucket size. assert_ok!(FileSystem::msp_respond_storage_requests_multiple_buckets( RuntimeOrigin::signed(msp_charlie), - bounded_vec![( + bounded_vec![StorageRequestMspBucketResponse { bucket_id, - MspStorageRequestResponse { - accept: Some(AcceptedStorageRequestParameters { - file_keys_and_proofs: bounded_vec![( - file_key, - CompactProof { - encoded_nodes: vec![H256::default().as_ref().to_vec()], - } - )], - non_inclusion_forest_proof: CompactProof { + accept: Some(StorageRequestMspAcceptedFileKeys { + file_keys_and_proofs: bounded_vec![FileKeyWithProof { + file_key, + proof: CompactProof { encoded_nodes: vec![H256::default().as_ref().to_vec()], - }, - }), - reject: None - } - )] + } + }], + non_inclusion_forest_proof: CompactProof { + encoded_nodes: vec![H256::default().as_ref().to_vec()], + }, + }), + reject: bounded_vec![], + }], )); // Check bucket size @@ -1137,10 +1127,9 @@ mod update_bucket_privacy_tests { let msp = Keyring::Charlie.to_account_id(); let name = BoundedVec::try_from(b"bucket".to_vec()).unwrap(); - let (msp_id, _) = add_msp_to_provider_storage(&msp); + let _ = add_msp_to_provider_storage(&msp); let bucket_id = ::Providers::derive_bucket_id( - &msp_id, &owner, name.clone(), ); @@ -1167,7 +1156,6 @@ mod update_bucket_privacy_tests { let (msp_id, value_prop_id) = add_msp_to_provider_storage(&msp); let bucket_id = ::Providers::derive_bucket_id( - &msp_id, &owner, name.clone(), ); @@ -1175,10 +1163,10 @@ mod update_bucket_privacy_tests { // Dispatch a signed extrinsic. assert_ok!(FileSystem::create_bucket( origin.clone(), - msp_id, + Some(msp_id), name.clone(), private, - value_prop_id + Some(value_prop_id) )); // Check if collection was created @@ -1194,12 +1182,12 @@ mod update_bucket_privacy_tests { System::assert_last_event( Event::NewBucket { who: owner.clone(), - msp_id, + msp_id: Some(msp_id), bucket_id, name, collection_id: Some(0), private, - value_prop_id, + value_prop_id: Some(value_prop_id), } .into(), ); @@ -1241,7 +1229,6 @@ mod update_bucket_privacy_tests { let (msp_id, value_prop_id) = add_msp_to_provider_storage(&msp); let bucket_id = ::Providers::derive_bucket_id( - &msp_id, &owner, name.clone(), ); @@ -1249,10 +1236,10 @@ mod update_bucket_privacy_tests { // Dispatch a signed extrinsic. assert_ok!(FileSystem::create_bucket( origin.clone(), - msp_id, + Some(msp_id), name.clone(), private, - value_prop_id + Some(value_prop_id) )); // Check if collection was created @@ -1268,12 +1255,12 @@ mod update_bucket_privacy_tests { System::assert_last_event( Event::NewBucket { who: owner.clone(), - msp_id, + msp_id: Some(msp_id), bucket_id, name, collection_id: Some(0), private, - value_prop_id, + value_prop_id: Some(value_prop_id), } .into(), ); @@ -1342,7 +1329,6 @@ mod update_bucket_privacy_tests { let (msp_id, value_prop_id) = add_msp_to_provider_storage(&msp); let bucket_id = ::Providers::derive_bucket_id( - &msp_id, &owner, name.clone(), ); @@ -1350,10 +1336,10 @@ mod update_bucket_privacy_tests { // Dispatch a signed extrinsic. assert_ok!(FileSystem::create_bucket( origin.clone(), - msp_id, + Some(msp_id), name.clone(), private, - value_prop_id + Some(value_prop_id) )); // Check that the bucket does not have a corresponding collection @@ -1369,12 +1355,12 @@ mod update_bucket_privacy_tests { System::assert_last_event( Event::NewBucket { who: owner.clone(), - msp_id, + msp_id: Some(msp_id), bucket_id, name, collection_id: Some(0), private, - value_prop_id, + value_prop_id: Some(value_prop_id), } .into(), ); @@ -1448,10 +1434,9 @@ mod create_and_associate_collection_with_bucket_tests { let msp = Keyring::Charlie.to_account_id(); let name = BoundedVec::try_from(b"bucket".to_vec()).unwrap(); - let (msp_id, _) = add_msp_to_provider_storage(&msp); + let _ = add_msp_to_provider_storage(&msp); let bucket_id = ::Providers::derive_bucket_id( - &msp_id, &owner, name.clone(), ); @@ -1479,7 +1464,6 @@ mod create_and_associate_collection_with_bucket_tests { let (msp_id, value_prop_id) = add_msp_to_provider_storage(&msp); let bucket_id = ::Providers::derive_bucket_id( - &msp_id, &owner, name.clone(), ); @@ -1487,10 +1471,10 @@ mod create_and_associate_collection_with_bucket_tests { // Dispatch a signed extrinsic. assert_ok!(FileSystem::create_bucket( origin.clone(), - msp_id, + Some(msp_id), name.clone(), private, - value_prop_id + Some(value_prop_id) )); // Check if collection was created @@ -1566,7 +1550,7 @@ mod request_storage { location.clone(), fingerprint, 4, - msp_id, + Some(msp_id), peer_ids.clone(), ), pallet_storage_providers::Error::::BucketNotFound @@ -1599,7 +1583,7 @@ mod request_storage { location.clone(), fingerprint, 4, - msp_id, + Some(msp_id), peer_ids.clone(), ), Error::::NotBucketOwner @@ -1655,7 +1639,7 @@ mod request_storage { location.clone(), fingerprint, 4, - msp_charlie_id, + Some(msp_charlie_id), peer_ids.clone(), ), Error::::BucketIsBeingMoved @@ -1708,7 +1692,7 @@ mod request_storage { location.clone(), fingerprint, size, - msp_id, + Some(msp_id), peer_ids.clone(), ), Error::::CannotHoldDeposit @@ -1766,7 +1750,7 @@ mod request_storage { location.clone(), fingerprint, size, - msp_id, + Some(msp_id), peer_ids.clone(), )); @@ -1858,7 +1842,7 @@ mod request_storage { file_1_location.clone(), fingerprint, size, - msp_id, + Some(msp_id), peer_ids.clone(), )); @@ -1895,7 +1879,7 @@ mod request_storage { file_2_location.clone(), fingerprint, size, - msp_id, + Some(msp_id), peer_ids.clone(), )); @@ -1972,7 +1956,7 @@ mod request_storage { location.clone(), fingerprint, size, - msp_id, + Some(msp_id), peer_ids.clone(), ), Error::::FileSizeCannotBeZero @@ -2010,7 +1994,7 @@ mod request_storage { location.clone(), fingerprint, size, - msp_id, + Some(msp_id), peer_ids.clone(), )); @@ -2125,7 +2109,7 @@ mod request_storage { location.clone(), fingerprint, 4, - msp_id, + Some(msp_id), peer_ids, )); @@ -2203,7 +2187,7 @@ mod request_storage { location.clone(), fingerprint, 4, - msp_id, + Some(msp_id), peer_ids, )); @@ -2301,7 +2285,7 @@ mod revoke_storage_request { location.clone(), fingerprint, 4, - msp_id, + Some(msp_id), Default::default() )); @@ -2351,7 +2335,7 @@ mod revoke_storage_request { location.clone(), fingerprint, 4, - msp_id, + Some(msp_id), Default::default() )); @@ -2403,7 +2387,7 @@ mod revoke_storage_request { location.clone(), fingerprint, 4, - msp_id, + Some(msp_id), peer_ids.clone(), )); @@ -2469,7 +2453,7 @@ mod revoke_storage_request { location.clone(), fingerprint, 4, - msp_id, + Some(msp_id), peer_ids.clone(), )); @@ -2524,11 +2508,6 @@ mod msp_respond_storage_request { mod success { use super::*; - use crate::types::{ - AcceptedStorageRequestParameters, MspAcceptedBatchStorageRequests, - MspStorageRequestResponse, RejectedStorageRequestReason, - }; - use sp_core::crypto::AccountId32; #[test] fn msp_respond_storage_request_works() { @@ -2549,7 +2528,8 @@ mod msp_respond_storage_request { // Create the bucket that will hold the file. // Create the bucket that will hold the file. let name = BoundedVec::try_from(b"bucket".to_vec()).unwrap(); - let bucket_id = create_bucket(&owner_account_id.clone(), name, msp_id, value_prop_id); + let bucket_id = + create_bucket(&owner_account_id.clone(), name, msp_id, value_prop_id); // Dispatch a storage request. assert_ok!(FileSystem::issue_storage_request( @@ -2558,7 +2538,7 @@ mod msp_respond_storage_request { location.clone(), fingerprint, size, - msp_id, + Some(msp_id), peer_ids.clone(), )); @@ -2573,23 +2553,24 @@ mod msp_respond_storage_request { ); // Dispatch the MSP accept request. - assert_ok!(FileSystem::msp_respond_storage_requests_multiple_buckets(RuntimeOrigin::signed(msp.clone()), - bounded_vec![( + assert_ok!(FileSystem::msp_respond_storage_requests_multiple_buckets( + RuntimeOrigin::signed(msp.clone()), + bounded_vec![StorageRequestMspBucketResponse { bucket_id, - MspStorageRequestResponse { - accept: Some( - AcceptedStorageRequestParameters { - file_keys_and_proofs: bounded_vec![(file_key, CompactProof { - encoded_nodes: vec![H256::default().as_ref().to_vec()], - })], - non_inclusion_forest_proof: CompactProof { - encoded_nodes: vec![H256::default().as_ref().to_vec()], - }, + accept: Some(StorageRequestMspAcceptedFileKeys { + file_keys_and_proofs: bounded_vec![FileKeyWithProof { + file_key, + proof: CompactProof { + encoded_nodes: vec![H256::default().as_ref().to_vec()], } - ), - reject: None, - } - )])); + }], + non_inclusion_forest_proof: CompactProof { + encoded_nodes: vec![H256::default().as_ref().to_vec()], + }, + }), + reject: bounded_vec![], + }], + )); // Assert that the storage was updated assert_eq!( @@ -2598,28 +2579,6 @@ mod msp_respond_storage_request { .msp, Some((msp_id, true)) ); - - // Get the new root of the bucket. - let new_bucket_root = - <::Providers as shp_traits::ReadBucketsInterface>::get_root_bucket(&bucket_id,) - .unwrap(); - - // Assert that the correct event was deposited - System::assert_last_event( - Event::MspRespondedToStorageRequests { - results: MspRespondStorageRequestsResult:: { - msp_id, - responses: bounded_vec![BatchResponses::::Accepted( - MspAcceptedBatchStorageRequests:: { - file_keys: bounded_vec![file_key], - bucket_id, - new_bucket_root, - owner: owner_account_id - } - )], - }, - }.into(), - ); }); } @@ -2630,7 +2589,9 @@ mod msp_respond_storage_request { let owner_signed = RuntimeOrigin::signed(owner_account_id.clone()); let msp = Keyring::Charlie.to_account_id(); let first_location = FileLocation::::try_from(b"test".to_vec()).unwrap(); - let second_location = FileLocation::::try_from(b"never/go/to/a/second/location".to_vec()).unwrap(); + let second_location = + FileLocation::::try_from(b"never/go/to/a/second/location".to_vec()) + .unwrap(); let size = 4; let fingerprint = H256::zero(); let peer_id = BoundedVec::try_from(vec![1]).unwrap(); @@ -2641,7 +2602,8 @@ mod msp_respond_storage_request { // Create the bucket that will hold both files. let name = BoundedVec::try_from(b"bucket".to_vec()).unwrap(); - let bucket_id = create_bucket(&owner_account_id.clone(), name, msp_id, value_prop_id); + let bucket_id = + create_bucket(&owner_account_id.clone(), name, msp_id, value_prop_id); // Compute the file key for the first file. let first_file_key = FileSystem::compute_file_key( @@ -2652,56 +2614,63 @@ mod msp_respond_storage_request { fingerprint, ); - // Compute the file key for the second file. - let second_file_key = FileSystem::compute_file_key( - owner_account_id.clone(), - bucket_id, - second_location.clone(), - size, - fingerprint, - ); + // Compute the file key for the second file. + let second_file_key = FileSystem::compute_file_key( + owner_account_id.clone(), + bucket_id, + second_location.clone(), + size, + fingerprint, + ); // Dispatch a storage request for the first file. assert_ok!(FileSystem::issue_storage_request( - owner_signed.clone(), - bucket_id, - first_location.clone(), - fingerprint, - size, - msp_id, - peer_ids.clone(), - )); + owner_signed.clone(), + bucket_id, + first_location.clone(), + fingerprint, + size, + Some(msp_id), + peer_ids.clone(), + )); - // Dispatch a storage request for the second file. - assert_ok!(FileSystem::issue_storage_request( - owner_signed.clone(), - bucket_id, - second_location.clone(), - fingerprint, - size, - msp_id, - peer_ids.clone(), - )); + // Dispatch a storage request for the second file. + assert_ok!(FileSystem::issue_storage_request( + owner_signed.clone(), + bucket_id, + second_location.clone(), + fingerprint, + size, + Some(msp_id), + peer_ids.clone(), + )); // Dispatch the MSP accept request for the first file. assert_ok!(FileSystem::msp_respond_storage_requests_multiple_buckets( - RuntimeOrigin::signed(msp.clone()), - bounded_vec![( + RuntimeOrigin::signed(msp.clone()), + bounded_vec![StorageRequestMspBucketResponse { bucket_id, - MspStorageRequestResponse { - accept: Some(AcceptedStorageRequestParameters { - file_keys_and_proofs: bounded_vec![(first_file_key, CompactProof { - encoded_nodes: vec![H256::default().as_ref().to_vec()], - }), (second_file_key, CompactProof { - encoded_nodes: vec![H256::default().as_ref().to_vec()], - })], - non_inclusion_forest_proof: CompactProof { - encoded_nodes: vec![H256::default().as_ref().to_vec(), H256::default().as_ref().to_vec()], + accept: Some(StorageRequestMspAcceptedFileKeys { + file_keys_and_proofs: bounded_vec![ + FileKeyWithProof { + file_key: first_file_key, + proof: CompactProof { + encoded_nodes: vec![H256::default().as_ref().to_vec()], + } }, - }), - reject: None - } - )] + FileKeyWithProof { + file_key: second_file_key, + proof: CompactProof { + encoded_nodes: vec![H256::default().as_ref().to_vec()], + } + } + ], + non_inclusion_forest_proof: CompactProof { + encoded_nodes: vec![H256::default().as_ref().to_vec()], + }, + }), + reject: bounded_vec![], + }], )); // Assert that the storage was updated @@ -2719,28 +2688,6 @@ mod msp_respond_storage_request { Some((msp_id, true)) ); - // Get the new root of the bucket. - let new_bucket_root = - <::Providers as shp_traits::ReadBucketsInterface>::get_root_bucket(&bucket_id) - .unwrap(); - - // Assert that the correct event was deposited - System::assert_last_event( - Event::MspRespondedToStorageRequests { - results: MspRespondStorageRequestsResult:: { - msp_id, - responses: bounded_vec![BatchResponses::::Accepted( - MspAcceptedBatchStorageRequests:: { - file_keys: bounded_vec![first_file_key, second_file_key], - bucket_id, - new_bucket_root, - owner: owner_account_id - } - )], - }, - }.into(), - ); - // Assert that the MSP used capacity has been updated. assert_eq!( ::get_used_capacity(&msp_id), @@ -2771,12 +2718,17 @@ mod msp_respond_storage_request { // Create the bucket that will hold the first file. let first_name = BoundedVec::try_from(b"first bucket".to_vec()).unwrap(); - let first_bucket_id = create_bucket(&owner_account_id.clone(), first_name, msp_id, value_prop_id); + let first_bucket_id = + create_bucket(&owner_account_id.clone(), first_name, msp_id, value_prop_id); // Create the bucket that will hold the second file. let second_name = BoundedVec::try_from(b"second bucket".to_vec()).unwrap(); - let second_bucket_id = - create_bucket(&owner_account_id.clone(), second_name, msp_id, value_prop_id); + let second_bucket_id = create_bucket( + &owner_account_id.clone(), + second_name, + msp_id, + value_prop_id, + ); // Compute the file key for the first file. let first_file_key = FileSystem::compute_file_key( @@ -2803,7 +2755,7 @@ mod msp_respond_storage_request { first_location.clone(), first_fingerprint, first_size, - msp_id, + Some(msp_id), peer_ids.clone(), )); @@ -2814,41 +2766,44 @@ mod msp_respond_storage_request { second_location.clone(), second_fingerprint, second_size, - msp_id, + Some(msp_id), peer_ids.clone(), )); - // Dispatch the MSP accept request for the second file. - assert_ok!(FileSystem::msp_respond_storage_requests_multiple_buckets( - RuntimeOrigin::signed(msp.clone()), - bounded_vec![( - first_bucket_id, - MspStorageRequestResponse { - accept: Some(AcceptedStorageRequestParameters { - file_keys_and_proofs: bounded_vec![(first_file_key, CompactProof { - encoded_nodes: vec![H256::default().as_ref().to_vec()], - })], - non_inclusion_forest_proof: CompactProof { + // Dispatch the MSP accept request for the second file. + assert_ok!(FileSystem::msp_respond_storage_requests_multiple_buckets( + RuntimeOrigin::signed(msp.clone()), + bounded_vec![ + StorageRequestMspBucketResponse { + bucket_id: first_bucket_id, + accept: Some(StorageRequestMspAcceptedFileKeys { + file_keys_and_proofs: bounded_vec![FileKeyWithProof { + file_key: first_file_key, + proof: CompactProof { encoded_nodes: vec![H256::default().as_ref().to_vec()], } - }), - reject: None, - } - ), - ( - second_bucket_id, - MspStorageRequestResponse { - accept: Some(AcceptedStorageRequestParameters { - file_keys_and_proofs: bounded_vec![(second_file_key, CompactProof { - encoded_nodes: vec![H256::default().as_ref().to_vec()], - })], - non_inclusion_forest_proof: CompactProof { + }], + non_inclusion_forest_proof: CompactProof { + encoded_nodes: vec![H256::default().as_ref().to_vec()], + }, + }), + reject: bounded_vec![], + }, + StorageRequestMspBucketResponse { + bucket_id: second_bucket_id, + accept: Some(StorageRequestMspAcceptedFileKeys { + file_keys_and_proofs: bounded_vec![FileKeyWithProof { + file_key: second_file_key, + proof: CompactProof { encoded_nodes: vec![H256::default().as_ref().to_vec()], } - }), - reject: None, - } - ) + }], + non_inclusion_forest_proof: CompactProof { + encoded_nodes: vec![H256::default().as_ref().to_vec()], + }, + }), + reject: bounded_vec![], + } ], )); @@ -2860,47 +2815,19 @@ mod msp_respond_storage_request { Some((msp_id, true)) ); - // Assert that the storage was updated - assert_eq!( - file_system::StorageRequests::::get(second_file_key).unwrap().msp, - Some((msp_id, true)) - ); - - let first_bucket_root = <::Providers as shp_traits::ReadBucketsInterface>::get_root_bucket(&first_bucket_id,) - .unwrap(); - let second_bucket_root = - <::Providers as shp_traits::ReadBucketsInterface>::get_root_bucket(&second_bucket_id,) - .unwrap(); - - // Assert that the correct event was deposited - System::assert_last_event( - Event::MspRespondedToStorageRequests { - results: MspRespondStorageRequestsResult:: { - msp_id, - responses: bounded_vec![BatchResponses::::Accepted( - MspAcceptedBatchStorageRequests:: { - file_keys: bounded_vec![first_file_key], - bucket_id: first_bucket_id, - new_bucket_root: first_bucket_root, - owner: owner_account_id.clone() - } - ), BatchResponses::::Accepted( - MspAcceptedBatchStorageRequests:: { - file_keys: bounded_vec![second_file_key], - bucket_id: second_bucket_id, - new_bucket_root: second_bucket_root, - owner: owner_account_id - } - )], - }, - }.into(), + // Assert that the storage was updated + assert_eq!( + file_system::StorageRequests::::get(second_file_key) + .unwrap() + .msp, + Some((msp_id, true)) ); // Assert that the MSP used capacity has been updated. - assert_eq!( - ::get_used_capacity(&msp_id), - first_size + second_size - ); + assert_eq!( + ::get_used_capacity(&msp_id), + first_size + second_size + ); }); } @@ -2932,13 +2859,21 @@ mod msp_respond_storage_request { // Create the bucket that will hold the first file. let first_name = BoundedVec::try_from(b"first bucket".to_vec()).unwrap(); - let first_bucket_id = - create_bucket(&first_owner_account_id.clone(), first_name, msp_id, value_prop_id); + let first_bucket_id = create_bucket( + &first_owner_account_id.clone(), + first_name, + msp_id, + value_prop_id, + ); // Create the bucket that will hold the second file. let second_name = BoundedVec::try_from(b"second bucket".to_vec()).unwrap(); - let second_bucket_id = - create_bucket(&second_owner_account_id.clone(), second_name, msp_id, value_prop_id); + let second_bucket_id = create_bucket( + &second_owner_account_id.clone(), + second_name, + msp_id, + value_prop_id, + ); // Compute the file key for the first file. let first_file_key = FileSystem::compute_file_key( @@ -2965,7 +2900,7 @@ mod msp_respond_storage_request { first_location.clone(), first_fingerprint, first_size, - msp_id, + Some(msp_id), first_peer_ids.clone(), )); @@ -2976,47 +2911,46 @@ mod msp_respond_storage_request { second_location.clone(), second_fingerprint, second_size, - msp_id, + Some(msp_id), second_peer_ids.clone(), )); // Dispatch the MSP accept request for the second file. assert_ok!(FileSystem::msp_respond_storage_requests_multiple_buckets( - RuntimeOrigin::signed(msp.clone()), - bounded_vec![( - first_bucket_id, - MspStorageRequestResponse { - accept: Some(AcceptedStorageRequestParameters { - file_keys_and_proofs: bounded_vec![( - first_file_key, - CompactProof { + RuntimeOrigin::signed(msp.clone()), + bounded_vec![ + StorageRequestMspBucketResponse { + bucket_id: first_bucket_id, + accept: Some(StorageRequestMspAcceptedFileKeys { + file_keys_and_proofs: bounded_vec![FileKeyWithProof { + file_key: first_file_key, + proof: CompactProof { encoded_nodes: vec![H256::default().as_ref().to_vec()], - }, - )], + } + }], non_inclusion_forest_proof: CompactProof { encoded_nodes: vec![H256::default().as_ref().to_vec()], }, }), - reject: None, - }), ( - second_bucket_id, - MspStorageRequestResponse { - accept: Some(AcceptedStorageRequestParameters { - file_keys_and_proofs: bounded_vec![( - second_file_key, - CompactProof { - encoded_nodes: vec![H256::default().as_ref().to_vec()], - }, - )], - non_inclusion_forest_proof: CompactProof { + reject: bounded_vec![], + }, + StorageRequestMspBucketResponse { + bucket_id: second_bucket_id, + accept: Some(StorageRequestMspAcceptedFileKeys { + file_keys_and_proofs: bounded_vec![FileKeyWithProof { + file_key: second_file_key, + proof: CompactProof { encoded_nodes: vec![H256::default().as_ref().to_vec()], - }, - }), - reject: None - }, - ) + } + }], + non_inclusion_forest_proof: CompactProof { + encoded_nodes: vec![H256::default().as_ref().to_vec()], + }, + }), + reject: bounded_vec![], + } ], - )); + )); // Assert that the storage was updated assert_eq!( @@ -3034,38 +2968,6 @@ mod msp_respond_storage_request { Some((msp_id, true)) ); - let first_bucket_root = - <::Providers as shp_traits::ReadBucketsInterface>::get_root_bucket(&first_bucket_id,) - .unwrap(); - - let second_bucket_root = - <::Providers as shp_traits::ReadBucketsInterface>::get_root_bucket(&second_bucket_id,) - .unwrap(); - - // Check event - System::assert_last_event( - Event::MspRespondedToStorageRequests { - results: MspRespondStorageRequestsResult:: { - msp_id, - responses: bounded_vec![BatchResponses::::Accepted( - MspAcceptedBatchStorageRequests:: { - file_keys: bounded_vec![first_file_key], - bucket_id: first_bucket_id, - new_bucket_root: first_bucket_root, - owner: first_owner_account_id.clone() - } - ), BatchResponses::::Accepted( - MspAcceptedBatchStorageRequests:: { - file_keys: bounded_vec![second_file_key], - bucket_id: second_bucket_id, - new_bucket_root: second_bucket_root, - owner: second_owner_account_id.clone() - } - )], - }, - }.into(), - ); - // Assert that the MSP used capacity has been updated. assert_eq!( ::get_used_capacity(&msp_id), @@ -3091,7 +2993,8 @@ mod msp_respond_storage_request { // Create the bucket that will hold the file. let name = BoundedVec::try_from(b"bucket".to_vec()).unwrap(); - let bucket_id = create_bucket(&owner_account_id.clone(), name, msp_id, value_prop_id); + let bucket_id = + create_bucket(&owner_account_id.clone(), name, msp_id, value_prop_id); // Set replication target to 1 ReplicationTarget::::put(1); @@ -3103,7 +3006,7 @@ mod msp_respond_storage_request { location.clone(), fingerprint, size, - msp_id, + Some(msp_id), peer_ids.clone(), )); @@ -3112,334 +3015,62 @@ mod msp_respond_storage_request { owner_account_id.clone(), bucket_id, location.clone(), - size, - fingerprint, - ); - - let bsp_account_id = Keyring::Bob.to_account_id(); - let bsp_signed = RuntimeOrigin::signed(bsp_account_id.clone()); - - let storage_amount: StorageData = 100; - - assert_ok!(bsp_sign_up(bsp_signed.clone(), storage_amount)); - - // Dispatch the BSP volunteer - assert_ok!(FileSystem::bsp_volunteer(bsp_signed.clone(), file_key,)); - - // Dispatch the BSP confirm storing - assert_ok!(FileSystem::bsp_confirm_storing( - bsp_signed, - CompactProof { - encoded_nodes: vec![H256::default().as_ref().to_vec()], - }, - BoundedVec::try_from(vec![( - file_key, - CompactProof { - encoded_nodes: vec![H256::default().as_ref().to_vec()], - } - )]) - .unwrap(), - )); - - // Dispatch the MSP accept request. - assert_ok!(FileSystem::msp_respond_storage_requests_multiple_buckets( - RuntimeOrigin::signed(msp.clone()), - bounded_vec![( - bucket_id, - MspStorageRequestResponse { - accept: Some( - AcceptedStorageRequestParameters { - file_keys_and_proofs: bounded_vec![(file_key, CompactProof { - encoded_nodes: vec![H256::default().as_ref().to_vec()], - })], - non_inclusion_forest_proof: CompactProof { - encoded_nodes: vec![H256::default().as_ref().to_vec()], - }, - } - ), - reject: None, - } - )], - )); - - System::assert_has_event( - Event::StorageRequestFulfilled { file_key }.into(), - ); - - let new_bucket_root = - <::Providers as shp_traits::ReadBucketsInterface>::get_root_bucket(&bucket_id,) - .unwrap(); - - System::assert_last_event( - Event::MspRespondedToStorageRequests { - results: MspRespondStorageRequestsResult:: { - msp_id, - responses: bounded_vec![BatchResponses::::Accepted( - MspAcceptedBatchStorageRequests:: { - file_keys: bounded_vec![file_key], - bucket_id, - new_bucket_root, - owner: owner_account_id - } - )], - }, - }.into(), - ); - - // Storage request should be removed - assert!(file_system::StorageRequests::::get(file_key).is_none()); - assert!( - file_system::BucketsWithStorageRequests::::get(bucket_id, file_key) - .is_none() - ); - }); - } - - struct StorageRequestParams { - owner_account_id: AccountId32, - bucket_name: Vec, - location: Vec, - size: u64, - fingerprint: H256, - peer_ids: PeerIds, - } - - fn generate_storage_requests( - params_list: Vec, - msp_id: ProviderIdFor, - value_prop_id: ValuePropId, - ) -> Vec<(BucketIdFor, MerkleHash, AccountId32)> { - let mut results = Vec::new(); - - for params in params_list { - // Create bucket if not already created - let bucket_id = ::Providers::derive_bucket_id( - &msp_id, - ¶ms.owner_account_id.clone().try_into().unwrap(), - params.bucket_name.clone().try_into().unwrap(), - ); - - if !::Providers::bucket_exists(&bucket_id) { - create_bucket( - ¶ms.owner_account_id.clone(), - params.bucket_name.clone().try_into().unwrap(), - msp_id, - value_prop_id, - ); - } - - // Compute file key - let file_key = FileSystem::compute_file_key( - params.owner_account_id.clone(), - bucket_id, - FileLocation::::try_from(params.location.clone()).unwrap(), - params.size, - params.fingerprint, - ); - - // Issue storage request - assert_ok!(FileSystem::issue_storage_request( - RuntimeOrigin::signed(params.owner_account_id.clone()), - bucket_id, - FileLocation::::try_from(params.location).unwrap(), - params.fingerprint, - params.size, - msp_id, - params.peer_ids.clone(), - )); - - results.push((bucket_id, file_key, params.owner_account_id.clone())); - } - - results - } - - fn generate_msp_responses_and_results( - storage_requests: Vec<(BucketIdFor, MerkleHash, AccountId32)>, - msp_id: ProviderIdFor, - ) -> ( - FileKeyResponsesInput, - MspRespondStorageRequestsResult, - ) { - let mut responses: BTreeMap, MspStorageRequestResponse> = - BTreeMap::new(); - let mut batch_responses: Vec> = Vec::new(); - - for (bucket_id, file_key, owner_account_id) in storage_requests { - let response: &mut MspStorageRequestResponse = responses - .entry(bucket_id) - .or_insert_with(|| MspStorageRequestResponse { - accept: None, - reject: None, - }); - - if file_key.as_ref()[0] % 2 == 0 { - if let Some(accept) = &mut response.accept { - accept - .file_keys_and_proofs - .try_push(( - file_key, - CompactProof { - encoded_nodes: vec![H256::default().as_ref().to_vec()], - }, - )) - .unwrap(); - } else { - response.accept = Some(AcceptedStorageRequestParameters { - file_keys_and_proofs: bounded_vec![( - file_key, - CompactProof { - encoded_nodes: vec![H256::default().as_ref().to_vec()], - } - )], - non_inclusion_forest_proof: CompactProof { - encoded_nodes: vec![H256::default().as_ref().to_vec()], - }, - }); - } - - if let Some(BatchResponses::Accepted(ref mut accepted)) = batch_responses.iter_mut().find(|br| matches!(br, BatchResponses::Accepted(a) if a.bucket_id == bucket_id)) { - accepted.file_keys.try_push(file_key).unwrap(); - } else { - batch_responses.push(BatchResponses::Accepted(MspAcceptedBatchStorageRequests { - file_keys: BoundedVec::try_from(vec![file_key]).unwrap(), - bucket_id, - new_bucket_root: H256::zero(), - owner: owner_account_id, - })); - } - } else { - // Rejected response - let reject_reason = RejectedStorageRequestReason::InternalError; - - if let Some(reject) = &mut response.reject { - reject.try_push((file_key, reject_reason.clone())).unwrap(); - } else { - response.reject = Some(bounded_vec![(file_key, reject_reason.clone())]); - } - - if let Some(BatchResponses::Rejected(ref mut rejected)) = batch_responses.iter_mut().find(|br| matches!(br, BatchResponses::Rejected(r) if r.bucket_id == bucket_id)) { - rejected.file_keys.try_push((file_key, reject_reason)).unwrap(); - } else { - batch_responses.push(BatchResponses::Rejected(MspRejectedBatchStorageRequests { - file_keys: BoundedVec::try_from(vec![(file_key, reject_reason)]).unwrap(), - bucket_id, - owner: owner_account_id, - })); - } - } - } - - let responses: FileKeyResponsesInput = responses - .into_iter() - .collect::>() - .try_into() - .expect("Should not exceed MaxBatchConfirmStorageRequests"); - - let results = MspRespondStorageRequestsResult { - msp_id, - responses: BoundedVec::try_from(batch_responses).unwrap(), - }; - - println!("Generated results: {:?}", results); - - (responses, results) - } - - #[test] - fn msp_respond_storage_request_accepts_and_rejects_failed_mixed_responses() { - new_test_ext().execute_with(|| { - // Create accounts - let msp_account_id = Keyring::Charlie.to_account_id(); - - // Register the MSP. - let (msp_id, value_prop_id) = add_msp_to_provider_storage(&msp_account_id); + size, + fingerprint, + ); - let first_bucket = b"first bucket".to_vec(); - let second_bucket = b"second bucket".to_vec(); - let size = 4; - let fingerprint = H256::zero(); + let bsp_account_id = Keyring::Bob.to_account_id(); + let bsp_signed = RuntimeOrigin::signed(bsp_account_id.clone()); - // Define storage request parameters - let storage_request_params = vec![ - StorageRequestParams { - owner_account_id: Keyring::Alice.to_account_id(), - bucket_name: first_bucket, - location: b"location".to_vec(), - size, - fingerprint, - peer_ids: BoundedVec::try_from( - vec![BoundedVec::try_from(vec![1]).unwrap()], - ) - .unwrap(), - }, - StorageRequestParams { - owner_account_id: Keyring::Bob.to_account_id(), - bucket_name: second_bucket.clone(), - location: b"location2".to_vec(), - size, - fingerprint, - peer_ids: BoundedVec::try_from( - vec![BoundedVec::try_from(vec![2]).unwrap()], - ) - .unwrap(), - }, - StorageRequestParams { - owner_account_id: Keyring::Bob.to_account_id(), - bucket_name: second_bucket, - location: b"location3".to_vec(), - size, - fingerprint, - peer_ids: BoundedVec::try_from( - vec![BoundedVec::try_from(vec![2]).unwrap()], - ) - .unwrap(), - }, - ]; + let storage_amount: StorageData = 100; - // Generate storage requests - let storage_requests: Vec<(BucketIdFor, MerkleHash, AccountId32)> = - generate_storage_requests(storage_request_params, msp_id, value_prop_id); + assert_ok!(bsp_sign_up(bsp_signed.clone(), storage_amount)); - let (responses, expected_results) = - generate_msp_responses_and_results(storage_requests, msp_id); + // Dispatch the BSP volunteer + assert_ok!(FileSystem::bsp_volunteer(bsp_signed.clone(), file_key,)); - // Use `responses` to call the extrinsic - FileSystem::msp_respond_storage_requests_multiple_buckets( - RuntimeOrigin::signed(msp_account_id), - responses, - ) - .unwrap(); + // Dispatch the BSP confirm storing + assert_ok!(FileSystem::bsp_confirm_storing( + bsp_signed, + CompactProof { + encoded_nodes: vec![H256::default().as_ref().to_vec()], + }, + BoundedVec::try_from(vec![( + file_key, + CompactProof { + encoded_nodes: vec![H256::default().as_ref().to_vec()], + } + )]) + .unwrap(), + )); - let expected_results = MspRespondStorageRequestsResult { - msp_id, - responses: { - let updated_responses: Vec<_> = expected_results - .responses - .into_iter() - .map(|batch_response| match batch_response { - BatchResponses::Accepted(mut accepted) => { - accepted.new_bucket_root = - ::Providers::get_root_bucket( - &accepted.bucket_id, - ) - .expect("Root bucket should exist"); - BatchResponses::Accepted(accepted) + // Dispatch the MSP accept request. + assert_ok!(FileSystem::msp_respond_storage_requests_multiple_buckets( + RuntimeOrigin::signed(msp.clone()), + bounded_vec![StorageRequestMspBucketResponse { + bucket_id, + accept: Some(StorageRequestMspAcceptedFileKeys { + file_keys_and_proofs: bounded_vec![FileKeyWithProof { + file_key, + proof: CompactProof { + encoded_nodes: vec![H256::default().as_ref().to_vec()], } - br => br, - }) - .collect(); + }], + non_inclusion_forest_proof: CompactProof { + encoded_nodes: vec![H256::default().as_ref().to_vec()], + }, + }), + reject: bounded_vec![], + }], + )); - BoundedVec::try_from(updated_responses) - .expect("Number of responses should not exceed the bound") - }, - }; + System::assert_has_event(Event::StorageRequestFulfilled { file_key }.into()); - System::assert_last_event( - Event::MspRespondedToStorageRequests { - results: expected_results, - } - .into(), + // Storage request should be removed + assert!(file_system::StorageRequests::::get(file_key).is_none()); + assert!( + file_system::BucketsWithStorageRequests::::get(bucket_id, file_key) + .is_none() ); }); } @@ -3463,44 +3094,26 @@ mod msp_respond_storage_request { let file_key = H256::zero(); - assert_ok!(FileSystem::msp_respond_storage_requests_multiple_buckets( - msp_signed.clone(), - bounded_vec![( - bucket_id, - MspStorageRequestResponse { - accept: Some(AcceptedStorageRequestParameters { - file_keys_and_proofs: bounded_vec![( + assert_noop!( + FileSystem::msp_respond_storage_requests_multiple_buckets( + msp_signed.clone(), + bounded_vec![StorageRequestMspBucketResponse { + bucket_id, + accept: Some(StorageRequestMspAcceptedFileKeys { + file_keys_and_proofs: bounded_vec![FileKeyWithProof { file_key, - CompactProof { + proof: CompactProof { encoded_nodes: vec![H256::default().as_ref().to_vec()], } - )], + }], non_inclusion_forest_proof: CompactProof { encoded_nodes: vec![H256::default().as_ref().to_vec()], }, }), - reject: None, - } - )] - )); - - System::assert_last_event( - Event::MspRespondedToStorageRequests { - results: MspRespondStorageRequestsResult:: { - msp_id, - responses: bounded_vec![BatchResponses::::Failed( - MspFailedBatchStorageRequests:: { - file_keys: bounded_vec![( - file_key, - Error::::StorageRequestNotFound.into() - )], - bucket_id, - owner: owner_account_id, - } - )], - }, - } - .into(), + reject: bounded_vec![], + }], + ), + Error::::StorageRequestNotFound ); }); } @@ -3530,7 +3143,7 @@ mod msp_respond_storage_request { location.clone(), fingerprint, size, - msp_id, + Some(msp_id), peer_ids.clone(), )); @@ -3548,23 +3161,21 @@ mod msp_respond_storage_request { assert_noop!( FileSystem::msp_respond_storage_requests_multiple_buckets( not_msp_signed.clone(), - bounded_vec![( + bounded_vec![StorageRequestMspBucketResponse { bucket_id, - MspStorageRequestResponse { - accept: Some(AcceptedStorageRequestParameters { - file_keys_and_proofs: bounded_vec![( - file_key, - CompactProof { - encoded_nodes: vec![], - } - )], - non_inclusion_forest_proof: CompactProof { - encoded_nodes: vec![], - }, - }), - reject: None, - } - )] + accept: Some(StorageRequestMspAcceptedFileKeys { + file_keys_and_proofs: bounded_vec![FileKeyWithProof { + file_key, + proof: CompactProof { + encoded_nodes: vec![H256::default().as_ref().to_vec()], + } + }], + non_inclusion_forest_proof: CompactProof { + encoded_nodes: vec![H256::default().as_ref().to_vec()], + }, + }), + reject: bounded_vec![], + }], ), Error::::NotASp ); @@ -3599,7 +3210,7 @@ mod msp_respond_storage_request { location.clone(), fingerprint, size, - msp_id, + Some(msp_id), peer_ids.clone(), )); @@ -3617,23 +3228,21 @@ mod msp_respond_storage_request { assert_noop!( FileSystem::msp_respond_storage_requests_multiple_buckets( bsp_signed.clone(), - bounded_vec![( + bounded_vec![StorageRequestMspBucketResponse { bucket_id, - MspStorageRequestResponse { - accept: Some(AcceptedStorageRequestParameters { - file_keys_and_proofs: bounded_vec![( - file_key, - CompactProof { - encoded_nodes: vec![], - } - )], - non_inclusion_forest_proof: CompactProof { - encoded_nodes: vec![], - }, - }), - reject: None, - } - )] + accept: Some(StorageRequestMspAcceptedFileKeys { + file_keys_and_proofs: bounded_vec![FileKeyWithProof { + file_key, + proof: CompactProof { + encoded_nodes: vec![H256::default().as_ref().to_vec()], + } + }], + non_inclusion_forest_proof: CompactProof { + encoded_nodes: vec![H256::default().as_ref().to_vec()], + }, + }), + reject: bounded_vec![], + }], ), Error::::NotAMsp ); @@ -3684,44 +3293,26 @@ mod msp_respond_storage_request { }, ); - assert_ok!(FileSystem::msp_respond_storage_requests_multiple_buckets( - msp_signed.clone(), - bounded_vec![( - bucket_id, - MspStorageRequestResponse { - accept: Some(AcceptedStorageRequestParameters { - file_keys_and_proofs: bounded_vec![( + assert_noop!( + FileSystem::msp_respond_storage_requests_multiple_buckets( + msp_signed.clone(), + bounded_vec![StorageRequestMspBucketResponse { + bucket_id, + accept: Some(StorageRequestMspAcceptedFileKeys { + file_keys_and_proofs: bounded_vec![FileKeyWithProof { file_key, - CompactProof { + proof: CompactProof { encoded_nodes: vec![], } - )], + }], non_inclusion_forest_proof: CompactProof { encoded_nodes: vec![H256::default().as_ref().to_vec()], }, }), - reject: None, - } - )] - ),); - - System::assert_last_event( - Event::MspRespondedToStorageRequests { - results: MspRespondStorageRequestsResult:: { - msp_id, - responses: bounded_vec![BatchResponses::::Failed( - MspFailedBatchStorageRequests:: { - file_keys: bounded_vec![( - file_key, - Error::::RequestWithoutMsp.into() - )], - bucket_id, - owner: owner_account_id, - } - )], - }, - } - .into(), + reject: bounded_vec![], + }], + ), + Error::::RequestWithoutMsp ); }); } @@ -3758,7 +3349,7 @@ mod msp_respond_storage_request { location.clone(), fingerprint, size, - expected_msp_id, + Some(expected_msp_id), peer_ids.clone(), )); @@ -3774,23 +3365,21 @@ mod msp_respond_storage_request { assert_noop!( FileSystem::msp_respond_storage_requests_multiple_buckets( caller_msp_signed.clone(), - bounded_vec![( + bounded_vec![StorageRequestMspBucketResponse { bucket_id, - MspStorageRequestResponse { - accept: Some(AcceptedStorageRequestParameters { - file_keys_and_proofs: bounded_vec![( - file_key, - CompactProof { - encoded_nodes: vec![], - } - )], - non_inclusion_forest_proof: CompactProof { - encoded_nodes: vec![], - }, - }), - reject: None, - } - )] + accept: Some(StorageRequestMspAcceptedFileKeys { + file_keys_and_proofs: bounded_vec![FileKeyWithProof { + file_key, + proof: CompactProof { + encoded_nodes: vec![H256::default().as_ref().to_vec()], + } + }], + non_inclusion_forest_proof: CompactProof { + encoded_nodes: vec![H256::default().as_ref().to_vec()], + }, + }), + reject: bounded_vec![], + }], ), Error::::MspNotStoringBucket ); @@ -3823,7 +3412,7 @@ mod msp_respond_storage_request { location.clone(), fingerprint, size, - msp_id, + Some(msp_id), peer_ids.clone(), )); @@ -3838,64 +3427,44 @@ mod msp_respond_storage_request { // Accept storing the file. assert_ok!(FileSystem::msp_respond_storage_requests_multiple_buckets( msp_signed.clone(), - bounded_vec![( + bounded_vec![StorageRequestMspBucketResponse { bucket_id, - MspStorageRequestResponse { - accept: Some(AcceptedStorageRequestParameters { - file_keys_and_proofs: bounded_vec![( - file_key, - CompactProof { - encoded_nodes: vec![H256::default().as_ref().to_vec()], - } - )], - non_inclusion_forest_proof: CompactProof { + accept: Some(StorageRequestMspAcceptedFileKeys { + file_keys_and_proofs: bounded_vec![FileKeyWithProof { + file_key, + proof: CompactProof { encoded_nodes: vec![H256::default().as_ref().to_vec()], - }, - }), - reject: None, - } - )], + } + }], + non_inclusion_forest_proof: CompactProof { + encoded_nodes: vec![H256::default().as_ref().to_vec()], + }, + }), + reject: bounded_vec![], + }], )); // Try to accept storing the file again. - assert_ok!(FileSystem::msp_respond_storage_requests_multiple_buckets( - msp_signed.clone(), - bounded_vec![( - bucket_id, - MspStorageRequestResponse { - accept: Some(AcceptedStorageRequestParameters { - file_keys_and_proofs: bounded_vec![( + assert_noop!( + FileSystem::msp_respond_storage_requests_multiple_buckets( + msp_signed.clone(), + bounded_vec![StorageRequestMspBucketResponse { + bucket_id, + accept: Some(StorageRequestMspAcceptedFileKeys { + file_keys_and_proofs: bounded_vec![FileKeyWithProof { file_key, - CompactProof { + proof: CompactProof { encoded_nodes: vec![H256::default().as_ref().to_vec()], } - )], + }], non_inclusion_forest_proof: CompactProof { encoded_nodes: vec![H256::default().as_ref().to_vec()], }, }), - reject: None, - } - )], - ),); - - System::assert_last_event( - Event::MspRespondedToStorageRequests { - results: MspRespondStorageRequestsResult:: { - msp_id, - responses: bounded_vec![BatchResponses::::Failed( - MspFailedBatchStorageRequests:: { - file_keys: bounded_vec![( - file_key, - Error::::MspAlreadyConfirmed.into() - )], - bucket_id, - owner: owner_account_id, - } - )], - }, - } - .into(), + reject: bounded_vec![], + }], + ), + Error::::MspAlreadyConfirmed ); }); } @@ -3952,23 +3521,21 @@ mod msp_respond_storage_request { assert_noop!( FileSystem::msp_respond_storage_requests_multiple_buckets( expected_msp_signed.clone(), - bounded_vec![( + bounded_vec![StorageRequestMspBucketResponse { bucket_id, - MspStorageRequestResponse { - accept: Some(AcceptedStorageRequestParameters { - file_keys_and_proofs: bounded_vec![( - file_key, - CompactProof { - encoded_nodes: vec![], - } - )], - non_inclusion_forest_proof: CompactProof { - encoded_nodes: vec![], - }, - }), - reject: None, - } - )] + accept: Some(StorageRequestMspAcceptedFileKeys { + file_keys_and_proofs: bounded_vec![FileKeyWithProof { + file_key, + proof: CompactProof { + encoded_nodes: vec![H256::default().as_ref().to_vec()], + } + }], + non_inclusion_forest_proof: CompactProof { + encoded_nodes: vec![H256::default().as_ref().to_vec()], + }, + }), + reject: bounded_vec![], + }], ), Error::::MspNotStoringBucket ); @@ -4023,44 +3590,26 @@ mod msp_respond_storage_request { ); // Try to accept storing a file with a MSP that does not have enough available capacity - assert_ok!(FileSystem::msp_respond_storage_requests_multiple_buckets( - msp_signed.clone(), - bounded_vec![( - bucket_id, - MspStorageRequestResponse { - accept: Some(AcceptedStorageRequestParameters { - file_keys_and_proofs: bounded_vec![( + assert_noop!( + FileSystem::msp_respond_storage_requests_multiple_buckets( + msp_signed.clone(), + bounded_vec![StorageRequestMspBucketResponse { + bucket_id, + accept: Some(StorageRequestMspAcceptedFileKeys { + file_keys_and_proofs: bounded_vec![FileKeyWithProof { file_key, - CompactProof { + proof: CompactProof { encoded_nodes: vec![H256::default().as_ref().to_vec()], } - )], + }], non_inclusion_forest_proof: CompactProof { encoded_nodes: vec![H256::default().as_ref().to_vec()], }, }), - reject: None, - } - )] - ),); - - System::assert_last_event( - Event::MspRespondedToStorageRequests { - results: MspRespondStorageRequestsResult:: { - msp_id, - responses: bounded_vec![BatchResponses::::Failed( - MspFailedBatchStorageRequests:: { - file_keys: bounded_vec![( - file_key, - Error::::InsufficientAvailableCapacity.into() - )], - bucket_id, - owner: owner_account_id, - } - )], - }, - } - .into(), + reject: bounded_vec![], + }], + ), + Error::::InsufficientAvailableCapacity ); }); } @@ -4090,7 +3639,7 @@ mod msp_respond_storage_request { location.clone(), fingerprint, size, - msp_id, + Some(msp_id), peer_ids.clone(), )); @@ -4103,45 +3652,26 @@ mod msp_respond_storage_request { ); // Try to accept storing a file with a non-inclusion proof that includes the file key - assert_ok!(FileSystem::msp_respond_storage_requests_multiple_buckets( - msp_signed.clone(), - bounded_vec![( - bucket_id, - MspStorageRequestResponse { - accept: Some(AcceptedStorageRequestParameters { - file_keys_and_proofs: bounded_vec![( + assert_noop!( + FileSystem::msp_respond_storage_requests_multiple_buckets( + msp_signed.clone(), + bounded_vec![StorageRequestMspBucketResponse { + bucket_id, + accept: Some(StorageRequestMspAcceptedFileKeys { + file_keys_and_proofs: bounded_vec![FileKeyWithProof { file_key, - CompactProof { + proof: CompactProof { encoded_nodes: vec![H256::default().as_ref().to_vec()], } - )], + }], non_inclusion_forest_proof: CompactProof { encoded_nodes: vec![file_key.as_ref().to_vec()], }, }), - reject: None, - } - )] - ),); - - // Check the event Event::MspRespondedToStorageRequests - System::assert_last_event( - Event::MspRespondedToStorageRequests { - results: MspRespondStorageRequestsResult:: { - msp_id, - responses: bounded_vec![BatchResponses::::Failed( - MspFailedBatchStorageRequests:: { - file_keys: bounded_vec![( - file_key, - Error::::ExpectedNonInclusionProof.into() - )], - bucket_id, - owner: owner_account_id, - } - )], - }, - } - .into(), + reject: bounded_vec![], + }], + ), + Error::::ExpectedNonInclusionProof ); }); } @@ -4181,7 +3711,7 @@ mod bsp_volunteer { location.clone(), fingerprint, size, - msp_id, + Some(msp_id), peer_ids.clone(), )); @@ -4254,7 +3784,7 @@ mod bsp_volunteer { location.clone(), fingerprint, size, - msp_id, + Some(msp_id), peer_ids.clone(), )); @@ -4308,7 +3838,7 @@ mod bsp_volunteer { location.clone(), fingerprint, size, - msp_id, + Some(msp_id), peer_ids.clone(), )); @@ -4373,7 +3903,7 @@ mod bsp_volunteer { location.clone(), fingerprint, size, - msp_id, + Some(msp_id), peer_ids.clone(), )); @@ -4438,7 +3968,7 @@ mod bsp_volunteer { location.clone(), fingerprint, 4, - msp_id, + Some(msp_id), peer_ids.clone(), )); @@ -4501,7 +4031,7 @@ mod bsp_volunteer { location.clone(), fingerprint, 4, - msp_id, + Some(msp_id), peer_ids.clone(), )); @@ -4582,7 +4112,7 @@ mod bsp_volunteer { location.clone(), fingerprint, size, - msp_id, + Some(msp_id), peer_ids.clone(), )); @@ -4646,6 +4176,8 @@ mod bsp_volunteer { mod bsp_confirm { use super::*; mod failure { + use crate::types::FileKeyWithProof; + use super::*; use pallet_storage_providers::types::ReputationWeightType; @@ -4676,7 +4208,7 @@ mod bsp_confirm { location.clone(), fingerprint, size, - msp_id, + Some(msp_id), peer_ids.clone(), )); @@ -4773,7 +4305,7 @@ mod bsp_confirm { location.clone(), fingerprint, size, - msp_id, + Some(msp_id), peer_ids.clone(), )); @@ -4838,7 +4370,7 @@ mod bsp_confirm { location.clone(), fingerprint, size, - msp_id, + Some(msp_id), peer_ids.clone(), )); @@ -4853,23 +4385,21 @@ mod bsp_confirm { let msp_signed = RuntimeOrigin::signed(msp.clone()); assert_ok!(FileSystem::msp_respond_storage_requests_multiple_buckets( msp_signed.clone(), - bounded_vec![( + bounded_vec![StorageRequestMspBucketResponse { bucket_id, - MspStorageRequestResponse { - accept: Some(AcceptedStorageRequestParameters { - file_keys_and_proofs: bounded_vec![( - file_key, - CompactProof { - encoded_nodes: vec![H256::default().as_ref().to_vec()], - } - )], - non_inclusion_forest_proof: CompactProof { + accept: Some(StorageRequestMspAcceptedFileKeys { + file_keys_and_proofs: bounded_vec![FileKeyWithProof { + file_key, + proof: CompactProof { encoded_nodes: vec![H256::default().as_ref().to_vec()], - }, - }), - reject: None, - } - )] + } + }], + non_inclusion_forest_proof: CompactProof { + encoded_nodes: vec![H256::default().as_ref().to_vec()], + }, + }), + reject: bounded_vec![], + }], )); // Assert that the storage was updated @@ -4982,7 +4512,7 @@ mod bsp_confirm { location.clone(), fingerprint, size, - msp_id, + Some(msp_id), Default::default(), )); @@ -5074,7 +4604,7 @@ mod bsp_confirm { location.clone(), fingerprint, size, - msp_id, + Some(msp_id), peer_ids.clone(), )); @@ -5207,7 +4737,7 @@ mod bsp_confirm { location.clone(), fingerprint, size, - msp_id, + Some(msp_id), peer_ids.clone(), )); @@ -5320,7 +4850,7 @@ mod bsp_confirm { location.clone(), fingerprint, new_size, - msp_id, + Some(msp_id), peer_ids.clone(), )); @@ -5433,7 +4963,7 @@ mod bsp_stop_storing { location.clone(), fingerprint, size, - msp_id, + Some(msp_id), peer_ids.clone(), )); @@ -5493,7 +5023,7 @@ mod bsp_stop_storing { location.clone(), fingerprint, size, - msp_id, + Some(msp_id), peer_ids.clone(), )); @@ -5612,7 +5142,7 @@ mod bsp_stop_storing { location.clone(), fingerprint, size, - msp_id, + Some(msp_id), peer_ids.clone(), )); @@ -5734,7 +5264,7 @@ mod bsp_stop_storing { location.clone(), fingerprint, size, - msp_id, + Some(msp_id), peer_ids.clone(), )); @@ -5871,7 +5401,7 @@ mod bsp_stop_storing { location.clone(), fingerprint, size, - msp_id, + Some(msp_id), peer_ids.clone(), )); @@ -6041,7 +5571,7 @@ mod bsp_stop_storing { location.clone(), fingerprint, size, - msp_id, + Some(msp_id), peer_ids.clone(), )); @@ -6198,7 +5728,7 @@ mod bsp_stop_storing { location.clone(), fingerprint, size, - msp_id, + Some(msp_id), peer_ids.clone(), )); @@ -6376,7 +5906,7 @@ mod bsp_stop_storing { location.clone(), fingerprint, size, - msp_id, + Some(msp_id), Default::default(), )); @@ -6494,7 +6024,7 @@ mod bsp_stop_storing { location.clone(), fingerprint, size, - msp_id, + Some(msp_id), Default::default(), )); @@ -7003,7 +6533,7 @@ mod delete_file_and_pending_deletions_tests { user: owner_account_id.clone(), file_key, bucket_id, - msp_id, + msp_id: Some(msp_id), proof_of_inclusion: true, } .into(), @@ -7052,7 +6582,7 @@ mod delete_file_and_pending_deletions_tests { user: owner_account_id.clone(), file_key, bucket_id, - msp_id, + msp_id: Some(msp_id), proof_of_inclusion: false, } .into(), @@ -7308,7 +6838,7 @@ mod compute_threshold { location.clone(), fingerprint, size, - msp_id, + Some(msp_id), peer_ids.clone(), )); @@ -7366,7 +6896,7 @@ mod compute_threshold { location.clone(), fingerprint, size, - msp_id, + Some(msp_id), peer_ids.clone(), )); @@ -7499,7 +7029,7 @@ mod compute_threshold { location.clone(), fingerprint, size, - msp_id, + Some(msp_id), peer_ids.clone(), )); @@ -7769,7 +7299,7 @@ mod stop_storing_for_insolvent_user { location.clone(), fingerprint, size, - msp_id, + Some(msp_id), peer_ids.clone(), )); @@ -7945,7 +7475,7 @@ mod stop_storing_for_insolvent_user { location.clone(), fingerprint, size, - msp_id, + Some(msp_id), peer_ids.clone(), )); @@ -7981,23 +7511,21 @@ mod stop_storing_for_insolvent_user { // Dispatch MSP confirm storing. assert_ok!(FileSystem::msp_respond_storage_requests_multiple_buckets( RuntimeOrigin::signed(msp.clone()), - bounded_vec![( + bounded_vec![StorageRequestMspBucketResponse { bucket_id, - MspStorageRequestResponse { - accept: Some(AcceptedStorageRequestParameters { - file_keys_and_proofs: bounded_vec![( - file_key, - CompactProof { - encoded_nodes: vec![H256::default().as_ref().to_vec()], - } - )], - non_inclusion_forest_proof: CompactProof { + accept: Some(StorageRequestMspAcceptedFileKeys { + file_keys_and_proofs: bounded_vec![FileKeyWithProof { + file_key, + proof: CompactProof { encoded_nodes: vec![H256::default().as_ref().to_vec()], - }, - }), - reject: None - } - )] + } + }], + non_inclusion_forest_proof: CompactProof { + encoded_nodes: vec![H256::default().as_ref().to_vec()], + }, + }), + reject: bounded_vec![], + }], )); // Assert that the storage was updated @@ -8104,7 +7632,7 @@ mod stop_storing_for_insolvent_user { location.clone(), fingerprint, size, - msp_id, + Some(msp_id), peer_ids.clone(), )); @@ -8322,7 +7850,7 @@ mod stop_storing_for_insolvent_user { location.clone(), fingerprint, size, - msp_id, + Some(msp_id), peer_ids.clone(), )); @@ -8515,7 +8043,7 @@ mod stop_storing_for_insolvent_user { location.clone(), fingerprint, size, - msp_id, + Some(msp_id), peer_ids.clone(), )); @@ -8838,17 +8366,17 @@ fn create_bucket( value_prop_id: ValuePropId, ) -> BucketIdFor { let bucket_id = - ::Providers::derive_bucket_id(&msp_id, &owner, name.clone()); + ::Providers::derive_bucket_id(&owner, name.clone()); let origin = RuntimeOrigin::signed(owner.clone()); // Dispatch a signed extrinsic. assert_ok!(FileSystem::create_bucket( origin, - msp_id, + Some(msp_id), name.clone(), false, - value_prop_id + Some(value_prop_id) )); // Assert bucket was created @@ -8861,7 +8389,7 @@ fn create_bucket( private: false, read_access_group_id: None, size: 0, - value_prop_id + value_prop_id: Some(value_prop_id), }) ); diff --git a/pallets/file-system/src/types.rs b/pallets/file-system/src/types.rs index 9d8ba0865..77969d391 100644 --- a/pallets/file-system/src/types.rs +++ b/pallets/file-system/src/types.rs @@ -93,36 +93,19 @@ impl StorageRequestMetadata { } } -/// Possible MSP responses to a storage request. -/// -/// Contains two lists: one for accepted storage requests and one for rejected -/// storage requests, and either of them can be `None` if there are no accepted/rejected -/// storage requests. -/// -/// Accepted storage requests come bundled into a [`AcceptedStorageRequestParameters`]. -/// Rejected storage requests are represented by a list of tuples, where the first element -/// is the rejected file key and the second element is the reason for rejection as a -/// [`RejectedStorageRequestReason`]. #[derive(Encode, Decode, MaxEncodedLen, TypeInfo, PartialEq, Eq, Clone)] #[scale_info(skip_type_params(T))] -pub struct MspStorageRequestResponse { - pub accept: Option>, - /// Reject the storage request. (file_key, reason) - pub reject: Option< - BoundedVec< - (MerkleHash, RejectedStorageRequestReason), - MaxBatchMspRespondStorageRequests, - >, - >, +pub struct FileKeyWithProof { + pub file_key: MerkleHash, + pub proof: KeyProof, } -impl Debug for MspStorageRequestResponse { +impl Debug for FileKeyWithProof { fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { write!( f, - "MspStorageRequestResponse(accept: {:?}, reject: {:?})", - self.accept.encode(), - self.reject.encode() + "FileKeyWithProof(file_key: {:?}, proof: {:?})", + self.file_key, self.proof ) } } @@ -134,90 +117,75 @@ impl Debug for MspStorageRequestResponse { /// proofs for the file chunks) and a non-inclusion forest proof. The latter is required to /// verify that the file keys were not part of the bucket's Merkle Patricia Forest before, /// and add them now. One single non-inclusion forest proof for all the file keys is sufficient. -#[derive(Encode, Decode, MaxEncodedLen, TypeInfo, Debug, PartialEq, Eq, Clone)] +#[derive(Encode, Decode, MaxEncodedLen, TypeInfo, PartialEq, Eq, Clone)] #[scale_info(skip_type_params(T))] -pub struct AcceptedStorageRequestParameters { - pub file_keys_and_proofs: - BoundedVec<(MerkleHash, KeyProof), MaxBatchMspRespondStorageRequests>, +pub struct StorageRequestMspAcceptedFileKeys { + pub file_keys_and_proofs: BoundedVec, MaxBatchMspRespondStorageRequests>, pub non_inclusion_forest_proof: ForestProof, } +impl Debug for StorageRequestMspAcceptedFileKeys { + fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { + write!( + f, + "StorageRequestMspAcceptedFileKeys(file_keys_and_proofs: {:?}, non_inclusion_forest_proof: {:?})", + self.file_keys_and_proofs, self.non_inclusion_forest_proof + ) + } +} + #[derive(Encode, Decode, MaxEncodedLen, TypeInfo, Debug, PartialEq, Eq, Clone)] pub enum RejectedStorageRequestReason { ReachedMaximumCapacity, ReceivedInvalidProof, FileKeyAlreadyStored, + RequestExpired, InternalError, } -/// Input for MSPs to respond to storage request(s). -/// -/// The input is a list of ([BucketIdFor], [MspStorageRequestResponse]) elements, -/// where the [MspStorageRequestResponse] contains the file keys that are accepted -/// or rejected by the MSP. -pub type FileKeyResponsesInput = BoundedVec< - (BucketIdFor, MspStorageRequestResponse), - MaxBatchMspRespondStorageRequests, ->; - -/// Result from an MSP responding to storage request(s). #[derive(Encode, Decode, MaxEncodedLen, TypeInfo, PartialEq, Eq, Clone)] #[scale_info(skip_type_params(T))] -pub struct MspRespondStorageRequestsResult { - pub msp_id: ProviderIdFor, - pub responses: BoundedVec, MaxBatchMspRespondStorageRequests>, +pub struct RejectedStorageRequest { + pub file_key: MerkleHash, + pub reason: RejectedStorageRequestReason, } -impl Debug for MspRespondStorageRequestsResult { +impl Debug for RejectedStorageRequest { fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { write!( f, - "MspRespondStorageRequestsResult(msp_id: {:?}, responses: {:?})", - self.msp_id, - self.responses.encode() + "RejectedStorageRequest(file_key: {:?}, reason: {:?})", + self.file_key, self.reason ) } } -/// Possible response batches for an MSP accepting, rejecting, or failing to respond to storage requests. -#[derive(Encode, Decode, MaxEncodedLen, TypeInfo, Debug, PartialEq, Eq, Clone)] -#[scale_info(skip_type_params(T))] -pub enum BatchResponses { - Accepted(MspAcceptedBatchStorageRequests), - Rejected(MspRejectedBatchStorageRequests), - Failed(MspFailedBatchStorageRequests), -} - -/// Batch of accepted storage requests (i.e. file keys) all belonging to the same bucket. -#[derive(Encode, Decode, MaxEncodedLen, TypeInfo, Debug, PartialEq, Eq, Clone)] +#[derive(Encode, Decode, MaxEncodedLen, TypeInfo, PartialEq, Eq, Clone)] #[scale_info(skip_type_params(T))] -pub struct MspAcceptedBatchStorageRequests { - pub file_keys: BoundedVec, MaxBatchMspRespondStorageRequests>, +pub struct StorageRequestMspBucketResponse { pub bucket_id: BucketIdFor, - pub new_bucket_root: MerkleHash, - pub owner: T::AccountId, + pub accept: Option>, + pub reject: BoundedVec, MaxBatchMspRespondStorageRequests>, } -/// Batch of rejected storage requests (i.e. file keys) all belonging to the same bucket. -#[derive(Encode, Decode, MaxEncodedLen, TypeInfo, Debug, PartialEq, Eq, Clone)] -#[scale_info(skip_type_params(T))] -pub struct MspRejectedBatchStorageRequests { - pub file_keys: BoundedVec< - (MerkleHash, RejectedStorageRequestReason), - MaxBatchMspRespondStorageRequests, - >, - pub bucket_id: BucketIdFor, - pub owner: T::AccountId, +impl Debug for StorageRequestMspBucketResponse { + fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { + write!( + f, + "StorageRequestMspBucketResponse(bucket_id: {:?}, accept: {:?}, reject: {:?})", + self.bucket_id, self.accept, self.reject + ) + } } -/// Batch of failed storage requests (i.e. file keys) all belonging to the same bucket. -#[derive(Encode, Decode, MaxEncodedLen, TypeInfo, Debug, PartialEq, Eq, Clone)] -#[scale_info(skip_type_params(T))] -pub struct MspFailedBatchStorageRequests { - pub file_keys: BoundedVec<(MerkleHash, DispatchError), MaxBatchMspRespondStorageRequests>, - pub bucket_id: BucketIdFor, - pub owner: T::AccountId, -} +/// Input for MSPs to respond to storage request(s). +/// +/// The input is a list of bucket responses, where each response contains: +/// - The bucket ID +/// - Optional accepted file keys and proof for the whole list +/// - List of rejected file keys and rejection reasons +pub type StorageRequestMspResponse = + BoundedVec, MaxBatchMspRespondStorageRequests>; /// Ephemeral BSP storage request tracking metadata. #[derive(Encode, Decode, MaxEncodedLen, TypeInfo, Debug, PartialEq, Eq, Clone)] diff --git a/pallets/file-system/src/utils.rs b/pallets/file-system/src/utils.rs index c3a72de25..09af244ae 100644 --- a/pallets/file-system/src/utils.rs +++ b/pallets/file-system/src/utils.rs @@ -18,10 +18,7 @@ use sp_runtime::{ }, ArithmeticError, BoundedVec, DispatchError, }; -use sp_std::{ - collections::{btree_map::BTreeMap, btree_set::BTreeSet}, - vec::Vec, -}; +use sp_std::{collections::btree_set::BTreeSet, vec::Vec}; use pallet_file_system_runtime_api::{ QueryBspConfirmChunksToProveForFileError, QueryConfirmChunksToProveForFileError, @@ -38,14 +35,13 @@ use shp_traits::{ use crate::{ pallet, types::{ - AcceptedStorageRequestParameters, BatchResponses, BucketIdFor, BucketMoveRequestResponse, - BucketNameFor, CollectionConfigFor, CollectionIdFor, EitherAccountIdOrMspId, - ExpirationItem, FileKeyHasher, FileKeyResponsesInput, FileLocation, Fingerprint, - ForestProof, KeyProof, MaxBatchMspRespondStorageRequests, MerkleHash, - MoveBucketRequestMetadata, MspAcceptedBatchStorageRequests, MspFailedBatchStorageRequests, - MspRejectedBatchStorageRequests, MspRespondStorageRequestsResult, MultiAddresses, PeerIds, - ProviderIdFor, RejectedStorageRequestReason, ReplicationTargetType, StorageData, - StorageRequestBspsMetadata, StorageRequestMetadata, TickNumber, ValuePropId, + BucketIdFor, BucketMoveRequestResponse, BucketNameFor, CollectionConfigFor, + CollectionIdFor, EitherAccountIdOrMspId, ExpirationItem, FileKeyHasher, FileLocation, + Fingerprint, ForestProof, KeyProof, MaxBatchMspRespondStorageRequests, MerkleHash, + MoveBucketRequestMetadata, MultiAddresses, PeerIds, ProviderIdFor, RejectedStorageRequest, + ReplicationTargetType, StorageData, StorageRequestBspsMetadata, StorageRequestMetadata, + StorageRequestMspAcceptedFileKeys, StorageRequestMspBucketResponse, + StorageRequestMspResponse, TickNumber, ValuePropId, }, BucketsWithStorageRequests, Error, Event, HoldReason, Pallet, PendingBucketsToMove, PendingFileDeletionRequests, PendingMoveBucketRequests, PendingStopStoringRequests, @@ -249,16 +245,18 @@ where /// Create a bucket for an owner (user) under a given MSP account. pub(crate) fn do_create_bucket( sender: T::AccountId, - msp_id: ProviderIdFor, + msp_id: Option>, name: BucketNameFor, private: bool, - value_prop_id: ValuePropId, + value_prop_id: Option>, ) -> Result<(BucketIdFor, Option>), DispatchError> { // Check if the MSP is indeed an MSP. - ensure!( - ::is_msp(&msp_id), - Error::::NotAMsp - ); + if let Some(msp_id) = msp_id { + ensure!( + ::is_msp(&msp_id), + Error::::NotAMsp + ); + } // Create collection only if bucket is private let maybe_collection_id = if private { @@ -268,7 +266,7 @@ where None }; - let bucket_id = ::Providers::derive_bucket_id(&msp_id, &sender, name); + let bucket_id = ::Providers::derive_bucket_id(&sender, name); ::add_bucket( msp_id, @@ -660,8 +658,8 @@ where /// caller to verify the final result and apply only the file keys that have been successfully accepted. pub(crate) fn do_msp_respond_storage_request( sender: T::AccountId, - file_key_responses_input: FileKeyResponsesInput, - ) -> Result, DispatchError> { + storage_request_msp_response: StorageRequestMspResponse, + ) -> Result<(), DispatchError> { // Check that the sender is a Storage Provider and get its MSP ID let msp_id = ::get_provider_id(sender.clone()) @@ -673,14 +671,9 @@ where Error::::NotAMsp ); - // Initialize batch responses - let mut batch_responses: BoundedVec< - BatchResponses, - MaxBatchMspRespondStorageRequests, - > = BoundedVec::default(); - // Preliminary check to ensure that the MSP is the one storing each bucket in the responses - for (bucket_id, _) in file_key_responses_input.iter() { + for StorageRequestMspBucketResponse { bucket_id, .. } in storage_request_msp_response.iter() + { ensure!( ::is_bucket_stored_by_msp( &msp_id, &bucket_id @@ -690,109 +683,34 @@ where } // Process each bucket's responses - for (bucket_id, file_key_responses) in file_key_responses_input { - let mut failed: BoundedVec< - (MerkleHash, DispatchError), - MaxBatchMspRespondStorageRequests, - > = BoundedVec::default(); - - let owner = ::get_bucket_owner(&bucket_id) - .map_err(|_| Error::::BucketNotFound)?; - - if let Some(accepted_file_keys) = file_key_responses.accept { - // Call do_msp_accept_storage_request, which returns the new_bucket_root - let (new_bucket_root, accepted_file_keys, failed_file_keys) = - Self::do_msp_accept_storage_request(msp_id, bucket_id, accepted_file_keys)?; - - // Create batch responses - if !accepted_file_keys.is_empty() { - let accepted_batch = MspAcceptedBatchStorageRequests { - file_keys: accepted_file_keys, - bucket_id, - new_bucket_root, - owner: owner.clone(), - }; - - batch_responses - .try_push(BatchResponses::Accepted(accepted_batch)) - .map_err(|_| Error::::TooManyBatchResponses)?; - } - - if !failed_file_keys.is_empty() { - for rejected_file_key in failed_file_keys { - failed - .try_push(rejected_file_key) - .map_err(|_| Error::::TooManyStorageRequestResponses)?; - } - } + for StorageRequestMspBucketResponse { + bucket_id, + accept, + reject, + } in storage_request_msp_response.into_iter() + { + if let Some(accepted_file_keys) = accept { + Self::do_msp_accept_storage_request(msp_id, bucket_id, accepted_file_keys)?; } - if let Some(rejected_file_keys) = file_key_responses.reject { - let mut rejected: BoundedVec< - (MerkleHash, RejectedStorageRequestReason), - MaxBatchMspRespondStorageRequests, - > = BoundedVec::default(); - - for file_key in rejected_file_keys.iter() { - let storage_request_metadata = match >::get(&file_key.0) { - Some(metadata) => metadata, - None => { - failed - .try_push((file_key.0, Error::::StorageRequestNotFound.into())) - .map_err(|_| Error::::TooManyStorageRequestResponses)?; - continue; - } - }; - - if let Err(e) = Self::cleanup_storage_request( - EitherAccountIdOrMspId::MspId(msp_id), - file_key.0, - &storage_request_metadata, - ) { - failed - .try_push((file_key.0, e)) - .map_err(|_| Error::::TooManyStorageRequestResponses)?; - continue; - } - - rejected - .try_push((file_key.0, file_key.1.clone())) - .map_err(|_| Error::::TooManyStorageRequestResponses)?; - } - - if !rejected.is_empty() { - let rejected_batch = MspRejectedBatchStorageRequests { - file_keys: rejected, - bucket_id, - owner: owner.clone(), - }; + for RejectedStorageRequest { file_key, reason } in reject { + let storage_request_metadata = >::get(file_key) + .ok_or(Error::::StorageRequestNotFound)?; - batch_responses - .try_push(BatchResponses::Rejected(rejected_batch)) - .map_err(|_| Error::::TooManyBatchResponses)?; - } - } - - if !failed.is_empty() { - let failed_batch = MspFailedBatchStorageRequests { - file_keys: failed, - bucket_id, - owner: owner.clone(), - }; + Self::cleanup_storage_request( + EitherAccountIdOrMspId::MspId(msp_id), + file_key, + &storage_request_metadata, + )?; - batch_responses - .try_push(BatchResponses::Failed(failed_batch)) - .map_err(|_| Error::::TooManyBatchResponses)?; + Self::deposit_event(Event::StorageRequestRejected { + file_key: file_key, + reason, + }); } } - // Construct the result - let result = MspRespondStorageRequestsResult { - msp_id, - responses: batch_responses, - }; - - Ok(result) + Ok(()) } pub(crate) fn do_msp_stop_storing_bucket( @@ -838,31 +756,19 @@ where /// /// The implementation follows this sequence: /// 1. Verify the non-inclusion proof. - /// 2. For each file key: Record a successful acceptance or a failure. Any failed operation while processing a file key - /// will not result in the function failing, but the file key will be marked as failed and the function will continue processing the rest. - /// 3. Apply the delta with all the keys that were successfully accepted to the root of the bucket. + /// 2. For each file key: Verify and process the acceptance. If any operation fails during the processing of a file key, + /// the entire function will fail and no changes will be applied. + /// 3. If all file keys are successfully processed, apply the delta with all the accepted keys to the root of the bucket. + /// 4. If any step fails, the function will return an error and no changes will be made to the storage state. fn do_msp_accept_storage_request( msp_id: ProviderIdFor, bucket_id: BucketIdFor, - accepted_file_keys: AcceptedStorageRequestParameters, - ) -> Result< - ( - MerkleHash, - BoundedVec, T::MaxBatchMspRespondStorageRequests>, - BoundedVec< - ( - ::MerkleHash, - DispatchError, - ), - T::MaxBatchMspRespondStorageRequests, - >, - ), - DispatchError, - > { + accepted_file_keys: StorageRequestMspAcceptedFileKeys, + ) -> Result, DispatchError> { let file_keys = accepted_file_keys .file_keys_and_proofs .iter() - .map(|(fk, _)| *fk) + .map(|file_key_with_proof| file_key_with_proof.file_key) .collect::>(); // Get the Bucket's root @@ -878,42 +784,22 @@ where &accepted_file_keys.non_inclusion_forest_proof, )?; - // Initialize accepted, rejected, and failed file keys - let mut accepted_file_keys_and_metadata = BTreeMap::new(); - let mut failed_file_keys: BoundedVec< - (MerkleHash, DispatchError), - T::MaxBatchMspRespondStorageRequests, - > = BoundedVec::default(); - - for (file_key, key_proof) in accepted_file_keys.file_keys_and_proofs { - // Skip any duplicates. - if accepted_file_keys_and_metadata.contains_key(&file_key) { - continue; - } + let mut accepted_files_metadata = + BoundedVec::<_, MaxBatchMspRespondStorageRequests>::new(); - let mut storage_request_metadata = match >::get(&file_key) { - Some(metadata) => metadata, - None => { - failed_file_keys - .try_push((file_key, Error::::StorageRequestNotFound.into())) - .map_err(|_| Error::::TooManyStorageRequestResponses)?; - continue; - } - }; + for file_key_with_proof in accepted_file_keys.file_keys_and_proofs.iter() { + let mut storage_request_metadata = + >::get(&file_key_with_proof.file_key) + .ok_or(Error::::StorageRequestNotFound)?; // Ensure that the file key IS NOT part of the bucket's forest. - if proven_keys.contains(&file_key) { - failed_file_keys - .try_push((file_key, Error::::ExpectedNonInclusionProof.into())) - .map_err(|_| Error::::TooManyStorageRequestResponses)?; - continue; + if proven_keys.contains(&file_key_with_proof.file_key) { + return Err(Error::::ExpectedNonInclusionProof.into()); } + // Check that the storage request bucket ID matches the provided bucket ID. if storage_request_metadata.bucket_id != bucket_id { - failed_file_keys - .try_push((file_key, Error::::InvalidBucketIdFileKeyPair.into())) - .map_err(|_| Error::::TooManyStorageRequestResponses)?; - continue; + return Err(Error::::InvalidBucketIdFileKeyPair.into()); } // Check that the MSP is the one storing the bucket. @@ -921,79 +807,57 @@ where &msp_id, &storage_request_metadata.bucket_id, ) { - failed_file_keys - .try_push((file_key, Error::::MspNotStoringBucket.into())) - .map_err(|_| Error::::TooManyStorageRequestResponses)?; - continue; + return Err(Error::::MspNotStoringBucket.into()); } + // Check that the storage request has a MSP. + if storage_request_metadata.msp.is_none() { + return Err(Error::::RequestWithoutMsp.into()); + } + + let (request_msp_id, confirm_status) = storage_request_metadata.msp.unwrap(); + // Check that the sender corresponds to the MSP in the storage request and that it hasn't yet confirmed storing the file. - match storage_request_metadata.msp { - Some((request_msp_id, confirm_status)) => { - if request_msp_id != msp_id { - failed_file_keys - .try_push((file_key, Error::::NotSelectedMsp.into())) - .map_err(|_| Error::::TooManyStorageRequestResponses)?; - continue; - } + if request_msp_id != msp_id { + return Err(Error::::NotSelectedMsp.into()); + } - if confirm_status { - failed_file_keys - .try_push((file_key, Error::::MspAlreadyConfirmed.into())) - .map_err(|_| Error::::TooManyStorageRequestResponses)?; - continue; - } - } - None => { - failed_file_keys - .try_push((file_key, Error::::RequestWithoutMsp.into())) - .map_err(|_| Error::::TooManyStorageRequestResponses)?; - continue; - } + if confirm_status { + return Err(Error::::MspAlreadyConfirmed.into()); } // Check that the MSP still has enough available capacity to store the file. if ::available_capacity(&msp_id) < storage_request_metadata.size { - failed_file_keys - .try_push((file_key, Error::::InsufficientAvailableCapacity.into())) - .map_err(|_| Error::::TooManyStorageRequestResponses)?; - continue; + return Err(Error::::InsufficientAvailableCapacity.into()); } // Get the file metadata to insert into the bucket under the file key. let file_metadata = storage_request_metadata.clone().to_file_metadata(); - let encoded_trie_value = file_metadata.encode(); + + if accepted_files_metadata.try_push(file_metadata).is_err() { + return Err(Error::::TooManyStorageRequestResponses.into()); + } let chunk_challenges = Self::generate_chunk_challenges_on_sp_confirm( msp_id, - file_key, + file_key_with_proof.file_key, &storage_request_metadata, ); // Check that the key proof is valid. - if let Err(e) = ::verify_key_proof( - &file_key, + ::verify_key_proof( + &file_key_with_proof.file_key, &chunk_challenges, - &key_proof, - ) { - failed_file_keys - .try_push((file_key, e)) - .map_err(|_| Error::::TooManyStorageRequestResponses)?; - continue; - } + &file_key_with_proof.proof, + )?; // Increase size of the bucket. - if let Err(e) = ::increase_bucket_size( + ::increase_bucket_size( &storage_request_metadata.bucket_id, storage_request_metadata.size, - ) { - failed_file_keys - .try_push((file_key, e)) - .map_err(|_| Error::::TooManyStorageRequestResponses)?; - continue; - } + )?; // Increase the used capacity of the MSP // This should not fail since we checked that the MSP has enough available capacity to store the file. @@ -1010,15 +874,15 @@ where // Check if all BSPs have confirmed storing the file. if storage_request_metadata.bsps_confirmed == storage_request_metadata.bsps_required { // Remove storage request metadata. - >::remove(&file_key); + >::remove(&file_key_with_proof.file_key); >::remove( &storage_request_metadata.bucket_id, - &file_key, + &file_key_with_proof.file_key, ); // Remove storage request bsps - let removed = - >::drain_prefix(&file_key).fold(0, |acc, _| acc + 1); + let removed = >::drain_prefix(&file_key_with_proof.file_key) + .fold(0, |acc, _| acc + 1); // Make sure that the expected number of bsps were removed. expect_or_err!( @@ -1037,24 +901,24 @@ where )?; // Notify that the storage request has been fulfilled. - Self::deposit_event(Event::StorageRequestFulfilled { file_key }); + Self::deposit_event(Event::StorageRequestFulfilled { + file_key: file_key_with_proof.file_key, + }); } else { // Set as confirmed the MSP in the storage request metadata. storage_request_metadata.msp = Some((msp_id, true)); // Update storage request metadata. - >::set(&file_key, Some(storage_request_metadata.clone())); - } + >::set( + &file_key_with_proof.file_key, + Some(storage_request_metadata.clone()), + ); - // This should not fail since we checked that the key is not already in the map. - expect_or_err!( - accepted_file_keys_and_metadata - .insert(file_key, encoded_trie_value) - .is_none(), - "Failed to insert file key and metadata into accepted_file_keys_and_metadata", - Error::::InconsistentStateKeyAlreadyExists, - bool - ); + // Notify that the storage request has been accepted by an MSP. + Self::deposit_event(Event::MspAcceptedStorageRequest { + file_key: file_key_with_proof.file_key, + }); + } } // Get the current root of the bucket where the file will be stored. @@ -1068,9 +932,15 @@ where let new_bucket_root = ::generic_apply_delta( &bucket_root, - accepted_file_keys_and_metadata + accepted_files_metadata .iter() - .map(|(fk, metadata)| (*fk, TrieAddMutation::new(metadata.clone()).into())) + .zip(accepted_file_keys.file_keys_and_proofs) + .map(|(file_metadata, file_key_with_proof)| { + ( + file_key_with_proof.file_key, + TrieAddMutation::new(file_metadata.encode()).into(), + ) + }) .collect::>() .as_slice(), &accepted_file_keys.non_inclusion_forest_proof, @@ -1082,16 +952,7 @@ where new_bucket_root, )?; - let accepted_file_keys: Vec> = - accepted_file_keys_and_metadata.keys().cloned().collect(); - - Ok(( - new_bucket_root, - accepted_file_keys - .try_into() - .map_err(|_| Error::::TooManyStorageRequestResponses)?, - failed_file_keys, - )) + Ok(new_bucket_root) } /// Volunteer to store a file. @@ -1938,7 +1799,7 @@ where fingerprint: Fingerprint, size: StorageData, maybe_inclusion_forest_proof: Option>, - ) -> Result<(bool, ProviderIdFor), DispatchError> { + ) -> Result<(bool, Option>), DispatchError> { // Compute the file key hash. let computed_file_key = Self::compute_file_key( sender.clone(), @@ -1960,8 +1821,7 @@ where Error::::NotBucketOwner ); - let msp_id = ::get_msp_of_bucket(&bucket_id) - .ok_or(Error::::BucketNotFound)?; + let msp_id = ::get_msp_of_bucket(&bucket_id)?; let file_key_included = match maybe_inclusion_forest_proof { // If the user did not supply a proof of inclusion, queue a pending deletion file request. @@ -2250,6 +2110,7 @@ where } mod hooks { + use crate::types::RejectedStorageRequestReason; use crate::{ pallet, types::MerkleHash, @@ -2395,13 +2256,37 @@ mod hooks { } // Remove storage request and all bsps that volunteered for it. - StorageRequests::::remove(&file_key); + let storage_request_metadata = StorageRequests::::take(&file_key); let removed = StorageRequestBsps::::drain_prefix(&file_key).fold(0, |acc, _| acc + 1u32); remaining_weight.saturating_reduce(db_weight.writes(1.saturating_add(removed.into()))); - Self::deposit_event(Event::StorageRequestExpired { file_key }); + match storage_request_metadata { + Some(storage_request_metadata) => match storage_request_metadata.msp { + Some((msp_id, msp_confirmed)) => { + if msp_confirmed { + Self::deposit_event(Event::StorageRequestExpired { file_key }); + } else { + // Error should not happen, we ignore it. + let _ = Self::cleanup_storage_request( + EitherAccountIdOrMspId::MspId(msp_id), + file_key, + &storage_request_metadata, + ); + + Self::deposit_event(Event::StorageRequestRejected { + file_key, + reason: RejectedStorageRequestReason::RequestExpired, + }); + } + } + None => Self::deposit_event(Event::StorageRequestExpired { file_key }), + }, + None => { + // This should never happen. + } + } } fn process_expired_pending_file_deletion( diff --git a/pallets/providers/src/lib.rs b/pallets/providers/src/lib.rs index 607061e54..b0a131a18 100644 --- a/pallets/providers/src/lib.rs +++ b/pallets/providers/src/lib.rs @@ -464,6 +464,13 @@ pub mod pallet { amount_slashed: BalanceOf, }, + /// Event emitted when a bucket's root has been changed. + BucketRootChanged { + bucket_id: BucketId, + old_root: MerklePatriciaRoot, + new_root: MerklePatriciaRoot, + }, + /// Event emitted when a Provider has added a new MultiAddress to its account. MultiAddressAdded { provider_id: HashId, @@ -578,6 +585,8 @@ pub mod pallet { MspAlreadyAssignedToBucket, /// Error thrown when a user exceeded the bucket data limit based on the associated value proposition. BucketSizeExceedsLimit, + /// Error thrown when a bucket has no value proposition. + BucketHasNoValueProposition, // Payment streams interface errors: /// Error thrown when failing to decode the metadata from a received trie value that was removed. diff --git a/pallets/providers/src/tests.rs b/pallets/providers/src/tests.rs index eed2c77ba..b1a7a366e 100644 --- a/pallets/providers/src/tests.rs +++ b/pallets/providers/src/tests.rs @@ -3759,30 +3759,29 @@ mod add_bucket { let bucket_owner = accounts::BOB.0; let bucket_name = BoundedVec::try_from(b"bucket".to_vec()).unwrap(); let bucket_id = ::derive_bucket_id( - &msp_id, &bucket_owner, bucket_name, ); // Add a bucket for Alice assert_ok!(StorageProviders::add_bucket( - msp_id, + Some(msp_id), bucket_owner, bucket_id, false, None, - value_prop_id + Some(value_prop_id) )); // Try to add the bucket for Alice with the same bucket id assert_noop!( StorageProviders::add_bucket( - msp_id, + Some(msp_id), bucket_owner, bucket_id, false, None, - value_prop_id + Some(value_prop_id) ), Error::::BucketAlreadyExists ); @@ -3795,7 +3794,6 @@ mod add_bucket { let bucket_owner = accounts::BOB.0; let bucket_name = BoundedVec::try_from(b"bucket".to_vec()).unwrap(); let bucket_id = ::derive_bucket_id( - &MainStorageProviderId::::default(), &bucket_owner, bucket_name, ); @@ -3803,12 +3801,12 @@ mod add_bucket { // Try to add a bucket to a non-registered MSP assert_noop!( StorageProviders::add_bucket( - MainStorageProviderId::::default(), + Some(MainStorageProviderId::::default()), bucket_owner, bucket_id, false, None, - HashId::::default() + Some(HashId::::default()) ), Error::::NotRegistered ); @@ -3834,19 +3832,18 @@ mod add_bucket { let bucket_owner = accounts::BOB.0; let bucket_name = BoundedVec::try_from(b"bucket".to_vec()).unwrap(); let bucket_id = ::derive_bucket_id( - &msp_id, &bucket_owner, bucket_name, ); // Add a bucket for Alice assert_ok!(StorageProviders::add_bucket( - msp_id, + Some(msp_id), bucket_owner, bucket_id, false, None, - value_prop_id + Some(value_prop_id) )); // Check payment stream was added @@ -3894,7 +3891,7 @@ mod add_bucket { private: false, read_access_group_id: None, size: 0, - value_prop_id + value_prop_id: Some(value_prop_id), } ); @@ -3919,17 +3916,16 @@ mod add_bucket { let bucket_name = BoundedVec::try_from(format!("bucket{}", i).as_bytes().to_vec()).unwrap(); let bucket_id = ::derive_bucket_id( - &msp_id, &bucket_owner, bucket_name, ); assert_ok!(StorageProviders::add_bucket( - msp_id, + Some(msp_id), bucket_owner, bucket_id, false, None, - value_prop_id + Some(value_prop_id) )); let expected_hold_amount = @@ -3973,12 +3969,11 @@ mod unassign_msp_from_bucket { let (_deposit_amount, _alice_msp, _value_prop_id) = register_account_as_msp(alice, storage_amount, None, None); - let msp_id = crate::AccountIdToMainStorageProviderId::::get(&alice).unwrap(); + crate::AccountIdToMainStorageProviderId::::get(&alice).unwrap(); let bucket_owner = accounts::BOB.0; let bucket_name = BoundedVec::try_from(b"bucket".to_vec()).unwrap(); let bucket_id = ::derive_bucket_id( - &msp_id, &bucket_owner, bucket_name, ); @@ -4012,18 +4007,17 @@ mod unassign_msp_from_bucket { let bucket_owner = accounts::BOB.0; let bucket_name = BoundedVec::try_from(b"bucket".to_vec()).unwrap(); let bucket_id = ::derive_bucket_id( - &msp_id, &bucket_owner, bucket_name, ); assert_ok!(StorageProviders::add_bucket( - msp_id, + Some(msp_id), bucket_owner, bucket_id, false, None, - value_prop_id + Some(value_prop_id) )); assert!( @@ -4071,7 +4065,6 @@ mod assign_msp_to_bucket { let bucket_owner = accounts::BOB.0; let bucket_name = BoundedVec::try_from(b"bucket".to_vec()).unwrap(); let bucket_id = ::derive_bucket_id( - &msp_id, &bucket_owner, bucket_name, ); @@ -4101,19 +4094,18 @@ mod assign_msp_to_bucket { let bucket_owner = accounts::BOB.0; let bucket_name = BoundedVec::try_from(b"bucket".to_vec()).unwrap(); let bucket_id = ::derive_bucket_id( - &msp_id, &bucket_owner, bucket_name, ); // Add bucket assert_ok!(StorageProviders::add_bucket( - msp_id, + Some(msp_id), bucket_owner, bucket_id, false, None, - value_prop_id + Some(value_prop_id) )); assert_noop!( @@ -4154,19 +4146,18 @@ mod assign_msp_to_bucket { let bucket_owner = accounts::BOB.0; let bucket_name = BoundedVec::try_from(b"bucket".to_vec()).unwrap(); let bucket_id = ::derive_bucket_id( - &alice_msp_id, &bucket_owner, bucket_name, ); // Add bucket assert_ok!(StorageProviders::add_bucket( - alice_msp_id, + Some(alice_msp_id), bucket_owner, bucket_id, false, None, - value_prop_id + Some(value_prop_id) )); // check payment stream exists for alice @@ -4243,7 +4234,6 @@ mod remove_root_bucket { let bucket_owner = accounts::BOB.0; let bucket_name = BoundedVec::try_from(b"bucket".to_vec()).unwrap(); let bucket_id = ::derive_bucket_id( - &MainStorageProviderId::::default(), &bucket_owner, bucket_name, ); @@ -4273,19 +4263,18 @@ mod remove_root_bucket { let bucket_owner = accounts::BOB.0; let bucket_name = BoundedVec::try_from(b"bucket".to_vec()).unwrap(); let bucket_id = ::derive_bucket_id( - &msp_id, &bucket_owner, bucket_name, ); // Add a bucket for Alice assert_ok!(StorageProviders::add_bucket( - msp_id, + Some(msp_id), bucket_owner, bucket_id, false, None, - value_prop_id + Some(value_prop_id) )); // Check that the bucket was added to the MSP @@ -4343,17 +4332,16 @@ mod remove_root_bucket { let bucket_name = BoundedVec::try_from(format!("bucket{}", i).as_bytes().to_vec()).unwrap(); let bucket_id = ::derive_bucket_id( - &msp_id, &bucket_owner, bucket_name, ); assert_ok!(StorageProviders::add_bucket( - msp_id, + Some(msp_id), bucket_owner, bucket_id, false, None, - value_prop_id + Some(value_prop_id) )); let expected_hold_amount = @@ -4375,7 +4363,6 @@ mod remove_root_bucket { let bucket_name = BoundedVec::try_from(format!("bucket{}", i).as_bytes().to_vec()).unwrap(); let bucket_id = ::derive_bucket_id( - &msp_id, &bucket_owner, bucket_name, ); @@ -4445,7 +4432,6 @@ mod increase_bucket_size { let bucket_owner = accounts::BOB.0; let bucket_name = BoundedVec::try_from(b"bucket".to_vec()).unwrap(); let bucket_id = ::derive_bucket_id( - &MainStorageProviderId::::default(), &bucket_owner, bucket_name, ); @@ -4473,19 +4459,18 @@ mod increase_bucket_size { let bucket_owner = accounts::BOB.0; let bucket_name = BoundedVec::try_from(b"bucket".to_vec()).unwrap(); let bucket_id = ::derive_bucket_id( - &msp_id, &bucket_owner, bucket_name, ); // Add a bucket for Alice assert_ok!(StorageProviders::add_bucket( - msp_id, + Some(msp_id), bucket_owner, bucket_id, false, None, - value_prop_id + Some(value_prop_id) )); // Remove the MSP from the bucket @@ -4531,17 +4516,16 @@ mod increase_bucket_size { let bucket_name = BoundedVec::try_from(format!("bucket{}", i).as_bytes().to_vec()).unwrap(); let bucket_id = ::derive_bucket_id( - &msp_id, &bucket_owner, bucket_name, ); assert_ok!(StorageProviders::add_bucket( - msp_id, + Some(msp_id), bucket_owner, bucket_id, false, None, - value_prop_id + Some(value_prop_id) )); let expected_hold_amount = @@ -4563,7 +4547,6 @@ mod increase_bucket_size { let bucket_name = BoundedVec::try_from(format!("bucket{}", i).as_bytes().to_vec()).unwrap(); let bucket_id = ::derive_bucket_id( - &msp_id, &bucket_owner, bucket_name, ); @@ -4612,7 +4595,6 @@ mod decrease_bucket_size { let bucket_owner = accounts::BOB.0; let bucket_name = BoundedVec::try_from(b"bucket".to_vec()).unwrap(); let bucket_id = ::derive_bucket_id( - &MainStorageProviderId::::default(), &bucket_owner, bucket_name, ); @@ -4640,19 +4622,18 @@ mod decrease_bucket_size { let bucket_owner = accounts::BOB.0; let bucket_name = BoundedVec::try_from(b"bucket".to_vec()).unwrap(); let bucket_id = ::derive_bucket_id( - &msp_id, &bucket_owner, bucket_name, ); // Add a bucket for Alice assert_ok!(StorageProviders::add_bucket( - msp_id, + Some(msp_id), bucket_owner, bucket_id, false, None, - value_prop_id + Some(value_prop_id) )); // Remove the MSP from the bucket @@ -4698,17 +4679,16 @@ mod decrease_bucket_size { let bucket_name = BoundedVec::try_from(format!("bucket{}", i).as_bytes().to_vec()).unwrap(); let bucket_id = ::derive_bucket_id( - &msp_id, &bucket_owner, bucket_name, ); assert_ok!(StorageProviders::add_bucket( - msp_id, + Some(msp_id), bucket_owner, bucket_id, false, None, - value_prop_id + Some(value_prop_id) )); let expected_hold_amount = @@ -4730,7 +4710,6 @@ mod decrease_bucket_size { let bucket_name = BoundedVec::try_from(format!("bucket{}", i).as_bytes().to_vec()).unwrap(); let bucket_id = ::derive_bucket_id( - &msp_id, &bucket_owner, bucket_name, ); @@ -4763,7 +4742,6 @@ mod decrease_bucket_size { let bucket_name = BoundedVec::try_from(format!("bucket{}", i).as_bytes().to_vec()).unwrap(); let bucket_id = ::derive_bucket_id( - &msp_id, &bucket_owner, bucket_name, ); @@ -5513,7 +5491,6 @@ mod make_value_prop_unavailable { let bucket_owner = accounts::BOB.0; let bucket_name = BoundedVec::try_from(b"bucket".to_vec()).unwrap(); let bucket_id = ::derive_bucket_id( - &msp_id, &bucket_owner, bucket_name, ); @@ -5521,12 +5498,12 @@ mod make_value_prop_unavailable { // Try to add a bucket with an unavailable value proposition assert_noop!( StorageProviders::add_bucket( - msp_id, + Some(msp_id), bucket_owner, bucket_id, false, None, - value_prop_id + Some(value_prop_id) ), Error::::ValuePropositionNotAvailable ); diff --git a/pallets/providers/src/types.rs b/pallets/providers/src/types.rs index 388d51ab8..3b726cf81 100644 --- a/pallets/providers/src/types.rs +++ b/pallets/providers/src/types.rs @@ -97,7 +97,7 @@ pub struct Bucket { pub private: bool, pub read_access_group_id: Option, pub size: StorageDataUnit, - pub value_prop_id: HashId, + pub value_prop_id: Option>, } #[derive(Encode, Decode, MaxEncodedLen, TypeInfo, RuntimeDebugNoBound, PartialEq, Eq, Clone)] diff --git a/pallets/providers/src/utils.rs b/pallets/providers/src/utils.rs index 89b938ae4..d083f45c1 100644 --- a/pallets/providers/src/utils.rs +++ b/pallets/providers/src/utils.rs @@ -1019,17 +1019,21 @@ where ) .unwrap_or_default(); - match delta { - RateDeltaParam::NewBucket => { - let bucket: Bucket = - Buckets::::get(&bucket_id).ok_or(Error::::BucketNotFound)?; + let bucket = Buckets::::get(&bucket_id).ok_or(Error::::BucketNotFound)?; - let value_prop = MainStorageProviderIdsToValuePropositions::::get( - &msp_id, - &bucket.value_prop_id, - ) - .ok_or(Error::::ValuePropositionNotFound)?; + ensure!( + bucket.value_prop_id.is_some(), + Error::::BucketHasNoValueProposition + ); + + let value_prop = MainStorageProviderIdsToValuePropositions::::get( + &msp_id, + &bucket.value_prop_id.unwrap(), + ) + .ok_or(Error::::ValuePropositionNotFound)?; + match delta { + RateDeltaParam::NewBucket => { let bucket_rate = value_prop .price_per_unit_of_data_per_block .checked_mul(&bucket.size.into()) @@ -1058,15 +1062,6 @@ where } } RateDeltaParam::RemoveBucket => { - let bucket: Bucket = - Buckets::::get(&bucket_id).ok_or(Error::::BucketNotFound)?; - - let value_prop = MainStorageProviderIdsToValuePropositions::::get( - &msp_id, - &bucket.value_prop_id, - ) - .ok_or(Error::::ValuePropositionNotFound)?; - let bucket_rate = value_prop .price_per_unit_of_data_per_block .checked_mul(&bucket.size.into()) @@ -1090,14 +1085,6 @@ where } } RateDeltaParam::Increase(delta) => { - let bucket = Buckets::::get(&bucket_id).ok_or(Error::::BucketNotFound)?; - - let value_prop = MainStorageProviderIdsToValuePropositions::::get( - &msp_id, - &bucket.value_prop_id, - ) - .ok_or(Error::::ValuePropositionNotFound)?; - let new_bucket_size = bucket .size .checked_add(&delta) @@ -1123,13 +1110,6 @@ where )?; } RateDeltaParam::Decrease(delta) => { - let bucket = Buckets::::get(&bucket_id).ok_or(Error::::BucketNotFound)?; - let value_prop = MainStorageProviderIdsToValuePropositions::::get( - &msp_id, - &bucket.value_prop_id, - ) - .ok_or(Error::::ValuePropositionNotFound)?; - let delta_rate = value_prop .price_per_unit_of_data_per_block .checked_mul(&delta.into()) @@ -1189,28 +1169,23 @@ impl ReadBucketsInterface for pallet::Pallet { } fn derive_bucket_id( - msp_id: &Self::ProviderId, owner: &Self::AccountId, bucket_name: BoundedVec, ) -> Self::BucketId { - let concat = msp_id + let concat = owner .encode() .into_iter() - .chain( - owner - .encode() - .into_iter() - .chain(bucket_name.encode().into_iter()), - ) + .chain(bucket_name.encode().into_iter()) .collect::>(); <::Hashing as sp_runtime::traits::Hash>::hash(&concat) } - fn get_msp_of_bucket(bucket_id: &Self::BucketId) -> Option { - let bucket = Buckets::::get(bucket_id).map(|bucket| bucket)?; - - bucket.msp_id.map(|msp_id| msp_id) + fn get_msp_of_bucket( + bucket_id: &Self::BucketId, + ) -> Result, DispatchError> { + let bucket = Buckets::::get(bucket_id).ok_or(Error::::BucketNotFound)?; + Ok(bucket.msp_id) } fn get_read_access_group_id_of_bucket( @@ -1274,12 +1249,12 @@ impl MutateBucketsInterface for pallet::Pallet { type ValuePropId = ValuePropId; fn add_bucket( - provider_id: Self::ProviderId, + provider_id: Option, user_id: Self::AccountId, bucket_id: Self::BucketId, privacy: bool, maybe_read_access_group_id: Option, - value_prop_id: Self::ValuePropId, + value_prop_id: Option, ) -> DispatchResult { // Check if bucket already exists ensure!( @@ -1287,26 +1262,32 @@ impl MutateBucketsInterface for pallet::Pallet { Error::::BucketAlreadyExists ); - // Check if the MSP exists - ensure!( - MainStorageProviders::::contains_key(&provider_id), - Error::::NotRegistered - ); - let user_balance = T::NativeBalance::reducible_balance( &user_id, Preservation::Preserve, Fortitude::Polite, ); - let value_prop = - MainStorageProviderIdsToValuePropositions::::get(&provider_id, &value_prop_id) + if let Some(provider_id) = provider_id { + // Check if the MSP exists + ensure!( + MainStorageProviders::::contains_key(&provider_id), + Error::::NotRegistered + ); + + if let Some(value_prop_id) = value_prop_id { + let value_prop = MainStorageProviderIdsToValuePropositions::::get( + &provider_id, + &value_prop_id, + ) .ok_or(Error::::ValuePropositionNotFound)?; - ensure!( - value_prop.available, - Error::::ValuePropositionNotAvailable - ); + ensure!( + value_prop.available, + Error::::ValuePropositionNotAvailable + ); + } + } let deposit = T::BucketDeposit::get(); ensure!(user_balance >= deposit, Error::::NotEnoughBalance); @@ -1320,7 +1301,7 @@ impl MutateBucketsInterface for pallet::Pallet { let bucket = Bucket { root: T::DefaultMerkleRoot::get(), - msp_id: Some(provider_id), + msp_id: provider_id, private: privacy, read_access_group_id: maybe_read_access_group_id, user_id: user_id.clone(), @@ -1329,14 +1310,17 @@ impl MutateBucketsInterface for pallet::Pallet { }; Buckets::::insert(&bucket_id, &bucket); - MainStorageProviderIdsToBuckets::::insert(provider_id, bucket_id, ()); - Self::apply_delta_fixed_rate_payment_stream( - &provider_id, - &bucket_id, - &user_id, - RateDeltaParam::NewBucket, - )?; + if let Some(provider_id) = provider_id { + MainStorageProviderIdsToBuckets::::insert(provider_id, bucket_id, ()); + + Self::apply_delta_fixed_rate_payment_stream( + &provider_id, + &bucket_id, + &user_id, + RateDeltaParam::NewBucket, + )?; + } Ok(()) } @@ -1405,6 +1389,13 @@ impl MutateBucketsInterface for pallet::Pallet { fn change_root_bucket(bucket_id: Self::BucketId, new_root: Self::MerkleHash) -> DispatchResult { Buckets::::try_mutate(&bucket_id, |bucket| { let bucket = bucket.as_mut().ok_or(Error::::BucketNotFound)?; + + Self::deposit_event(Event::::BucketRootChanged { + bucket_id, + old_root: bucket.root, + new_root, + }); + bucket.root = new_root; Ok(()) diff --git a/primitives/traits/src/lib.rs b/primitives/traits/src/lib.rs index 4d6eb0285..782ae5a25 100644 --- a/primitives/traits/src/lib.rs +++ b/primitives/traits/src/lib.rs @@ -151,7 +151,9 @@ pub trait ReadBucketsInterface { ) -> Result, DispatchError>; /// Get the MSP ID of the MSP that's storing a bucket. - fn get_msp_of_bucket(bucket_id: &Self::BucketId) -> Option; + fn get_msp_of_bucket( + bucket_id: &Self::BucketId, + ) -> Result, DispatchError>; /// Check if an account is the owner of a bucket. fn is_bucket_owner( @@ -162,9 +164,8 @@ pub trait ReadBucketsInterface { /// Check if a bucket is private. fn is_bucket_private(bucket_id: &Self::BucketId) -> Result; - /// Derive the Bucket Id of a bucket, from its MSP, owner and name. + /// Derive the Bucket Id of a bucket, from its owner and name. fn derive_bucket_id( - msp_id: &Self::ProviderId, owner: &Self::AccountId, bucket_name: BoundedVec, ) -> Self::BucketId; @@ -274,12 +275,12 @@ pub trait MutateBucketsInterface { /// If `privacy` is true, the bucket will be private and optionally the `read_access_group_id` will be used to /// determine the collection of NFTs that can access the bucket. fn add_bucket( - provider_id: Self::ProviderId, + provider_id: Option, user_id: Self::AccountId, bucket_id: Self::BucketId, privacy: bool, maybe_read_access_group_id: Option, - value_prop_id: Self::ValuePropId, + value_prop_id: Option, ) -> DispatchResult; /// Change MSP of a bucket. diff --git a/test/package.json b/test/package.json index 99f5aa0ee..5c5037b2e 100644 --- a/test/package.json +++ b/test/package.json @@ -36,8 +36,8 @@ "zombie:test:latest": "SH_IMAGE=docker.io/moonsonglabs/storage-hub:latest pnpm zombienet test configs/simple.zndsl", "test:full": "node --no-deprecation --import tsx --test ./suites/zombie/**.spec.ts", "test:fullnet": "NODE_OPTIONS='--no-deprecation' pnpm tsx scripts/checkRunning.ts && node --no-deprecation --test-concurrency 1 --import tsx --test ./suites/integration/msp/**.test.ts", + "test:fullnet:only": "NODE_OPTIONS='--no-deprecation' pnpm tsx scripts/checkRunning.ts && node --no-deprecation --test-concurrency 1 --import tsx --test --test-only ./suites/integration/msp/**.test.ts", "test:bspnet": "NODE_OPTIONS='--no-deprecation' pnpm tsx scripts/checkRunning.ts && node --no-deprecation --test-concurrency 1 --import tsx --test ./suites/integration/bsp/**.test.ts", - "test:fullnet:only": "NODE_OPTIONS='--no-deprecation' pnpm tsx scripts/checkRunning.ts && node --no-deprecation --import tsx --test-concurrency 1 --test --test-only ./suites/integration/msp/**.test.ts", "test:bspnet:only": "NODE_OPTIONS='--no-deprecation' pnpm tsx scripts/checkRunning.ts && node --no-deprecation --import tsx --test-concurrency 1 --test --test-only ./suites/integration/bsp/**.test.ts", "test:user": "NODE_OPTIONS='--no-deprecation' pnpm tsx scripts/checkRunning.ts && node --no-deprecation --test-concurrency 1 --import tsx --test ./suites/integration/user/**.test.ts", "test:user:only": "NODE_OPTIONS='--no-deprecation' pnpm tsx scripts/checkRunning.ts && node --no-deprecation --test-concurrency 1 --import tsx --test --test-only ./suites/integration/user/**.test.ts", diff --git a/test/suites/integration/bsp/debt-collection.test.ts b/test/suites/integration/bsp/debt-collection.test.ts index d93ba6560..0ddff50d7 100644 --- a/test/suites/integration/bsp/debt-collection.test.ts +++ b/test/suites/integration/bsp/debt-collection.test.ts @@ -247,7 +247,9 @@ describeBspNet( const cloudFileMetadata = await userApi.file.createBucketAndSendNewStorageRequest( "res/cloud.jpg", "test/cloud.jpg", - "bucket-1" + "bucket-1", + null, + null ); await userApi.wait.bspVolunteer(3); await bspApi.wait.bspFileStorageComplete(cloudFileMetadata.fileKey); @@ -258,7 +260,9 @@ describeBspNet( const adolphusFileMetadata = await userApi.file.createBucketAndSendNewStorageRequest( "res/adolphus.jpg", "test/adolphus.jpg", - "bucket-3" + "bucket-3", + null, + null ); await userApi.wait.bspVolunteer(3); await bspApi.wait.bspFileStorageComplete(adolphusFileMetadata.fileKey); diff --git a/test/suites/integration/bsp/submit-proofs.test.ts b/test/suites/integration/bsp/submit-proofs.test.ts index 5b99b8bc1..ea3f6ed38 100644 --- a/test/suites/integration/bsp/submit-proofs.test.ts +++ b/test/suites/integration/bsp/submit-proofs.test.ts @@ -262,7 +262,9 @@ describeBspNet( const fileMetadata = await userApi.file.createBucketAndSendNewStorageRequest( source, location, - bucketName + bucketName, + null, + null ); oneBspfileMetadata = fileMetadata; }); diff --git a/test/suites/integration/msp/reject-request.test.ts b/test/suites/integration/msp/reject-request.test.ts index 4da3e198c..38b347269 100644 --- a/test/suites/integration/msp/reject-request.test.ts +++ b/test/suites/integration/msp/reject-request.test.ts @@ -77,15 +77,21 @@ describeMspNet( userApi.shConsts.TEST_ARTEFACTS[source].size ); - // Seal block containing the MSP's transaction response to the storage request - const responses = await userApi.wait.mspResponse(); + await userApi.wait.mspResponseInTxPool(); + await userApi.sealBlock(); - invariant( - responses.length === 1, - "Expected 1 response since there is only a single bucket and should have been accepted" + const { event: storageRequestRejectedEvent } = await userApi.assert.eventPresent( + "fileSystem", + "StorageRequestRejected" ); - const response = responses[0].asRejected; + const storageRequestRejectedDataBlob = + userApi.events.fileSystem.StorageRequestRejected.is(storageRequestRejectedEvent) && + storageRequestRejectedEvent.data; + + if (!storageRequestRejectedDataBlob) { + throw new Error("Event doesn't match Type"); + } // Allow time for the MSP to update the local forest root await sleep(3000); @@ -93,13 +99,8 @@ describeMspNet( // Check that the MSP has not updated the local forest root of the bucket strictEqual( local_bucket_root.toString(), - (await mspApi.rpc.storagehubclient.getForestRoot(response.bucketId.toString())).toString() + (await mspApi.rpc.storagehubclient.getForestRoot(bucketId.toString())).toString() ); - - strictEqual(response.bucketId.toString(), bucketId.toString()); - - strictEqual(response.fileKeys[0][0].toString(), newStorageRequestDataBlob.fileKey.toString()); - strictEqual(response.fileKeys[0][1].toString(), "FileKeyAlreadyStored"); }); } ); diff --git a/test/suites/integration/msp/respond-multi-requests.test.ts b/test/suites/integration/msp/respond-multi-requests.test.ts index dcf83decb..d5393fe55 100644 --- a/test/suites/integration/msp/respond-multi-requests.test.ts +++ b/test/suites/integration/msp/respond-multi-requests.test.ts @@ -42,7 +42,7 @@ describeMspNet( userApi.events.fileSystem.NewBucket.is(newBucketEventEvent) && newBucketEventEvent.data; if (!newBucketEventDataBlob) { - throw new Error("Event doesn't match Type"); + throw new Error("NewBucket event data does not match expected type"); } const txs = []; @@ -88,7 +88,7 @@ describeMspNet( userApi.events.fileSystem.NewStorageRequest.is(e.event) && e.event.data; if (!newStorageRequestDataBlob) { - throw new Error("Event doesn't match Type"); + throw new Error("Event doesn't match NewStorageRequest type"); } const result = await mspApi.rpc.storagehubclient.isFileInFileStorage( @@ -105,21 +105,53 @@ describeMspNet( } // Seal block containing the MSP's transaction response to the storage request - const responses = await userApi.wait.mspResponse(); + await userApi.wait.mspResponseInTxPool(); + await userApi.sealBlock(); - if (responses.length !== 1) { - throw new Error( - "Expected 1 response since there is only a single bucket and should have been accepted" + let mspAcceptedStorageRequestDataBlob: any = undefined; + let storageRequestFulfilledDataBlob: any = undefined; + + try { + const { event: mspAcceptedStorageRequestEvent } = await userApi.assert.eventPresent( + "fileSystem", + "MspAcceptedStorageRequest" + ); + mspAcceptedStorageRequestDataBlob = + userApi.events.fileSystem.MspAcceptedStorageRequest.is(mspAcceptedStorageRequestEvent) && + mspAcceptedStorageRequestEvent.data; + } catch { + // Event not found, continue + } + + try { + const { event: storageRequestFulfilledEvent } = await userApi.assert.eventPresent( + "fileSystem", + "StorageRequestFulfilled" ); + storageRequestFulfilledDataBlob = + userApi.events.fileSystem.StorageRequestFulfilled.is(storageRequestFulfilledEvent) && + storageRequestFulfilledEvent.data; + } catch { + // Event not found, continue } - const response = responses[0].asAccepted; + let acceptedFileKey: string | null = null; + // We expect either the MSP accepted the storage request or the storage request was fulfilled + if (mspAcceptedStorageRequestDataBlob) { + acceptedFileKey = mspAcceptedStorageRequestDataBlob.fileKey.toString(); + } else if (storageRequestFulfilledDataBlob) { + acceptedFileKey = storageRequestFulfilledDataBlob.fileKey.toString(); + } - strictEqual(response.bucketId.toString(), newBucketEventDataBlob.bucketId.toString()); + if (!acceptedFileKey) { + throw new Error( + "Neither MspAcceptedStorageRequest nor StorageRequestFulfilled events were found" + ); + } // There is only a single key being accepted since it is the first file key to be processed and there is nothing to batch. strictEqual( - issuedFileKeys.some((key) => key.toString() === response.fileKeys[0].toString()), + issuedFileKeys.some((key) => key.toString() === acceptedFileKey), true ); @@ -127,53 +159,77 @@ describeMspNet( await sleep(3000); const local_bucket_root = await mspApi.rpc.storagehubclient.getForestRoot( - response.bucketId.toString() + newBucketEventDataBlob.bucketId.toString() + ); + + const { event: bucketRootChangedEvent } = await userApi.assert.eventPresent( + "providers", + "BucketRootChanged" ); - strictEqual(response.newBucketRoot.toString(), local_bucket_root.toString()); + const bucketRootChangedDataBlob = + userApi.events.providers.BucketRootChanged.is(bucketRootChangedEvent) && + bucketRootChangedEvent.data; + + if (!bucketRootChangedDataBlob) { + throw new Error("Expected BucketRootChanged event but received event of different type"); + } + + strictEqual(bucketRootChangedDataBlob.newRoot.toString(), local_bucket_root.toString()); const isFileInForest = await mspApi.rpc.storagehubclient.isFileInForest( - response.bucketId.toString(), - response.fileKeys[0] + newBucketEventDataBlob.bucketId.toString(), + acceptedFileKey ); invariant(isFileInForest.isTrue, "File is not in forest"); // Seal block containing the MSP's transaction response to the storage request - const responses2 = await userApi.wait.mspResponse(); + await userApi.wait.mspResponseInTxPool(); + await userApi.sealBlock(); - if (responses2.length !== 1) { - throw new Error( - "Expected 1 response since there is only a single bucket and should have been accepted" - ); - } + const fileKeys2: string[] = []; - const response2 = responses2[0].asAccepted; + const mspAcceptedStorageRequestEvents = await userApi.assert.eventMany( + "fileSystem", + "MspAcceptedStorageRequest" + ); - strictEqual(response2.bucketId.toString(), newBucketEventDataBlob.bucketId.toString()); + for (const e of mspAcceptedStorageRequestEvents) { + const mspAcceptedStorageRequestDataBlob = + userApi.events.fileSystem.MspAcceptedStorageRequest.is(e.event) && e.event.data; + if (mspAcceptedStorageRequestDataBlob) { + fileKeys2.push(mspAcceptedStorageRequestDataBlob.fileKey.toString()); + } + } - // There are two keys being accepted at once since they are batched. - strictEqual( - issuedFileKeys.some((key) => key.toString() === response2.fileKeys[0].toString()), - true - ); - strictEqual( - issuedFileKeys.some((key) => key.toString() === response2.fileKeys[1].toString()), - true - ); + invariant(fileKeys2.length === 2, "Expected 2 file keys"); // Allow time for the MSP to update the local forest root await sleep(3000); const local_bucket_root2 = await mspApi.rpc.storagehubclient.getForestRoot( - response2.bucketId.toString() + newBucketEventDataBlob.bucketId.toString() + ); + + const { event: bucketRootChangedEvent2 } = await userApi.assert.eventPresent( + "providers", + "BucketRootChanged" ); - strictEqual(response2.newBucketRoot.toString(), local_bucket_root2.toString()); + const bucketRootChangedDataBlob2 = + userApi.events.providers.BucketRootChanged.is(bucketRootChangedEvent2) && + bucketRootChangedEvent2.data; + + if (!bucketRootChangedDataBlob2) { + throw new Error("Expected BucketRootChanged event but received event of different type"); + } + + strictEqual(bucketRootChangedDataBlob2.newRoot.toString(), local_bucket_root2.toString()); - for (const fileKey of response2.fileKeys) { + for (const fileKey of fileKeys2) { const isFileInForest = await mspApi.rpc.storagehubclient.isFileInForest( - response2.bucketId.toString(), + newBucketEventDataBlob.bucketId.toString(), fileKey ); invariant(isFileInForest.isTrue, "File is not in forest"); diff --git a/test/suites/integration/msp/respond-single-request.test.ts b/test/suites/integration/msp/respond-single-request.test.ts index 5b5fadcd2..17976968e 100644 --- a/test/suites/integration/msp/respond-single-request.test.ts +++ b/test/suites/integration/msp/respond-single-request.test.ts @@ -73,7 +73,7 @@ describeMspNet( userApi.events.fileSystem.NewStorageRequest.is(event) && event.data; if (!newStorageRequestDataBlob) { - throw new Error("Event doesn't match Type"); + throw new Error("NewStorageRequest event data does not match expected type"); } strictEqual( @@ -101,32 +101,77 @@ describeMspNet( throw new Error("File not found in storage"); } - // Seal block containing the MSP's transaction response to the storage request - const responses = await userApi.wait.mspResponse(); + await userApi.wait.mspResponseInTxPool(); + await userApi.sealBlock(); + + let mspAcceptedStorageRequestDataBlob: any = undefined; + let storageRequestFulfilledDataBlob: any = undefined; + + try { + const { event: mspAcceptedStorageRequestEvent } = await userApi.assert.eventPresent( + "fileSystem", + "MspAcceptedStorageRequest" + ); + mspAcceptedStorageRequestDataBlob = + userApi.events.fileSystem.MspAcceptedStorageRequest.is(mspAcceptedStorageRequestEvent) && + mspAcceptedStorageRequestEvent.data; + } catch { + // Event not found, continue + } + + try { + const { event: storageRequestFulfilledEvent } = await userApi.assert.eventPresent( + "fileSystem", + "StorageRequestFulfilled" + ); + storageRequestFulfilledDataBlob = + userApi.events.fileSystem.StorageRequestFulfilled.is(storageRequestFulfilledEvent) && + storageRequestFulfilledEvent.data; + } catch { + // Event not found, continue + } + + let acceptedFileKey: string | null = null; + // We expect either the MSP accepted the storage request or the storage request was fulfilled + if (mspAcceptedStorageRequestDataBlob) { + acceptedFileKey = mspAcceptedStorageRequestDataBlob.fileKey.toString(); + } else if (storageRequestFulfilledDataBlob) { + acceptedFileKey = storageRequestFulfilledDataBlob.fileKey.toString(); + } - if (responses.length !== 1) { + if (!acceptedFileKey) { throw new Error( - "Expected 1 response since there is only a single bucket and should have been accepted" + "Neither MspAcceptedStorageRequest nor StorageRequestFulfilled events were found" ); } - const response = responses[0].asAccepted; + strictEqual(acceptedFileKey.toString(), event.data.fileKey.toString()); - strictEqual(response.bucketId.toString(), newBucketEventDataBlob.bucketId.toString()); - strictEqual(response.fileKeys[0].toString(), newStorageRequestDataBlob.fileKey.toString()); + const { event: bucketRootChangedEvent } = await userApi.assert.eventPresent( + "providers", + "BucketRootChanged" + ); + + const bucketRootChangedDataBlob = + userApi.events.providers.BucketRootChanged.is(bucketRootChangedEvent) && + bucketRootChangedEvent.data; + + if (!bucketRootChangedDataBlob) { + throw new Error("Expected BucketRootChanged event but received event of different type"); + } // Allow time for the MSP to update the local forest root await sleep(3000); const local_bucket_root = await mspApi.rpc.storagehubclient.getForestRoot( - response.bucketId.toString() + newBucketEventDataBlob.bucketId.toString() ); - strictEqual(response.newBucketRoot.toString(), local_bucket_root.toString()); + strictEqual(bucketRootChangedDataBlob.newRoot.toString(), local_bucket_root.toString()); const isFileInForest = await mspApi.rpc.storagehubclient.isFileInForest( - response.bucketId.toString(), - response.fileKeys[0] + newBucketEventDataBlob.bucketId.toString(), + event.data.fileKey.toString() ); invariant(isFileInForest.isTrue, "File is not in forest"); diff --git a/test/suites/integration/msp/stop-storing-bucket.test.ts b/test/suites/integration/msp/stop-storing-bucket.test.ts index 2ace8b18c..00d155390 100644 --- a/test/suites/integration/msp/stop-storing-bucket.test.ts +++ b/test/suites/integration/msp/stop-storing-bucket.test.ts @@ -55,31 +55,77 @@ describeMspNet( } // Seal block containing the MSP's transaction response to the storage request - const responses = await userApi.wait.mspResponse(); + await userApi.wait.mspResponseInTxPool(); + await userApi.sealBlock(); - if (responses.length !== 1) { + let mspAcceptedStorageRequestDataBlob: any = undefined; + let storageRequestFulfilledDataBlob: any = undefined; + + try { + const { event: mspAcceptedStorageRequestEvent } = await userApi.assert.eventPresent( + "fileSystem", + "MspAcceptedStorageRequest" + ); + mspAcceptedStorageRequestDataBlob = + userApi.events.fileSystem.MspAcceptedStorageRequest.is(mspAcceptedStorageRequestEvent) && + mspAcceptedStorageRequestEvent.data; + } catch { + // Event not found, continue + } + + try { + const { event: storageRequestFulfilledEvent } = await userApi.assert.eventPresent( + "fileSystem", + "StorageRequestFulfilled" + ); + storageRequestFulfilledDataBlob = + userApi.events.fileSystem.StorageRequestFulfilled.is(storageRequestFulfilledEvent) && + storageRequestFulfilledEvent.data; + } catch { + // Event not found, continue + } + + let acceptedFileKey: string | null = null; + // We expect either the MSP accepted the storage request or the storage request was fulfilled + if (mspAcceptedStorageRequestDataBlob) { + acceptedFileKey = mspAcceptedStorageRequestDataBlob.fileKey.toString(); + } else if (storageRequestFulfilledDataBlob) { + acceptedFileKey = storageRequestFulfilledDataBlob.fileKey.toString(); + } + + if (!acceptedFileKey) { throw new Error( - "Expected 1 response since there is only a single bucket and should have been accepted" + "Neither MspAcceptedStorageRequest nor StorageRequestFulfilled events were found" ); } - const response = responses[0].asAccepted; + strictEqual(acceptedFileKey.toString(), fileMetadata.fileKey.toString()); + + const { event: bucketRootChangedEvent } = await userApi.assert.eventPresent( + "providers", + "BucketRootChanged" + ); + + const bucketRootChangedDataBlob = + userApi.events.providers.BucketRootChanged.is(bucketRootChangedEvent) && + bucketRootChangedEvent.data; - strictEqual(response.bucketId.toString(), bucketId.toString()); - strictEqual(response.fileKeys[0].toString(), fileMetadata.fileKey.toString()); + if (!bucketRootChangedDataBlob) { + throw new Error("Expected BucketRootChanged event but received event of different type"); + } // Allow time for the MSP to update the local forest root await sleep(3000); const local_bucket_root = await mspApi.rpc.storagehubclient.getForestRoot( - response.bucketId.toString() + newBucketEventDataBlob.bucketId.toString() ); - strictEqual(response.newBucketRoot.toString(), local_bucket_root.toString()); + strictEqual(bucketRootChangedDataBlob.newRoot.toString(), local_bucket_root.toString()); const isFileInForest = await mspApi.rpc.storagehubclient.isFileInForest( - response.bucketId.toString(), - response.fileKeys[0] + newBucketEventDataBlob.bucketId.toString(), + acceptedFileKey ); invariant(isFileInForest.isTrue, "File is not in forest"); diff --git a/test/util/bspNet/fileHelpers.ts b/test/util/bspNet/fileHelpers.ts index 256e1c644..954da15ba 100644 --- a/test/util/bspNet/fileHelpers.ts +++ b/test/util/bspNet/fileHelpers.ts @@ -69,16 +69,19 @@ export const createBucketAndSendNewStorageRequest = async ( source: string, location: string, bucketName: string, - valuePropId?: HexString, - mspId?: HexString, + valuePropId?: HexString | null, + mspId?: HexString | null, owner?: KeyringPair ): Promise => { let localValuePropId = valuePropId; + let localMspId = mspId; + + if (localMspId === undefined) { + localMspId = ShConsts.DUMMY_MSP_ID; + } if (localValuePropId === undefined) { - const valueProps = await api.call.storageProvidersApi.queryValuePropositionsForMsp( - mspId ?? ShConsts.DUMMY_MSP_ID - ); + const valueProps = await api.call.storageProvidersApi.queryValuePropositionsForMsp(localMspId); localValuePropId = valueProps[0].id; } @@ -87,7 +90,13 @@ export const createBucketAndSendNewStorageRequest = async ( throw new Error("No value proposition found"); } - const newBucketEventEvent = await createBucket(api, bucketName, localValuePropId, mspId, owner); + const newBucketEventEvent = await createBucket( + api, + bucketName, + localValuePropId, + localMspId, + owner + ); const newBucketEventDataBlob = api.events.fileSystem.NewBucket.is(newBucketEventEvent) && newBucketEventEvent.data; @@ -107,7 +116,7 @@ export const createBucketAndSendNewStorageRequest = async ( location, fileMetadata.fingerprint, fileMetadata.file_size, - mspId ?? ShConsts.DUMMY_MSP_ID, + localMspId, [ShConsts.NODE_INFOS.user.expectedPeerId] ), owner ?? shUser @@ -138,8 +147,8 @@ export const createBucketAndSendNewStorageRequest = async ( export const createBucket = async ( api: ApiPromise, bucketName: string, - valuePropId?: HexString, - mspId: HexString = ShConsts.DUMMY_MSP_ID, + valuePropId?: HexString | null, + mspId: HexString | null = ShConsts.DUMMY_MSP_ID, owner: KeyringPair = shUser ) => { let localValuePropId = valuePropId; diff --git a/test/util/bspNet/test-api.ts b/test/util/bspNet/test-api.ts index 8b456d1cc..dfccc77b4 100644 --- a/test/util/bspNet/test-api.ts +++ b/test/util/bspNet/test-api.ts @@ -120,7 +120,7 @@ export class BspNetTestApi implements AsyncDisposable { ); } - private async createBucket(bucketName: string, valuePropId?: HexString) { + private async createBucket(bucketName: string, valuePropId?: HexString | null) { return Files.createBucket(this._api, bucketName, valuePropId); } @@ -268,11 +268,12 @@ export class BspNetTestApi implements AsyncDisposable { Waits.waitForBspStored(this._api, expectedExts, bspAccount), /** - * Waits for a MSP to respond to storage requests. + * Waits for a MSP to submit to the tx pool the extrinsic to respond to storage requests. * @param expectedExts - Optional param to specify the number of expected extrinsics. - * @returns A promise that resolves when a MSP has responded to storage requests. + * @returns A promise that resolves when a MSP has submitted to the tx pool the extrinsic to respond to storage requests. */ - mspResponse: (expectedExts?: number) => Waits.waitForMspResponse(this._api, expectedExts), + mspResponseInTxPool: (expectedExts?: number) => + Waits.waitForMspResponseWithoutSealing(this._api, expectedExts), /** * Waits for a BSP to submit to the tx pool the extrinsic to confirm storing a file. @@ -320,7 +321,7 @@ export class BspNetTestApi implements AsyncDisposable { * @param owner - Optional signer with which to issue the newStorageRequest Defaults to SH_USER. * @returns A promise that resolves to a new bucket event. */ - newBucket: (bucketName: string, owner?: KeyringPair, valuePropId?: HexString) => + newBucket: (bucketName: string, owner?: KeyringPair, valuePropId?: HexString | null) => Files.createBucket(this._api, bucketName, valuePropId, undefined, owner), /** @@ -355,8 +356,8 @@ export class BspNetTestApi implements AsyncDisposable { source: string, location: string, bucketName: string, - valuePropId?: HexString, - msp_id?: HexString, + valuePropId?: HexString | null, + msp_id?: HexString | null, owner?: KeyringPair ) => Files.createBucketAndSendNewStorageRequest( diff --git a/test/util/bspNet/waits.ts b/test/util/bspNet/waits.ts index aff289d28..c80d8622c 100644 --- a/test/util/bspNet/waits.ts +++ b/test/util/bspNet/waits.ts @@ -318,7 +318,6 @@ export const waitForBspToCatchUpToChainTip = async ( * This function performs the following steps: * 1. Waits for a short period to allow the node to react. * 2. Checks for the presence of a 'mspRespondStorageRequestsMultipleBuckets' extrinsic in the transaction pool. - * 3. Seals a block and verifies the presence of an 'MspRespondedToStorageRequests' event. * * @param api - The ApiPromise instance to interact with the blockchain. * @param checkQuantity - Optional param to specify the number of expected extrinsics. @@ -326,7 +325,7 @@ export const waitForBspToCatchUpToChainTip = async ( * * @throws Will throw an error if the expected extrinsic or event is not found. */ -export const waitForMspResponse = async (api: ApiPromise, checkQuantity?: number) => { +export const waitForMspResponseWithoutSealing = async (api: ApiPromise, checkQuantity?: number) => { const iterations = 41; const delay = 50; @@ -353,24 +352,4 @@ export const waitForMspResponse = async (api: ApiPromise, checkQuantity?: number ); } } - - const { events } = await sealBlock(api); - const mspRespondEvent = assertEventPresent( - api, - "fileSystem", - "MspRespondedToStorageRequests", - events - ); - - const mspRespondDataBlob = - api.events.fileSystem.MspRespondedToStorageRequests.is(mspRespondEvent.event) && - mspRespondEvent.event.data; - - if (!mspRespondDataBlob) { - throw new Error("Event doesn't match Type"); - } - - const responses = mspRespondDataBlob.results.responses; - - return responses; }; diff --git a/test/util/netLaunch/index.ts b/test/util/netLaunch/index.ts index 596721c6e..ee48bead3 100644 --- a/test/util/netLaunch/index.ts +++ b/test/util/netLaunch/index.ts @@ -497,7 +497,8 @@ export class NetworkLauncher { if (this.type === "fullnet") { // This will advance the block which also contains the BSP volunteer tx. // Hence why we can wait for the BSP to confirm storing. - await api.wait.mspResponse(); + await api.wait.mspResponseInTxPool(); + await api.sealBlock(); await api.wait.bspStored(); } @@ -546,7 +547,9 @@ export class NetworkLauncher { const fileMetadata = await api.file.createBucketAndSendNewStorageRequest( source, location, - bucketName + bucketName, + null, + null ); await api.wait.bspVolunteer(4); await api.wait.bspStored(4); diff --git a/xcm-simulator/src/tests.rs b/xcm-simulator/src/tests.rs index a513c4a0b..807eb89c2 100644 --- a/xcm-simulator/src/tests.rs +++ b/xcm-simulator/src/tests.rs @@ -1242,10 +1242,10 @@ mod users { storagehub::RuntimeCall::FileSystem(pallet_file_system::Call::< storagehub::Runtime, >::create_bucket { - msp_id: alice_msp_id, + msp_id: Some(alice_msp_id), name: bucket_name.clone(), private: false, - value_prop_id, + value_prop_id: Some(value_prop_id), }); let estimated_weight = bucket_creation_call.get_dispatch_info().weight; // Remember, this message will be executed from the context of StorageHub @@ -1273,7 +1273,6 @@ mod users { // We check that the bucket was created StorageHub::execute_with(|| { bucket_id = storagehub::Providers::derive_bucket_id( - &alice_msp_id, ¶chain_account_in_sh, bucket_name.clone(), ); @@ -1313,7 +1312,7 @@ mod users { location: file_location.clone(), fingerprint: file_fingerprint.clone(), size: size, - msp_id: alice_msp_id.clone(), + msp_id: Some(alice_msp_id.clone()), peer_ids: parachain_peer_id, }); let estimated_weight = file_creation_call.get_dispatch_info().weight; @@ -1596,10 +1595,10 @@ mod users { storagehub::RuntimeCall::FileSystem(pallet_file_system::Call::< storagehub::Runtime, >::create_bucket { - msp_id: alice_msp_id, + msp_id: Some(alice_msp_id), name: bucket_name.clone(), private: false, - value_prop_id, + value_prop_id: Some(value_prop_id), }); let estimated_weight = bucket_creation_call.get_dispatch_info().weight; // Remember, this message will be executed from the context of StorageHub @@ -1638,7 +1637,6 @@ mod users { // We check that the bucket was created StorageHub::execute_with(|| { bucket_id = storagehub::Providers::derive_bucket_id( - &alice_msp_id, &charlie_parachain_account_in_sh, bucket_name.clone(), ); @@ -1679,7 +1677,7 @@ mod users { location: file_location.clone(), fingerprint: file_fingerprint.clone(), size: size, - msp_id: alice_msp_id.clone(), + msp_id: Some(alice_msp_id.clone()), peer_ids: parachain_peer_id, }); let estimated_weight = file_creation_call.get_dispatch_info().weight;