From 7b0dc3dddd398223275cb59b38d379ac331d884e Mon Sep 17 00:00:00 2001 From: Niklas Adolfsson Date: Fri, 5 Apr 2024 15:24:55 +0200 Subject: [PATCH] fix: SignedPhase is removed from metadata (#803) * fix: `SignedPhase` is removed from metadata Because the `SignedPhase` is removed from the metadata we have no good alternativ than to hardcode this constants for now. * update metadata * fix nit * add back todo * update subxt v0.35 * change polkadot signphase=600 * remove hardcoded constant SignedPhase --- Cargo.lock | 1946 +++++++++++++++++++------------------- Cargo.toml | 20 +- artifacts/metadata.scale | Bin 386413 -> 87666 bytes src/client.rs | 9 +- src/commands/dry_run.rs | 9 +- src/commands/monitor.rs | 24 +- src/epm.rs | 5 +- src/error.rs | 2 +- src/helpers.rs | 2 +- src/main.rs | 106 +-- src/static_types.rs | 2 - 11 files changed, 1051 insertions(+), 1074 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 6143e1885..61052ebc0 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -43,28 +43,28 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d122413f284cf2d62fb1b7db97e02edb8cda96d769b16e443a4f6195e35662b0" dependencies = [ "crypto-common", - "generic-array 0.14.7", + "generic-array", ] [[package]] name = "ahash" -version = "0.7.7" +version = "0.7.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a824f2aa7e75a0c98c5a504fceb80649e9c35265d44525b5f94de4771a395cd" +checksum = "891477e0c6a8957309ee5c45a6368af3ae14bb510732d2684ffa19af310920f9" dependencies = [ - "getrandom 0.2.11", + "getrandom", "once_cell", "version_check", ] [[package]] name = "ahash" -version = "0.8.6" +version = "0.8.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91429305e9f0a25f6205c5b8e0d2db09e0708a7a6df0f42212bb56c32c8ac97a" +checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" dependencies = [ "cfg-if", - "getrandom 0.2.11", + "getrandom", "once_cell", "version_check", "zerocopy", @@ -72,9 +72,9 @@ dependencies = [ [[package]] name = "aho-corasick" -version = "1.1.2" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0" +checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" dependencies = [ "memchr", ] @@ -111,9 +111,9 @@ dependencies = [ [[package]] name = "anstream" -version = "0.6.7" +version = "0.6.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cd2405b3ac1faab2990b74d728624cd9fd115651fcecc7c2d8daf01376275ba" +checksum = "d96bd03f33fe50a863e394ee9718a706f988b9079b20c3784fb726e7678b62fb" dependencies = [ "anstyle", "anstyle-parse", @@ -125,43 +125,43 @@ dependencies = [ [[package]] name = "anstyle" -version = "1.0.4" +version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7079075b41f533b8c61d2a4d073c4676e1f8b249ff94a393b0595db304e0dd87" +checksum = "8901269c6307e8d93993578286ac0edf7f195079ffff5ebdeea6a59ffb7e36bc" [[package]] name = "anstyle-parse" -version = "0.2.2" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "317b9a89c1868f5ea6ff1d9539a69f45dffc21ce321ac1fd1160dfa48c8e2140" +checksum = "c75ac65da39e5fe5ab759307499ddad880d724eed2f6ce5b5e8a26f4f387928c" dependencies = [ "utf8parse", ] [[package]] name = "anstyle-query" -version = "1.0.0" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ca11d4be1bab0c8bc8734a9aa7bf4ee8316d462a08c6ac5052f888fef5b494b" +checksum = "e28923312444cdd728e4738b3f9c9cac739500909bb3d3c94b43551b16517648" dependencies = [ - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] name = "anstyle-wincon" -version = "3.0.1" +version = "3.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0699d10d2f4d628a98ee7b57b289abbc98ff3bad977cb3152709d4bf2330628" +checksum = "1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7" dependencies = [ "anstyle", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] name = "anyhow" -version = "1.0.80" +version = "1.0.81" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ad32ce52e4161730f7098c077cd2ed6229b5804ccf99e5366be1ab72a98b4e1" +checksum = "0952808a6c2afd1aa8947271f3a60f1a6763c7b912d210184c5149b5cf147247" [[package]] name = "approx" @@ -174,16 +174,16 @@ dependencies = [ [[package]] name = "aquamarine" -version = "0.3.2" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df752953c49ce90719c7bf1fc587bc8227aed04732ea0c0f85e5397d7fdbd1a1" +checksum = "21cc1548309245035eb18aa7f0967da6bc65587005170c56e6ef2788a4cf3f4e" dependencies = [ "include_dir", "itertools 0.10.5", "proc-macro-error", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.58", ] [[package]] @@ -312,14 +312,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94893f1e0c6eeab764ade8dc4c0db24caf4fe7cbbaafc0eba0a9030f447b5185" dependencies = [ "num-traits", - "rand 0.8.5", + "rand", ] [[package]] name = "array-bytes" -version = "6.2.0" +version = "6.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de17a919934ad8c5cc99a1a74de4e2dab95d6121a8f27f94755ff525b630382c" +checksum = "6f840fb7195bcfc5e17ea40c26e5ce6d5b9ce5d584466e17703209657e459ae0" [[package]] name = "arrayref" @@ -336,12 +336,6 @@ dependencies = [ "nodrop", ] -[[package]] -name = "arrayvec" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b" - [[package]] name = "arrayvec" version = "0.7.4" @@ -365,88 +359,56 @@ dependencies = [ [[package]] name = "async-channel" -version = "1.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81953c529336010edd6d8e358f886d9581267795c61b19475b71314bffa46d35" -dependencies = [ - "concurrent-queue", - "event-listener 2.5.3", - "futures-core", -] - -[[package]] -name = "async-channel" -version = "2.1.1" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ca33f4bc4ed1babef42cad36cc1f51fa88be00420404e5b1e80ab1b18f7678c" +checksum = "f28243a43d821d11341ab73c80bed182dc015c514b951616cf79bd4af39af0c3" dependencies = [ "concurrent-queue", - "event-listener 4.0.0", - "event-listener-strategy", + "event-listener 5.2.0", + "event-listener-strategy 0.5.1", "futures-core", "pin-project-lite", ] [[package]] name = "async-executor" -version = "1.8.0" +version = "1.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17ae5ebefcc48e7452b4987947920dac9450be1110cadf34d1b8c116bdbaf97c" +checksum = "10b3e585719c2358d2660232671ca8ca4ddb4be4ce8a1842d6c2dc8685303316" dependencies = [ - "async-lock 3.1.2", + "async-lock 3.3.0", "async-task", "concurrent-queue", - "fastrand 2.0.1", - "futures-lite 2.0.1", + "fastrand", + "futures-lite", "slab", ] [[package]] name = "async-fs" -version = "1.6.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "279cf904654eeebfa37ac9bb1598880884924aab82e290aa65c9e77a0e142e06" +checksum = "bc19683171f287921f2405677dd2ed2549c3b3bda697a563ebc3a121ace2aba1" dependencies = [ - "async-lock 2.8.0", - "autocfg", + "async-lock 3.3.0", "blocking", - "futures-lite 1.13.0", + "futures-lite", ] [[package]] name = "async-io" -version = "1.13.0" +version = "2.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fc5b45d93ef0529756f812ca52e44c221b35341892d3dcc34132ac02f3dd2af" +checksum = "dcccb0f599cfa2f8ace422d3555572f47424da5648a4382a9dd0310ff8210884" dependencies = [ - "async-lock 2.8.0", - "autocfg", - "cfg-if", - "concurrent-queue", - "futures-lite 1.13.0", - "log", - "parking", - "polling 2.8.0", - "rustix 0.37.27", - "slab", - "socket2 0.4.10", - "waker-fn", -] - -[[package]] -name = "async-io" -version = "2.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6d3b15875ba253d1110c740755e246537483f152fa334f91abd7fe84c88b3ff" -dependencies = [ - "async-lock 3.1.2", + "async-lock 3.3.0", "cfg-if", "concurrent-queue", "futures-io", - "futures-lite 2.0.1", + "futures-lite", "parking", - "polling 3.3.1", - "rustix 0.38.25", + "polling", + "rustix 0.38.32", "slab", "tracing", "windows-sys 0.52.0", @@ -463,41 +425,44 @@ dependencies = [ [[package]] name = "async-lock" -version = "3.1.2" +version = "3.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dea8b3453dd7cc96711834b75400d671b73e3656975fa68d9f277163b7f7e316" +checksum = "d034b430882f8381900d3fe6f0aaa3ad94f2cb4ac519b429692a1bc2dda4ae7b" dependencies = [ - "event-listener 4.0.0", - "event-listener-strategy", + "event-listener 4.0.3", + "event-listener-strategy 0.4.0", "pin-project-lite", ] [[package]] name = "async-net" -version = "1.8.0" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0434b1ed18ce1cf5769b8ac540e33f01fa9471058b5e89da9e06f3c882a8c12f" +checksum = "b948000fad4873c1c9339d60f2623323a0cfd3816e5181033c6a5cb68b2accf7" dependencies = [ - "async-io 1.13.0", + "async-io", "blocking", - "futures-lite 1.13.0", + "futures-lite", ] [[package]] name = "async-process" -version = "1.8.1" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea6438ba0a08d81529c69b36700fa2f95837bfe3e776ab39cde9c14d9149da88" +checksum = "d999d925640d51b662b7b4e404224dd81de70f4aa4a199383c2c5e5b86885fa3" dependencies = [ - "async-io 1.13.0", - "async-lock 2.8.0", + "async-channel", + "async-io", + "async-lock 3.3.0", "async-signal", + "async-task", "blocking", "cfg-if", - "event-listener 3.1.0", - "futures-lite 1.13.0", - "rustix 0.38.25", - "windows-sys 0.48.0", + "event-listener 5.2.0", + "futures-lite", + "rustix 0.38.32", + "tracing", + "windows-sys 0.52.0", ] [[package]] @@ -506,13 +471,13 @@ version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9e47d90f65a225c4527103a8d747001fc56e375203592b25ad103e1ca13124c5" dependencies = [ - "async-io 2.2.1", + "async-io", "async-lock 2.8.0", "atomic-waker", "cfg-if", "futures-core", "futures-io", - "rustix 0.38.25", + "rustix 0.38.32", "signal-hook-registry", "slab", "windows-sys 0.48.0", @@ -520,19 +485,19 @@ dependencies = [ [[package]] name = "async-task" -version = "4.5.0" +version = "4.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4eb2cdb97421e01129ccb49169d8279ed21e829929144f4a22a6e54ac549ca1" +checksum = "fbb36e985947064623dbd357f727af08ffd077f93d696782f3c56365fa2e2799" [[package]] name = "async-trait" -version = "0.1.74" +version = "0.1.79" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a66537f1bb974b254c98ed142ff995236e81b9d0fe4db0575f46612cb15eb0f9" +checksum = "a507401cad91ec6a857ed5513a2073c82a9b9048762b885bb98655b306964681" dependencies = [ "proc-macro2", "quote", - "syn 2.0.46", + "syn 2.0.58", ] [[package]] @@ -549,22 +514,22 @@ checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" [[package]] name = "autocfg" -version = "1.1.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" +checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" [[package]] name = "backtrace" -version = "0.3.69" +version = "0.3.71" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837" +checksum = "26b05800d2e817c8b3b4b54abd461726265fa9789ae34330622f2db9ee696f9d" dependencies = [ "addr2line 0.21.0", "cc", "cfg-if", "libc", "miniz_oxide", - "object 0.32.1", + "object 0.32.2", "rustc-demangle", ] @@ -588,9 +553,9 @@ checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" [[package]] name = "base64" -version = "0.21.5" +version = "0.21.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35636a1494ede3b646cc98f74f8e62c773a38a659ebc777a2cf26b9b74171df9" +checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" [[package]] name = "base64ct" @@ -622,19 +587,31 @@ version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "93f2635620bf0b9d4576eb7bb9a38a55df78bd1205d26fa994b25911a69f212f" dependencies = [ - "bitcoin_hashes", - "rand 0.8.5", - "rand_core 0.6.4", - "serde", - "unicode-normalization", + "bitcoin_hashes 0.11.0", ] +[[package]] +name = "bitcoin-internals" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9425c3bf7089c983facbae04de54513cce73b41c7f9ff8c845b54e7bc64ebbfb" + [[package]] name = "bitcoin_hashes" version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "90064b8dee6815a6470d60bad07bbbaee885c0e12d04177138fa3291a01b7bc4" +[[package]] +name = "bitcoin_hashes" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1930a4dabfebb8d7d9992db18ebe3ae2876f0a305fab206fd168df931ede293b" +dependencies = [ + "bitcoin-internals", + "hex-conservative", +] + [[package]] name = "bitflags" version = "1.3.2" @@ -643,9 +620,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.4.1" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" [[package]] name = "bitvec" @@ -689,25 +666,13 @@ dependencies = [ "constant_time_eq 0.3.0", ] -[[package]] -name = "block-buffer" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0940dc441f31689269e10ac70eb1002a3a1d3ad1390e030043662eb7fe4688b" -dependencies = [ - "block-padding", - "byte-tools", - "byteorder", - "generic-array 0.12.4", -] - [[package]] name = "block-buffer" version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" dependencies = [ - "generic-array 0.14.7", + "generic-array", ] [[package]] @@ -716,16 +681,7 @@ version = "0.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" dependencies = [ - "generic-array 0.14.7", -] - -[[package]] -name = "block-padding" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa79dedbb091f449f1f39e53edf88d5dbe95f895dae6135a8d7b881fb5af73f5" -dependencies = [ - "byte-tools", + "generic-array", ] [[package]] @@ -734,21 +690,21 @@ version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a37913e8dc4ddcc604f0c6d3bf2887c995153af3611de9e23c352b44c1b9118" dependencies = [ - "async-channel 2.1.1", - "async-lock 3.1.2", + "async-channel", + "async-lock 3.3.0", "async-task", - "fastrand 2.0.1", + "fastrand", "futures-io", - "futures-lite 2.0.1", + "futures-lite", "piper", "tracing", ] [[package]] name = "bounded-collections" -version = "0.1.9" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca548b6163b872067dc5eb82fd130c56881435e30367d2073594a3d9744120dd" +checksum = "d32385ecb91a31bddaf908e8dcf4a15aef1bcd3913cc03ebfad02ff6d568abc1" dependencies = [ "log", "parity-scale-codec", @@ -758,29 +714,29 @@ dependencies = [ [[package]] name = "bs58" -version = "0.5.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5353f36341f7451062466f0b755b96ac3a9547e4d7f6b70d603fc721a7d7896" +checksum = "bf88ba1141d185c399bee5288d850d63b8369520c1eafc32a0430b5b6c287bf4" dependencies = [ "tinyvec", ] [[package]] name = "bstr" -version = "1.8.0" +version = "1.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "542f33a8835a0884b006a0c3df3dadd99c0c3f296ed26c2fdc8028e01ad6230c" +checksum = "05efc5cfd9110c8416e471df0e96702d58690178e206e61b7173706673c93706" dependencies = [ "memchr", - "regex-automata 0.4.4", + "regex-automata 0.4.6", "serde", ] [[package]] name = "bumpalo" -version = "3.14.0" +version = "3.15.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec" +checksum = "7ff69b9dd49fd426c69a0db9fc04dd934cdb6645ff000864d98f7e2af8830eaa" [[package]] name = "byte-slice-cast" @@ -788,17 +744,11 @@ version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3ac9f8b63eca6fd385229b3675f6cc0dc5c8a5c8a54a59d4f52ffd670d87b0c" -[[package]] -name = "byte-tools" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7" - [[package]] name = "bytemuck" -version = "1.14.0" +version = "1.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "374d28ec25809ee0e23827c2ab573d729e293f281dfe393500e7ad618baa61c6" +checksum = "5d6d68c57235a3a081186990eca2867354726650f42f7516ca50c28d6281fd15" [[package]] name = "byteorder" @@ -808,24 +758,21 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" -version = "1.5.0" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" +checksum = "514de17de45fdb8dc022b1a7975556c53c86f9f0aa5f534b98977b171857c2c9" [[package]] name = "cc" -version = "1.0.83" +version = "1.0.90" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" -dependencies = [ - "libc", -] +checksum = "8cd6604a82acf3039f1144f54b8eb34e91ffba622051189e71b781822d5ee1f5" [[package]] name = "cfg-expr" -version = "0.15.5" +version = "0.15.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03915af431787e6ffdcc74c645077518c6b6e01f80b761e0fbbfa288536311b3" +checksum = "fa50868b64a9a6fda9d593ce778849ea8715cd2a3d2cc17ffdb4a2f2f2f1961d" dependencies = [ "smallvec", ] @@ -849,14 +796,14 @@ dependencies = [ [[package]] name = "chrono" -version = "0.4.31" +version = "0.4.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f2c685bad3eb3d45a01354cedb7d5faa66194d1d58ba6e267a8de788f79db38" +checksum = "8a0d04d43504c61aa6c7531f1871dd0d418d91130162063b789da00fd7057a5e" dependencies = [ "android-tzdata", "iana-time-zone", "num-traits", - "windows-targets 0.48.5", + "windows-targets 0.52.4", ] [[package]] @@ -871,9 +818,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.2" +version = "4.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b230ab84b0ffdf890d5a10abdbc8b83ae1c4918275daea1ab8801f71536b2651" +checksum = "90bc066a67923782aa8515dbaea16946c5bcc5addbd668bb80af688e53e548a0" dependencies = [ "clap_builder", "clap_derive", @@ -888,19 +835,19 @@ dependencies = [ "anstream", "anstyle", "clap_lex", - "strsim 0.11.0", + "strsim 0.11.1", ] [[package]] name = "clap_derive" -version = "4.5.0" +version = "4.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "307bc0538d5f0f83b8248db3087aa92fe504e4691294d0c96c0eabc33f47ba47" +checksum = "528131438037fd55894f62d6e9f068b8f45ac57ffa77517819645d10aed04f64" dependencies = [ - "heck", + "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.46", + "syn 2.0.58", ] [[package]] @@ -923,24 +870,24 @@ checksum = "2382f75942f4b3be3690fe4f86365e9c853c1587d6ee58212cebf6e2a9ccd101" [[package]] name = "concurrent-queue" -version = "2.3.0" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f057a694a54f12365049b0958a1685bb52d567f5593b355fbf685838e873d400" +checksum = "d16048cd947b08fa32c24458a22f5dc5e835264f689f4f5653210c69fd107363" dependencies = [ "crossbeam-utils", ] [[package]] name = "const-oid" -version = "0.9.5" +version = "0.9.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28c122c3980598d243d63d9a704629a2d748d101f278052ff068be5a4423ab6f" +checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" [[package]] name = "const-random" -version = "0.1.17" +version = "0.1.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5aaf16c9c2c612020bcfd042e170f6e32de9b9d75adb5277cdbbd2e2c8c8299a" +checksum = "87e00182fe74b066627d63b85fd550ac2998d4b0bd86bfed477a0ae4c7c71359" dependencies = [ "const-random-macro", ] @@ -951,7 +898,7 @@ version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f9d839f2a20b0aee515dc581a6172f2321f96cab76c1a38a4c584a194955390e" dependencies = [ - "getrandom 0.2.11", + "getrandom", "once_cell", "tiny-keccak", ] @@ -982,9 +929,9 @@ checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" [[package]] name = "core-foundation" -version = "0.9.3" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146" +checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" dependencies = [ "core-foundation-sys", "libc", @@ -992,9 +939,9 @@ dependencies = [ [[package]] name = "core-foundation-sys" -version = "0.8.4" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa" +checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" [[package]] name = "cpp_demangle" @@ -1007,9 +954,9 @@ dependencies = [ [[package]] name = "cpufeatures" -version = "0.2.11" +version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce420fe07aecd3e67c5f910618fe65e94158f6dcc0adf44e00d69ce2bdfe0fd0" +checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504" dependencies = [ "libc", ] @@ -1025,31 +972,27 @@ dependencies = [ [[package]] name = "crc32fast" -version = "1.3.2" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" +checksum = "b3855a8a784b474f333699ef2bbca9db2c4a1f6d9088a90a2d25b1eb53111eaa" dependencies = [ "cfg-if", ] [[package]] name = "crossbeam-queue" -version = "0.3.8" +version = "0.3.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1cfb3ea8a53f37c40dea2c7bedcbd88bdfae54f5e2175d6ecaff1c988353add" +checksum = "df0346b5d5e76ac2fe4e327c5fd1118d6be7c51dfb18f9b7922923f287471e35" dependencies = [ - "cfg-if", "crossbeam-utils", ] [[package]] name = "crossbeam-utils" -version = "0.8.16" +version = "0.8.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294" -dependencies = [ - "cfg-if", -] +checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345" [[package]] name = "crunchy" @@ -1063,7 +1006,7 @@ version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76" dependencies = [ - "generic-array 0.14.7", + "generic-array", "rand_core 0.6.4", "subtle", "zeroize", @@ -1075,7 +1018,7 @@ version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" dependencies = [ - "generic-array 0.14.7", + "generic-array", "rand_core 0.6.4", "typenum", ] @@ -1086,31 +1029,8 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b584a330336237c1eecd3e94266efb216c56ed91225d634cb2991c5f3fd1aeab" dependencies = [ - "generic-array 0.14.7", - "subtle", -] - -[[package]] -name = "crypto-mac" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1d1a86f49236c215f271d40892d5fc950490551400b02ef360692c29815c714" -dependencies = [ - "generic-array 0.14.7", - "subtle", -] - -[[package]] -name = "curve25519-dalek" -version = "2.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a9b85542f99a2dfa2a1b8e192662741c9859a846b296bef1c92ef9b58b5a216" -dependencies = [ - "byteorder", - "digest 0.8.1", - "rand_core 0.5.1", + "generic-array", "subtle", - "zeroize", ] [[package]] @@ -1128,9 +1048,9 @@ dependencies = [ [[package]] name = "curve25519-dalek" -version = "4.1.1" +version = "4.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e89b8c6a2e4b1f45971ad09761aafb85514a84744b67a95e32c3cc1352d1f65c" +checksum = "0a677b8922c94e01bdbb12126b0bc852f00447528dee1782229af9c720c3f348" dependencies = [ "cfg-if", "cpufeatures", @@ -1151,7 +1071,7 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.46", + "syn 2.0.58", ] [[package]] @@ -1166,12 +1086,12 @@ dependencies = [ [[package]] name = "darling" -version = "0.20.3" +version = "0.20.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0209d94da627ab5605dcccf08bb18afa5009cfbef48d8a8b7d7bdbc79be25c5e" +checksum = "54e36fcd13ed84ffdfda6f5be89b31287cbb80c439841fe69e04841435464391" dependencies = [ - "darling_core 0.20.3", - "darling_macro 0.20.3", + "darling_core 0.20.8", + "darling_macro 0.20.8", ] [[package]] @@ -1190,16 +1110,16 @@ dependencies = [ [[package]] name = "darling_core" -version = "0.20.3" +version = "0.20.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "177e3443818124b357d8e76f53be906d60937f0d3a90773a664fa63fa253e621" +checksum = "9c2cf1c23a687a1feeb728783b993c4e1ad83d99f351801977dd809b48d0a70f" dependencies = [ "fnv", "ident_case", "proc-macro2", "quote", "strsim 0.10.0", - "syn 2.0.46", + "syn 2.0.58", ] [[package]] @@ -1215,20 +1135,20 @@ dependencies = [ [[package]] name = "darling_macro" -version = "0.20.3" +version = "0.20.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "836a9bbc7ad63342d6d6e7b815ccab164bc77a2d95d84bc3117a8c0d5c98e2d5" +checksum = "a668eda54683121533a393014d8692171709ff57a7d61f187b6e782719f8933f" dependencies = [ - "darling_core 0.20.3", + "darling_core 0.20.8", "quote", - "syn 2.0.46", + "syn 2.0.58", ] [[package]] name = "der" -version = "0.7.8" +version = "0.7.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fffa369a668c8af7dbf8b5e56c9f744fbd399949ed171606040001947de40b1c" +checksum = "f55bf8e7b65898637379c1b74eb1551107c8294ed26d855ceb9fd1a09cfc9bc0" dependencies = [ "const-oid", "zeroize", @@ -1256,6 +1176,17 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "derive-syn-parse" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d65d7ce8132b7c0e54497a4d9a55a1c2a0912a0d786cf894472ba818fba45762" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.58", +] + [[package]] name = "derive_more" version = "0.99.17" @@ -1275,22 +1206,13 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6184e33543162437515c2e2b48714794e37845ec9851711914eec9d308f6ebe8" -[[package]] -name = "digest" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3d0c8c8752312f9713efd397ff63acb9f85585afbf179282e720e7704954dd5" -dependencies = [ - "generic-array 0.12.4", -] - [[package]] name = "digest" version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" dependencies = [ - "generic-array 0.14.7", + "generic-array", ] [[package]] @@ -1313,26 +1235,26 @@ checksum = "fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10" [[package]] name = "docify" -version = "0.2.6" +version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4235e9b248e2ba4b92007fe9c646f3adf0ffde16dc74713eacc92b8bc58d8d2f" +checksum = "43a2f138ad521dc4a2ced1a4576148a6a610b4c5923933b062a263130a6802ce" dependencies = [ "docify_macros", ] [[package]] name = "docify_macros" -version = "0.2.6" +version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47020e12d7c7505670d1363dd53d6c23724f71a90a3ae32ff8eba40de8404626" +checksum = "1a081e51fb188742f5a7a1164ad752121abcb22874b21e2c3b0dd040c515fdad" dependencies = [ "common-path", - "derive-syn-parse", + "derive-syn-parse 0.2.0", "once_cell", "proc-macro2", "quote", "regex", - "syn 2.0.46", + "syn 2.0.58", "termcolor", "toml", "walkdir", @@ -1367,9 +1289,9 @@ dependencies = [ [[package]] name = "dyn-clone" -version = "1.0.16" +version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "545b22097d44f8a9581187cdf93de7a71e4722bf51200cfaba810865b49a495d" +checksum = "0d6ef0072f8a535281e4876be788938b528e9a1d43900b82c2569af7da799125" [[package]] name = "ecdsa" @@ -1381,6 +1303,7 @@ dependencies = [ "digest 0.10.7", "elliptic-curve", "rfc6979", + "serdect", "signature", "spki", ] @@ -1397,11 +1320,11 @@ dependencies = [ [[package]] name = "ed25519-dalek" -version = "2.1.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f628eaec48bfd21b865dc2950cfa014450c01d2fa2b69a86c2fd5844ec523c0" +checksum = "4a3daa8e81a3963a60642bcc1f90a670680bd4a77535faa384e9d1c79d620871" dependencies = [ - "curve25519-dalek 4.1.1", + "curve25519-dalek 4.1.2", "ed25519", "serde", "sha2 0.10.8", @@ -1429,7 +1352,7 @@ version = "4.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7d9ce6874da5d4415896cd45ffbc4d1cfc0c4f9c079427bd870742c30f2f65a9" dependencies = [ - "curve25519-dalek 4.1.1", + "curve25519-dalek 4.1.2", "ed25519", "hashbrown 0.14.3", "hex", @@ -1440,9 +1363,9 @@ dependencies = [ [[package]] name = "either" -version = "1.9.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" +checksum = "11157ac094ffbdde99aa67b23417ebdd801842852b500e395a45a9c0aac03e4a" [[package]] name = "elliptic-curve" @@ -1454,11 +1377,12 @@ dependencies = [ "crypto-bigint", "digest 0.10.7", "ff", - "generic-array 0.14.7", + "generic-array", "group", "pkcs8", "rand_core 0.6.4", "sec1", + "serdect", "subtle", "zeroize", ] @@ -1493,9 +1417,9 @@ checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" [[package]] name = "event-listener" -version = "3.1.0" +version = "4.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d93877bcde0eb80ca09131a08d23f0a5c18a620b01db137dba666d18cd9b30c2" +checksum = "67b215c49b2b248c855fb73579eb1f4f26c38ffdc12973e20e07b91d78d5646e" dependencies = [ "concurrent-queue", "parking", @@ -1504,9 +1428,9 @@ dependencies = [ [[package]] name = "event-listener" -version = "4.0.0" +version = "5.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "770d968249b5d99410d61f5bf89057f3199a077a04d087092f58e7d10692baae" +checksum = "2b5fb89194fa3cad959b833185b3063ba881dbfc7030680b314250779fb4cc91" dependencies = [ "concurrent-queue", "parking", @@ -1519,29 +1443,34 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "958e4d70b6d5e81971bebec42271ec641e7ff4e170a6fa605f2b8a8b65cb97d3" dependencies = [ - "event-listener 4.0.0", + "event-listener 4.0.3", + "pin-project-lite", +] + +[[package]] +name = "event-listener-strategy" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "332f51cb23d20b0de8458b86580878211da09bcd4503cb579c225b3d124cabb3" +dependencies = [ + "event-listener 5.2.0", "pin-project-lite", ] [[package]] name = "expander" -version = "2.0.0" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f86a749cf851891866c10515ef6c299b5c69661465e9c3bbe7e07a2b77fb0f7" +checksum = "00e83c02035136f1592a47964ea60c05a50e4ed8b5892cfac197063850898d4d" dependencies = [ "blake2", "fs-err", + "prettier-please", "proc-macro2", "quote", - "syn 2.0.46", + "syn 2.0.58", ] -[[package]] -name = "fake-simd" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed" - [[package]] name = "fallible-iterator" version = "0.2.0" @@ -1550,18 +1479,9 @@ checksum = "4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7" [[package]] name = "fastrand" -version = "1.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be" -dependencies = [ - "instant", -] - -[[package]] -name = "fastrand" -version = "2.0.1" +version = "2.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5" +checksum = "658bd65b1cf4c852a3cc96f18a8ce7b5640f6b703f905c7d74532294c2a63984" [[package]] name = "ff" @@ -1575,9 +1495,9 @@ dependencies = [ [[package]] name = "fiat-crypto" -version = "0.2.5" +version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27573eac26f4dd11e2b1916c3fe1baa56407c83c71a773a8ba17ec0bca03b6b7" +checksum = "c007b1ae3abe1cb6f85a16305acd418b7ca6343b953633fee2b76d8f108b830f" [[package]] name = "fixed-hash" @@ -1586,7 +1506,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "835c052cb0c08c1acf6ffd71c022172e18723949c8282f2b9f27efbc51e64534" dependencies = [ "byteorder", - "rand 0.8.5", + "rand", "rustc-hex", "static_assertions", ] @@ -1608,9 +1528,9 @@ dependencies = [ [[package]] name = "frame-benchmarking" -version = "26.0.0" +version = "31.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bffc0f167650e08c1c8eb3f564569e9e96d12a7cffebb9e3527041a36ffb7cce" +checksum = "9fee087c6a7ddbc6dcfb6a6015d4b2787ecbb2113ed8b8bee8ff15f2bdf93f94" dependencies = [ "frame-support", "frame-support-procedural", @@ -1634,21 +1554,21 @@ dependencies = [ [[package]] name = "frame-election-provider-solution-type" -version = "12.0.0" +version = "13.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03911cf3675af64252a6de7b4f383eafa80d5ea5830184e7a0739aeb0b95272d" +checksum = "c5c3bff645e46577c69c272733c53fa3a77d1ee6e40dfb66157bc94b0740b8fc" dependencies = [ - "proc-macro-crate", + "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.46", + "syn 2.0.58", ] [[package]] name = "frame-election-provider-support" -version = "26.0.0" +version = "31.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d24bb28c8c04cd8e6aba0ecabd01a94266f0271b4e0e9d1fc65cef17fa4f479" +checksum = "d651327ec98d12fbdb0d25346de929e3ea2ab8a1ef85570794d9d8d54f204f28" dependencies = [ "frame-election-provider-solution-type", "frame-support", @@ -1687,9 +1607,9 @@ dependencies = [ [[package]] name = "frame-support" -version = "26.0.0" +version = "31.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a3c63ec85b8907268d6af6182d29d9a9752daa6979c9928566d56471f5ec731" +checksum = "81aecbbc1c62055e8ce472283bc655bf6c0f968a4d22d504bf6aad4ea44ccbc4" dependencies = [ "aquamarine", "array-bytes", @@ -1711,7 +1631,7 @@ dependencies = [ "sp-api", "sp-arithmetic", "sp-core", - "sp-core-hashing-proc-macro", + "sp-crypto-hashing-proc-macro", "sp-debug-derive", "sp-genesis-builder", "sp-inherents", @@ -1729,13 +1649,13 @@ dependencies = [ [[package]] name = "frame-support-procedural" -version = "21.0.0" +version = "26.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "545ed122b36d06c416a6fbe2e66ab57a455200bfd20ece87cdd604d18f674f23" +checksum = "b082f09f6b96dd767c32588f4ee336a77e4ef87e5528e24b7b17298808629078" dependencies = [ "Inflector", "cfg-expr", - "derive-syn-parse", + "derive-syn-parse 0.1.5", "expander", "frame-support-procedural-tools", "itertools 0.10.5", @@ -1743,41 +1663,42 @@ dependencies = [ "proc-macro-warning", "proc-macro2", "quote", - "sp-core-hashing", - "syn 2.0.46", + "sp-crypto-hashing", + "syn 2.0.58", ] [[package]] name = "frame-support-procedural-tools" -version = "9.0.0" +version = "11.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3ac1266522a8c9a2d2d26d205ec3028b88582d5f3cd5cbc75d0ec8271d197b7" +checksum = "5be30b1ce0b477476a3fe13cd8ff479007582340d14f0ddea9e832b01e706a07" dependencies = [ "frame-support-procedural-tools-derive", - "proc-macro-crate", + "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.46", + "syn 2.0.58", ] [[package]] name = "frame-support-procedural-tools-derive" -version = "10.0.0" +version = "12.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9c078db2242ea7265faa486004e7fd8daaf1a577cfcac0070ce55d926922883" +checksum = "ed971c6435503a099bdac99fe4c5bea08981709e5b5a0a8535a1856f48561191" dependencies = [ "proc-macro2", "quote", - "syn 2.0.46", + "syn 2.0.58", ] [[package]] name = "frame-system" -version = "26.0.0" +version = "31.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed5d6c8e319cea3160ec8f6c831edc77ceca442c7488d0a6d2e6a6be54fcb142" +checksum = "f7537b5e23f584bf54f26c6297e0260b54fac5298be43a115176a310f256a4ab" dependencies = [ "cfg-if", + "docify", "frame-support", "log", "parity-scale-codec", @@ -1857,29 +1778,13 @@ checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" [[package]] name = "futures-lite" -version = "1.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49a9d51ce47660b1e808d3c990b4709f2f415d928835a17dfd16991515c46bce" -dependencies = [ - "fastrand 1.9.0", - "futures-core", - "futures-io", - "memchr", - "parking", - "pin-project-lite", - "waker-fn", -] - -[[package]] -name = "futures-lite" -version = "2.0.1" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3831c2651acb5177cbd83943f3d9c8912c5ad03c76afcc0e9511ba568ec5ebb" +checksum = "52527eb5074e35e9339c6b4e8d12600c7128b68fb25dcb9fa9dec18f7c25f3a5" dependencies = [ - "fastrand 2.0.1", + "fastrand", "futures-core", "futures-io", - "memchr", "parking", "pin-project-lite", ] @@ -1892,7 +1797,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" dependencies = [ "proc-macro2", "quote", - "syn 2.0.46", + "syn 2.0.58", ] [[package]] @@ -1909,9 +1814,9 @@ checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" [[package]] name = "futures-timer" -version = "3.0.2" +version = "3.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e64b03909df88034c26dc1547e8970b91f98bdb65165d6a4e9110d94263dbb2c" +checksum = "f288b0a4f20f9a56b5d1da57e2227c661b7b16168e2f72365f57b63326e29b24" [[package]] name = "futures-util" @@ -1931,15 +1836,6 @@ dependencies = [ "slab", ] -[[package]] -name = "generic-array" -version = "0.12.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffdf9f34f1447443d37393cc6c2b8313aebddcd96906caf34e54c68d8e57d7bd" -dependencies = [ - "typenum", -] - [[package]] name = "generic-array" version = "0.14.7" @@ -1953,24 +1849,13 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.1.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" -dependencies = [ - "cfg-if", - "libc", - "wasi 0.9.0+wasi-snapshot-preview1", -] - -[[package]] -name = "getrandom" -version = "0.2.11" +version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe9006bed769170c11f845cf00c7c1e9092aeb3f268e007c3e760ac68008070f" +checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5" dependencies = [ "cfg-if", "libc", - "wasi 0.11.0+wasi-snapshot-preview1", + "wasi", ] [[package]] @@ -1979,6 +1864,7 @@ version = "0.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea1015b5a70616b688dc230cfe50c8af89d972cb132d5a622814d29773b10b9" dependencies = [ + "rand", "rand_core 0.6.4", ] @@ -2012,9 +1898,9 @@ dependencies = [ [[package]] name = "h2" -version = "0.3.24" +version = "0.3.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb2c4422095b67ee78da96fbb51a4cc413b3b25883c7717ff7ca1ab31022c9c9" +checksum = "4fbd2820c5e49886948654ab546d0688ff24530286bdcf8fca3cefb16d4618eb" dependencies = [ "bytes", "fnv", @@ -2022,7 +1908,7 @@ dependencies = [ "futures-sink", "futures-util", "http", - "indexmap 2.1.0", + "indexmap 2.2.6", "slab", "tokio", "tokio-util", @@ -2050,7 +1936,7 @@ version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" dependencies = [ - "ahash 0.7.7", + "ahash 0.7.8", ] [[package]] @@ -2059,7 +1945,7 @@ version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e" dependencies = [ - "ahash 0.8.6", + "ahash 0.8.11", ] [[package]] @@ -2068,7 +1954,7 @@ version = "0.14.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" dependencies = [ - "ahash 0.8.6", + "ahash 0.8.11", "allocator-api2", "serde", ] @@ -2079,11 +1965,17 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" +[[package]] +name = "heck" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" + [[package]] name = "hermit-abi" -version = "0.3.3" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7" +checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" [[package]] name = "hex" @@ -2092,22 +1984,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" [[package]] -name = "hmac" -version = "0.8.1" +name = "hex-conservative" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "126888268dcc288495a26bf004b38c5fdbb31682f992c84ceb046a1f0fe38840" -dependencies = [ - "crypto-mac 0.8.0", - "digest 0.9.0", -] +checksum = "30ed443af458ccb6d81c1e7e661545f94d3176752fb1df2f543b902a1e0f51e2" [[package]] name = "hmac" -version = "0.11.0" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a2a2320eb7ec0ebe8da8f744d7812d9fc4cb4d09344ac01898dbcb6a20ae69b" +checksum = "126888268dcc288495a26bf004b38c5fdbb31682f992c84ceb046a1f0fe38840" dependencies = [ - "crypto-mac 0.11.1", + "crypto-mac", "digest 0.9.0", ] @@ -2127,15 +2015,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "17ea0a1394df5b6574da6e0c1ade9e78868c9fb0a4e5ef4428e32da4676b85b1" dependencies = [ "digest 0.9.0", - "generic-array 0.14.7", + "generic-array", "hmac 0.8.1", ] [[package]] name = "http" -version = "0.2.11" +version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8947b1a6fad4393052c7ba1f4cd97bed3e953a95c79c92ad9b051a04611d9fbb" +checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" dependencies = [ "bytes", "fnv", @@ -2144,9 +2032,9 @@ dependencies = [ [[package]] name = "http-body" -version = "0.4.5" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1" +checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" dependencies = [ "bytes", "http", @@ -2182,7 +2070,7 @@ dependencies = [ "httpdate", "itoa", "pin-project-lite", - "socket2 0.5.5", + "socket2", "tokio", "tower-service", "tracing", @@ -2199,17 +2087,17 @@ dependencies = [ "http", "hyper", "log", - "rustls", - "rustls-native-certs", + "rustls 0.21.10", + "rustls-native-certs 0.6.3", "tokio", - "tokio-rustls", + "tokio-rustls 0.24.1", ] [[package]] name = "iana-time-zone" -version = "0.1.58" +version = "0.1.60" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8326b86b6cff230b97d0d312a6c40a60726df3332e721f72a1b035f451663b20" +checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141" dependencies = [ "android_system_properties", "core-foundation-sys", @@ -2305,9 +2193,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.1.0" +version = "2.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f" +checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26" dependencies = [ "equivalent", "hashbrown 0.14.3", @@ -2325,7 +2213,7 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" dependencies = [ - "generic-array 0.14.7", + "generic-array", ] [[package]] @@ -2368,33 +2256,33 @@ dependencies = [ [[package]] name = "itertools" -version = "0.11.0" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57" +checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" dependencies = [ "either", ] [[package]] name = "itoa" -version = "1.0.9" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38" +checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" [[package]] name = "js-sys" -version = "0.3.66" +version = "0.3.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cee9c64da59eae3b50095c18d3e74f8b73c0b86d2792824ff01bbce68ba229ca" +checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d" dependencies = [ "wasm-bindgen", ] [[package]] name = "jsonrpsee" -version = "0.20.3" +version = "0.22.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "affdc52f7596ccb2d7645231fc6163bb314630c989b64998f3699a28b4d5d4dc" +checksum = "3cdbb7cb6f3ba28f5b212dd250ab4483105efc3e381f5c8bb90340f14f0a2cc3" dependencies = [ "jsonrpsee-client-transport", "jsonrpsee-core", @@ -2405,19 +2293,20 @@ dependencies = [ [[package]] name = "jsonrpsee-client-transport" -version = "0.20.3" +version = "0.22.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5b005c793122d03217da09af68ba9383363caa950b90d3436106df8cabce935" +checksum = "9ab2e14e727d2faf388c99d9ca5210566ed3b044f07d92c29c3611718d178380" dependencies = [ "futures-util", "http", "jsonrpsee-core", "pin-project", - "rustls-native-certs", + "rustls-native-certs 0.7.0", + "rustls-pki-types", "soketto", "thiserror", "tokio", - "tokio-rustls", + "tokio-rustls 0.25.0", "tokio-util", "tracing", "url", @@ -2425,31 +2314,33 @@ dependencies = [ [[package]] name = "jsonrpsee-core" -version = "0.20.3" +version = "0.22.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da2327ba8df2fdbd5e897e2b5ed25ce7f299d345b9736b6828814c3dbd1fd47b" +checksum = "71962a1c49af43adf81d337e4ebc93f3c915faf6eccaa14d74e255107dfd7723" dependencies = [ "anyhow", - "async-lock 2.8.0", + "async-lock 3.3.0", "async-trait", "beef", "futures-timer", "futures-util", "hyper", "jsonrpsee-types", + "pin-project", "rustc-hash", "serde", "serde_json", "thiserror", "tokio", + "tokio-stream", "tracing", ] [[package]] name = "jsonrpsee-http-client" -version = "0.20.3" +version = "0.22.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f80c17f62c7653ce767e3d7288b793dfec920f97067ceb189ebdd3570f2bc20" +checksum = "8c13987da51270bda2c1c9b40c19be0fe9b225c7a0553963d8f17e683a50ce84" dependencies = [ "async-trait", "hyper", @@ -2467,23 +2358,22 @@ dependencies = [ [[package]] name = "jsonrpsee-types" -version = "0.20.3" +version = "0.22.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5be0be325642e850ed0bdff426674d2e66b2b7117c9be23a7caef68a2902b7d9" +checksum = "1e53c72de6cd2ad6ac1aa6e848206ef8b736f92ed02354959130373dfa5b3cbd" dependencies = [ "anyhow", "beef", "serde", "serde_json", "thiserror", - "tracing", ] [[package]] name = "jsonrpsee-ws-client" -version = "0.20.3" +version = "0.22.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bca9cb3933ccae417eb6b08c3448eb1cb46e39834e5b503e395e5e5bd08546c0" +checksum = "c8a07ab8da9a283b906f6735ddd17d3680158bb72259e853441d1dd0167079ec" dependencies = [ "http", "jsonrpsee-client-transport", @@ -2494,22 +2384,23 @@ dependencies = [ [[package]] name = "k256" -version = "0.13.2" +version = "0.13.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f01b677d82ef7a676aa37e099defd83a28e15687112cafdd112d60236b6115b" +checksum = "956ff9b67e26e1a6a866cb758f12c6f8746208489e3e4a4b5580802f2f0a587b" dependencies = [ "cfg-if", "ecdsa", "elliptic-curve", "once_cell", + "serdect", "sha2 0.10.8", ] [[package]] name = "keccak" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f6d5ed8676d904364de097082f4e7d240b571b67989ced0240f08b7f966f940" +checksum = "ecc2af9a1119c51f12a14607e783cb977bde58bc069ff0c3da1095e635d70654" dependencies = [ "cpufeatures", ] @@ -2522,9 +2413,9 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" [[package]] name = "libc" -version = "0.2.150" +version = "0.2.153" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89d92a4743f9a61002fae18374ed11e7973f530cb3a3255fb354818118b2203c" +checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd" [[package]] name = "libm" @@ -2545,7 +2436,7 @@ dependencies = [ "libsecp256k1-core", "libsecp256k1-gen-ecmult", "libsecp256k1-gen-genmult", - "rand 0.8.5", + "rand", "serde", "sha2 0.9.9", "typenum", @@ -2597,15 +2488,9 @@ checksum = "f051f77a7c8e6957c0696eac88f26b0117e54f52d3fc682ab19397a8812846a4" [[package]] name = "linux-raw-sys" -version = "0.3.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519" - -[[package]] -name = "linux-raw-sys" -version = "0.4.11" +version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "969488b55f8ac402214f3f5fd243ebb7206cf82de60d3172994707a4bcc2b829" +checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c" [[package]] name = "lock_api" @@ -2625,9 +2510,9 @@ checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c" [[package]] name = "lru" -version = "0.12.1" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2994eeba8ed550fd9b47a0b38f0242bc3344e496483c6180b69139cc2fa5d1d7" +checksum = "d3262e75e648fce39813cb56ac41f3c3e3f65217ebf3844d818d1f9398cfb0dc" dependencies = [ "hashbrown 0.14.3", ] @@ -2650,7 +2535,7 @@ dependencies = [ "macro_magic_core", "macro_magic_macros", "quote", - "syn 2.0.46", + "syn 2.0.58", ] [[package]] @@ -2660,11 +2545,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "468155613a44cfd825f1fb0ffa532b018253920d404e6fca1e8d43155198a46d" dependencies = [ "const-random", - "derive-syn-parse", + "derive-syn-parse 0.1.5", "macro_magic_core_macros", "proc-macro2", "quote", - "syn 2.0.46", + "syn 2.0.58", ] [[package]] @@ -2675,7 +2560,7 @@ checksum = "9ea73aa640dc01d62a590d48c0c3521ed739d53b27f919b25c3551e233481654" dependencies = [ "proc-macro2", "quote", - "syn 2.0.46", + "syn 2.0.58", ] [[package]] @@ -2686,7 +2571,7 @@ checksum = "ef9d79ae96aaba821963320eb2b6e34d17df1e5a83d8a1985c29cc5be59577b3" dependencies = [ "macro_magic_core", "quote", - "syn 2.0.46", + "syn 2.0.58", ] [[package]] @@ -2719,9 +2604,9 @@ dependencies = [ [[package]] name = "memchr" -version = "2.6.4" +version = "2.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167" +checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d" [[package]] name = "memfd" @@ -2729,7 +2614,7 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b2cffa4ad52c6f791f4f8b15f0c05f9824b2ced1160e88cc393d64fff9a8ac64" dependencies = [ - "rustix 0.38.25", + "rustix 0.38.32", ] [[package]] @@ -2750,18 +2635,6 @@ dependencies = [ "hash-db", ] -[[package]] -name = "merlin" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e261cf0f8b3c42ded9f7d2bb59dea03aa52bc8a1cbc7482f9fc3fd1229d3b42" -dependencies = [ - "byteorder", - "keccak", - "rand_core 0.5.1", - "zeroize", -] - [[package]] name = "merlin" version = "3.0.0" @@ -2782,9 +2655,9 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" [[package]] name = "miniz_oxide" -version = "0.7.1" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7" +checksum = "9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7" dependencies = [ "adler", ] @@ -2796,15 +2669,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c" dependencies = [ "libc", - "wasi 0.11.0+wasi-snapshot-preview1", + "wasi", "windows-sys 0.48.0", ] [[package]] name = "nalgebra" -version = "0.32.3" +version = "0.32.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "307ed9b18cc2423f29e83f84fd23a8e73628727990181f18641a8b5dc2ab1caa" +checksum = "3ea4908d4f23254adda3daa60ffef0f1ac7b8c3e9a864cf3cc154b251908a2ef" dependencies = [ "approx", "matrixmultiply", @@ -2878,9 +2751,9 @@ dependencies = [ [[package]] name = "num-complex" -version = "0.4.4" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ba157ca0885411de85d6ca030ba7e2a83a28636056c7c699b07c8b6f7383214" +checksum = "23c6602fda94a57c990fe0df199a035d83576b496aa29f4e634a8ac6004e68a6" dependencies = [ "num-traits", ] @@ -2897,11 +2770,10 @@ dependencies = [ [[package]] name = "num-integer" -version = "0.1.45" +version = "0.1.46" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" +checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" dependencies = [ - "autocfg", "num-traits", ] @@ -2919,9 +2791,9 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a" dependencies = [ "autocfg", ] @@ -2950,9 +2822,9 @@ dependencies = [ [[package]] name = "object" -version = "0.32.1" +version = "0.32.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cf5f9dd3933bd50a9e1f149ec995f39ae2c496d31fd772c1fd45ebc27e902b0" +checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441" dependencies = [ "memchr", ] @@ -2965,15 +2837,9 @@ checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" [[package]] name = "opaque-debug" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2839e79665f131bdb5782e51f2c6c9599c133c6098982a54c794358bf432529c" - -[[package]] -name = "opaque-debug" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" +checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" [[package]] name = "openssl-probe" @@ -2989,9 +2855,9 @@ checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" [[package]] name = "pallet-election-provider-multi-phase" -version = "25.0.0" +version = "30.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c367a8b93ec6f1c296a316ec122848f07b49f86e2e75f754283f5d231ad92efa" +checksum = "da78b2feeba1286b66ac20cbfbcd321fe9d1d2bc15e9e31292023e9a66dbb819" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -3000,7 +2866,7 @@ dependencies = [ "log", "pallet-election-provider-support-benchmarking", "parity-scale-codec", - "rand 0.8.5", + "rand", "scale-info", "sp-arithmetic", "sp-core", @@ -3013,9 +2879,9 @@ dependencies = [ [[package]] name = "pallet-election-provider-support-benchmarking" -version = "25.0.0" +version = "30.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "416855ba43d8483efa0cf47f1de2c6e47d17f3899ae777d3521bc37baf894792" +checksum = "e1b20f98b9a1497a59d2b0eca0051c5ada89851bf29b26fda3a2cfe934a32116" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -3026,11 +2892,24 @@ dependencies = [ "sp-std", ] +[[package]] +name = "parity-bip39" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e69bf016dc406eff7d53a7d3f7cf1c2e72c82b9088aac1118591e36dd2cd3e9" +dependencies = [ + "bitcoin_hashes 0.13.0", + "rand", + "rand_core 0.6.4", + "serde", + "unicode-normalization", +] + [[package]] name = "parity-scale-codec" -version = "3.6.5" +version = "3.6.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0dec8a8073036902368c2cdc0387e85ff9a37054d7e7c98e592145e0c92cd4fb" +checksum = "881331e34fa842a2fb61cc2db9643a8fedc615e47cfcc52597d1af0db9a7e8fe" dependencies = [ "arrayvec 0.7.4", "bitvec", @@ -3043,11 +2922,11 @@ dependencies = [ [[package]] name = "parity-scale-codec-derive" -version = "3.6.5" +version = "3.6.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "312270ee71e1cd70289dacf597cab7b207aa107d2f28191c2ae45b2ece18a260" +checksum = "be30eaf4b0a9fba5336683b38de57bb86d179a35862ba6bfcf57625d006bde5b" dependencies = [ - "proc-macro-crate", + "proc-macro-crate 2.0.0", "proc-macro2", "quote", "syn 1.0.109", @@ -3089,19 +2968,21 @@ dependencies = [ ] [[package]] -name = "paste" -version = "1.0.14" +name = "password-hash" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c" +checksum = "346f04948ba92c43e8469c1ee6736c7563d71012b17d40745260fe106aac2166" +dependencies = [ + "base64ct", + "rand_core 0.6.4", + "subtle", +] [[package]] -name = "pbkdf2" -version = "0.8.0" +name = "paste" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d95f5254224e617595d2cc3cc73ff0a5eaf2637519e25f03388154e9378b6ffa" -dependencies = [ - "crypto-mac 0.11.1", -] +checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c" [[package]] name = "pbkdf2" @@ -3110,6 +2991,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f8ed6a7761f76e3b9f92dfb0a60a6a6477c61024b775147ff0973a02653abaf2" dependencies = [ "digest 0.10.7", + "password-hash", ] [[package]] @@ -3120,29 +3002,29 @@ checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] name = "pin-project" -version = "1.1.3" +version = "1.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fda4ed1c6c173e3fc7a83629421152e01d7b1f9b7f65fb301e490e8cfc656422" +checksum = "b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.1.3" +version = "1.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405" +checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" dependencies = [ "proc-macro2", "quote", - "syn 2.0.46", + "syn 2.0.58", ] [[package]] name = "pin-project-lite" -version = "0.2.13" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" +checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" [[package]] name = "pin-utils" @@ -3157,7 +3039,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "668d31b1c4eba19242f2088b2bf3316b82ca31082a8335764db4e083db7485d4" dependencies = [ "atomic-waker", - "fastrand 2.0.1", + "fastrand", "futures-io", ] @@ -3173,9 +3055,9 @@ dependencies = [ [[package]] name = "platforms" -version = "3.2.0" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14e6ab3f592e6fb464fc9712d8d6e6912de6473954635fd76a589d832cffcbb0" +checksum = "db23d408679286588f4d4644f965003d056e3dd5abcaaa938116871d7ce2fee7" [[package]] name = "polkadot-staking-miner" @@ -3210,31 +3092,90 @@ dependencies = [ ] [[package]] -name = "polling" -version = "2.8.0" +name = "polkavm-common" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b2d323e8ca7996b3e23126511a523f7e62924d93ecd5ae73b333815b0eb3dce" +checksum = "92c99f7eee94e7be43ba37eef65ad0ee8cbaf89b7c00001c3f6d2be985cb1817" + +[[package]] +name = "polkavm-common" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d9428a5cfcc85c5d7b9fc4b6a18c4b802d0173d768182a51cc7751640f08b92" + +[[package]] +name = "polkavm-derive" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79fa916f7962348bd1bb1a65a83401675e6fc86c51a0fdbcf92a3108e58e6125" dependencies = [ - "autocfg", - "bitflags 1.3.2", - "cfg-if", - "concurrent-queue", - "libc", - "log", - "pin-project-lite", - "windows-sys 0.48.0", + "polkavm-derive-impl-macro 0.8.0", +] + +[[package]] +name = "polkavm-derive" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae8c4bea6f3e11cd89bb18bcdddac10bd9a24015399bd1c485ad68a985a19606" +dependencies = [ + "polkavm-derive-impl-macro 0.9.0", +] + +[[package]] +name = "polkavm-derive-impl" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c10b2654a8a10a83c260bfb93e97b262cf0017494ab94a65d389e0eda6de6c9c" +dependencies = [ + "polkavm-common 0.8.0", + "proc-macro2", + "quote", + "syn 2.0.58", +] + +[[package]] +name = "polkavm-derive-impl" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c4fdfc49717fb9a196e74a5d28e0bc764eb394a2c803eb11133a31ac996c60c" +dependencies = [ + "polkavm-common 0.9.0", + "proc-macro2", + "quote", + "syn 2.0.58", +] + +[[package]] +name = "polkavm-derive-impl-macro" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "15e85319a0d5129dc9f021c62607e0804f5fb777a05cdda44d750ac0732def66" +dependencies = [ + "polkavm-derive-impl 0.8.0", + "syn 2.0.58", +] + +[[package]] +name = "polkavm-derive-impl-macro" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ba81f7b5faac81e528eb6158a6f3c9e0bb1008e0ffa19653bc8dea925ecb429" +dependencies = [ + "polkavm-derive-impl 0.9.0", + "syn 2.0.58", ] [[package]] name = "polling" -version = "3.3.1" +version = "3.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf63fa624ab313c11656b4cda960bfc46c410187ad493c41f6ba2d8c1e991c9e" +checksum = "e0c976a60b2d7e99d6f229e414670a9b85d13ac305cc6d1e9c134de58c5aaaf6" dependencies = [ "cfg-if", "concurrent-queue", + "hermit-abi", "pin-project-lite", - "rustix 0.38.25", + "rustix 0.38.32", "tracing", "windows-sys 0.52.0", ] @@ -3246,7 +3187,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8159bd90725d2df49889a078b54f4f79e87f1f8a8444194cdca81d38f5393abf" dependencies = [ "cpufeatures", - "opaque-debug 0.3.0", + "opaque-debug", "universal-hash", ] @@ -3258,13 +3199,12 @@ checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" [[package]] name = "predicates" -version = "3.0.4" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6dfc28575c2e3f19cb3c73b93af36460ae898d426eba6fc15b9bd2a5220758a0" +checksum = "68b87bfd4605926cdfefc1c3b5f8fe560e3feca9d5552cf68c466d3d8236c7e8" dependencies = [ "anstyle", "difflib", - "itertools 0.11.0", "predicates-core", ] @@ -3284,6 +3224,16 @@ dependencies = [ "termtree", ] +[[package]] +name = "prettier-please" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22020dfcf177fcc7bf5deaf7440af371400c67c0de14c399938d8ed4fb4645d3" +dependencies = [ + "proc-macro2", + "syn 2.0.58", +] + [[package]] name = "primitive-types" version = "0.12.2" @@ -3304,7 +3254,25 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" dependencies = [ "once_cell", - "toml_edit", + "toml_edit 0.19.15", +] + +[[package]] +name = "proc-macro-crate" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e8366a6159044a37876a2b9817124296703c586a5c92e2c53751fa06d8d43e8" +dependencies = [ + "toml_edit 0.20.7", +] + +[[package]] +name = "proc-macro-crate" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284" +dependencies = [ + "toml_edit 0.21.1", ] [[package]] @@ -3333,20 +3301,20 @@ dependencies = [ [[package]] name = "proc-macro-warning" -version = "1.0.0" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b698b0b09d40e9b7c1a47b132d66a8b54bcd20583d9b6d06e4535e383b4405c" +checksum = "834da187cfe638ae8abb0203f0b33e5ccdb02a28e7199f2f47b3e2754f50edca" dependencies = [ "proc-macro2", "quote", - "syn 2.0.46", + "syn 2.0.58", ] [[package]] name = "proc-macro2" -version = "1.0.74" +version = "1.0.79" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2de98502f212cfcea8d0bb305bd0f49d7ebdd75b64ba0a68f937d888f4e0d6db" +checksum = "e835ff2298f5721608eb1a980ecaee1aef2c132bf95ecc026a11b7bf3c01c02e" dependencies = [ "unicode-ident", ] @@ -3396,19 +3364,6 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" -[[package]] -name = "rand" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" -dependencies = [ - "getrandom 0.1.16", - "libc", - "rand_chacha 0.2.2", - "rand_core 0.5.1", - "rand_hc", -] - [[package]] name = "rand" version = "0.8.5" @@ -3416,20 +3371,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" dependencies = [ "libc", - "rand_chacha 0.3.1", + "rand_chacha", "rand_core 0.6.4", ] -[[package]] -name = "rand_chacha" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" -dependencies = [ - "ppv-lite86", - "rand_core 0.5.1", -] - [[package]] name = "rand_chacha" version = "0.3.1" @@ -3445,9 +3390,6 @@ name = "rand_core" version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" -dependencies = [ - "getrandom 0.1.16", -] [[package]] name = "rand_core" @@ -3455,16 +3397,7 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" dependencies = [ - "getrandom 0.2.11", -] - -[[package]] -name = "rand_hc" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" -dependencies = [ - "rand_core 0.5.1", + "getrandom", ] [[package]] @@ -3484,34 +3417,34 @@ dependencies = [ [[package]] name = "ref-cast" -version = "1.0.20" +version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acde58d073e9c79da00f2b5b84eed919c8326832648a5b109b3fce1bb1175280" +checksum = "c4846d4c50d1721b1a3bef8af76924eef20d5e723647333798c1b519b3a9473f" dependencies = [ "ref-cast-impl", ] [[package]] name = "ref-cast-impl" -version = "1.0.20" +version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f7473c2cfcf90008193dd0e3e16599455cb601a9fce322b5bb55de799664925" +checksum = "5fddb4f8d99b0a2ebafc65a87a69a7b9875e4b1ae1f00db265d300ef7f28bccc" dependencies = [ "proc-macro2", "quote", - "syn 2.0.46", + "syn 2.0.58", ] [[package]] name = "regex" -version = "1.10.3" +version = "1.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b62dbe01f0b06f9d8dc7d49e05a0785f153b00b2c227856282f671e0318c9b15" +checksum = "c117dbdfde9c8308975b6a18d71f3f385c89461f7b3fb054288ecf2a2058ba4c" dependencies = [ "aho-corasick", "memchr", - "regex-automata 0.4.4", - "regex-syntax 0.8.2", + "regex-automata 0.4.6", + "regex-syntax 0.8.3", ] [[package]] @@ -3525,13 +3458,13 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.4" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b7fa1134405e2ec9353fd416b17f8dacd46c473d7d3fd1cf202706a14eb792a" +checksum = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea" dependencies = [ "aho-corasick", "memchr", - "regex-syntax 0.8.2", + "regex-syntax 0.8.3", ] [[package]] @@ -3542,9 +3475,9 @@ checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" [[package]] name = "regex-syntax" -version = "0.8.2" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" +checksum = "adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56" [[package]] name = "rfc6979" @@ -3558,16 +3491,17 @@ dependencies = [ [[package]] name = "ring" -version = "0.17.5" +version = "0.17.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb0205304757e5d899b9c2e448b867ffd03ae7f988002e47cd24954391394d0b" +checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d" dependencies = [ "cc", - "getrandom 0.2.11", + "cfg-if", + "getrandom", "libc", "spin", "untrusted", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] @@ -3613,41 +3547,41 @@ dependencies = [ [[package]] name = "rustix" -version = "0.37.27" +version = "0.38.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fea8ca367a3a01fe35e6943c400addf443c0f57670e6ec51196f71a4b8762dd2" +checksum = "65e04861e65f21776e67888bfbea442b3642beaa0138fdb1dd7a84a52dffdb89" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.5.0", "errno", - "io-lifetimes", "libc", - "linux-raw-sys 0.3.8", - "windows-sys 0.48.0", + "linux-raw-sys 0.4.13", + "windows-sys 0.52.0", ] [[package]] -name = "rustix" -version = "0.38.25" +name = "rustls" +version = "0.21.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc99bc2d4f1fed22595588a013687477aedf3cdcfb26558c559edb67b4d9b22e" +checksum = "f9d5a6813c0759e4609cd494e8e725babae6a2ca7b62a5536a13daaec6fcb7ba" dependencies = [ - "bitflags 2.4.1", - "errno", - "libc", - "linux-raw-sys 0.4.11", - "windows-sys 0.48.0", + "log", + "ring", + "rustls-webpki 0.101.7", + "sct", ] [[package]] name = "rustls" -version = "0.21.9" +version = "0.22.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "629648aced5775d558af50b2b4c7b02983a04b312126d45eeead26e7caa498b9" +checksum = "99008d7ad0bbbea527ec27bddbc0e432c5b87d8175178cee68d2eec9c4a1813c" dependencies = [ "log", "ring", - "rustls-webpki", - "sct", + "rustls-pki-types", + "rustls-webpki 0.102.2", + "subtle", + "zeroize", ] [[package]] @@ -3657,7 +3591,20 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a9aace74cb666635c918e9c12bc0d348266037aa8eb599b5cba565709a8dff00" dependencies = [ "openssl-probe", - "rustls-pemfile", + "rustls-pemfile 1.0.4", + "schannel", + "security-framework", +] + +[[package]] +name = "rustls-native-certs" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f1fb85efa936c42c6d5fc28d2629bb51e4b2f4b8a5211e297d599cc5a093792" +dependencies = [ + "openssl-probe", + "rustls-pemfile 2.1.1", + "rustls-pki-types", "schannel", "security-framework", ] @@ -3668,9 +3615,25 @@ version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" dependencies = [ - "base64 0.21.5", + "base64 0.21.7", +] + +[[package]] +name = "rustls-pemfile" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f48172685e6ff52a556baa527774f61fcaa884f59daf3375c62a3f1cd2549dab" +dependencies = [ + "base64 0.21.7", + "rustls-pki-types", ] +[[package]] +name = "rustls-pki-types" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ecd36cc4259e3e4514335c4a138c6b43171a8d61d8f5c9348f9fc7529416f247" + [[package]] name = "rustls-webpki" version = "0.101.7" @@ -3681,6 +3644,17 @@ dependencies = [ "untrusted", ] +[[package]] +name = "rustls-webpki" +version = "0.102.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "faaa0a62740bedb9b2ef5afa303da42764c012f743917351dc9a237ea1663610" +dependencies = [ + "ring", + "rustls-pki-types", + "untrusted", +] + [[package]] name = "rustversion" version = "1.0.14" @@ -3700,9 +3674,9 @@ dependencies = [ [[package]] name = "ryu" -version = "1.0.15" +version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741" +checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1" [[package]] name = "safe_arch" @@ -3724,38 +3698,38 @@ dependencies = [ [[package]] name = "scale-bits" -version = "0.4.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "036575c29af9b6e4866ffb7fa055dbf623fe7a9cc159b33786de6013a6969d89" +checksum = "662d10dcd57b1c2a3c41c9cf68f71fb09747ada1ea932ad961aca7e2ca28315f" dependencies = [ "parity-scale-codec", "scale-info", + "scale-type-resolver", "serde", ] [[package]] name = "scale-decode" -version = "0.10.0" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7caaf753f8ed1ab4752c6afb20174f03598c664724e0e32628e161c21000ff76" +checksum = "afc79ba56a1c742f5aeeed1f1801f3edf51f7e818f0a54582cac6f131364ea7b" dependencies = [ "derive_more", "parity-scale-codec", "primitive-types", "scale-bits", "scale-decode-derive", - "scale-info", + "scale-type-resolver", "smallvec", ] [[package]] name = "scale-decode-derive" -version = "0.10.0" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3475108a1b62c7efd1b5c65974f30109a598b2f45f23c9ae030acb9686966db" +checksum = "5398fdb3c7bea3cb419bac4983aadacae93fe1a7b5f693f4ebd98c3821aad7a5" dependencies = [ "darling 0.14.4", - "proc-macro-crate", "proc-macro2", "quote", "syn 1.0.109", @@ -3763,27 +3737,27 @@ dependencies = [ [[package]] name = "scale-encode" -version = "0.5.0" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d70cb4b29360105483fac1ed567ff95d65224a14dd275b6303ed0a654c78de5" +checksum = "628800925a33794fb5387781b883b5e14d130fece9af5a63613867b8de07c5c7" dependencies = [ "derive_more", "parity-scale-codec", "primitive-types", "scale-bits", "scale-encode-derive", - "scale-info", + "scale-type-resolver", "smallvec", ] [[package]] name = "scale-encode-derive" -version = "0.5.0" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "995491f110efdc6bea96d6a746140e32bfceb4ea47510750a5467295a4707a25" +checksum = "7a304e1af7cdfbe7a24e08b012721456cc8cecdedadc14b3d10513eada63233c" dependencies = [ "darling 0.14.4", - "proc-macro-crate", + "proc-macro-crate 1.3.1", "proc-macro2", "quote", "syn 1.0.109", @@ -3791,9 +3765,9 @@ dependencies = [ [[package]] name = "scale-info" -version = "2.10.0" +version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f7d66a1128282b7ef025a8ead62a4a9fcf017382ec53b8ffbf4d7bf77bd3c60" +checksum = "788745a868b0e751750388f4e6546eb921ef714a4317fa6954f7cde114eb2eb7" dependencies = [ "bitvec", "cfg-if", @@ -3805,21 +3779,44 @@ dependencies = [ [[package]] name = "scale-info-derive" -version = "2.10.0" +version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abf2c68b89cafb3b8d918dd07b42be0da66ff202cf1155c5739a4e0c1ea0dc19" +checksum = "7dc2f4e8bc344b9fc3d5f74f72c2e55bfc38d28dc2ebc69c194a3df424e4d9ac" dependencies = [ - "proc-macro-crate", + "proc-macro-crate 1.3.1", "proc-macro2", "quote", "syn 1.0.109", ] +[[package]] +name = "scale-type-resolver" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10b800069bfd43374e0f96f653e0d46882a2cb16d6d961ac43bea80f26c76843" +dependencies = [ + "scale-info", + "smallvec", +] + +[[package]] +name = "scale-typegen" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d470fa75e71b12b3244a4113adc4bc49891f3daba2054703cacd06256066397e" +dependencies = [ + "proc-macro2", + "quote", + "scale-info", + "syn 2.0.58", + "thiserror", +] + [[package]] name = "scale-value" -version = "0.13.0" +version = "0.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58223c7691bf0bd46b43c9aea6f0472d1067f378d574180232358d7c6e0a8089" +checksum = "c07ccfee963104335c971aaf8b7b0e749be8569116322df23f1f75c4ca9e4a28" dependencies = [ "base58", "blake2", @@ -3831,17 +3828,18 @@ dependencies = [ "scale-decode", "scale-encode", "scale-info", + "scale-type-resolver", "serde", "yap", ] [[package]] name = "schannel" -version = "0.1.22" +version = "0.1.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c3733bf4cf7ea0880754e19cb5a462007c4a8c1914bff372ccc95b464f1df88" +checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534" dependencies = [ - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] @@ -3850,29 +3848,11 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "772575a524feeb803e5b0fcbc6dd9f367e579488197c94c6e4023aad2305774d" dependencies = [ - "ahash 0.8.6", + "ahash 0.8.11", "cfg-if", "hashbrown 0.13.2", ] -[[package]] -name = "schnorrkel" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "021b403afe70d81eea68f6ea12f6b3c9588e5d536a94c3bf80f15e7faa267862" -dependencies = [ - "arrayref", - "arrayvec 0.5.2", - "curve25519-dalek 2.1.3", - "getrandom 0.1.16", - "merlin 2.0.1", - "rand 0.7.3", - "rand_core 0.5.1", - "sha2 0.8.2", - "subtle", - "zeroize", -] - [[package]] name = "schnorrkel" version = "0.11.4" @@ -3882,9 +3862,9 @@ dependencies = [ "aead", "arrayref", "arrayvec 0.7.4", - "curve25519-dalek 4.1.1", + "curve25519-dalek 4.1.2", "getrandom_or_panic", - "merlin 3.0.0", + "merlin", "rand_core 0.6.4", "serde_bytes", "sha2 0.10.8", @@ -3916,26 +3896,27 @@ checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc" dependencies = [ "base16ct", "der", - "generic-array 0.14.7", + "generic-array", "pkcs8", + "serdect", "subtle", "zeroize", ] [[package]] name = "secp256k1" -version = "0.24.3" +version = "0.28.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b1629c9c557ef9b293568b338dddfc8208c98a18c59d722a9d53f859d9c9b62" +checksum = "d24b59d129cdadea20aea4fb2352fa053712e5d713eee47d700cd4b2bc002f10" dependencies = [ "secp256k1-sys", ] [[package]] name = "secp256k1-sys" -version = "0.6.1" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83080e2c2fc1006e625be82e5d1eb6a43b7fd9578b617fcc55814daf286bba4b" +checksum = "e5d1746aae42c19d583c3c1a8c646bfad910498e2051c551a7f2e3c0c9fbb7eb" dependencies = [ "cc", ] @@ -3951,9 +3932,9 @@ dependencies = [ [[package]] name = "security-framework" -version = "2.9.2" +version = "2.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05b64fb303737d99b81884b2c63433e9ae28abebe5eb5045dcdd175dc2ecf4de" +checksum = "770452e37cad93e0a50d5abc3990d2bc351c36d0328f86cefec2f2fb206eaef6" dependencies = [ "bitflags 1.3.2", "core-foundation", @@ -3964,9 +3945,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.9.1" +version = "2.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e932934257d3b408ed8f30db49d85ea163bfe74961f017f405b025af298f0c7a" +checksum = "41f3cc463c0ef97e11c3461a9d3787412d30e8e7eb907c79180c4a57bf7c04ef" dependencies = [ "core-foundation-sys", "libc", @@ -3974,9 +3955,9 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.20" +version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090" +checksum = "92d43fe69e652f3df9bdc2b85b2854a0825b86e4fb76bc44d945137d053639ca" [[package]] name = "serde" @@ -3989,9 +3970,9 @@ dependencies = [ [[package]] name = "serde_bytes" -version = "0.11.12" +version = "0.11.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab33ec92f677585af6d88c65593ae2375adde54efdbf16d597f2cbc7a6d368ff" +checksum = "8b8497c313fd43ab992087548117643f6fcd935cbf36f176ffda0aacf9591734" dependencies = [ "serde", ] @@ -4004,14 +3985,14 @@ checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.46", + "syn 2.0.58", ] [[package]] name = "serde_json" -version = "1.0.114" +version = "1.0.115" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5f09b1bd632ef549eaa9f60a1f8de742bdbc698e6cee2095fc84dde5f549ae0" +checksum = "12dc5c46daa8e9fdf4f5e71b6cf9a53f2487da0e86e55808e2d35539666497dd" dependencies = [ "itoa", "ryu", @@ -4020,10 +4001,20 @@ dependencies = [ [[package]] name = "serde_spanned" -version = "0.6.4" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb3622f419d1296904700073ea6cc23ad690adbd66f13ea683df73298736f0c1" +dependencies = [ + "serde", +] + +[[package]] +name = "serdect" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12022b835073e5b11e90a14f86838ceb1c8fb0325b72416845c487ac0fa95e80" +checksum = "a84f14a19e9a014bb9f4512488d9829a68e04ecabffb0f9904cd1ace94598177" dependencies = [ + "base16ct", "serde", ] @@ -4037,19 +4028,7 @@ dependencies = [ "cfg-if", "cpufeatures", "digest 0.9.0", - "opaque-debug 0.3.0", -] - -[[package]] -name = "sha2" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a256f46ea78a0c0d9ff00077504903ac881a1dafdc20da66545699e7776b3e69" -dependencies = [ - "block-buffer 0.7.3", - "digest 0.8.1", - "fake-simd", - "opaque-debug 0.2.3", + "opaque-debug", ] [[package]] @@ -4062,7 +4041,7 @@ dependencies = [ "cfg-if", "cpufeatures", "digest 0.9.0", - "opaque-debug 0.3.0", + "opaque-debug", ] [[package]] @@ -4127,11 +4106,17 @@ dependencies = [ "wide", ] +[[package]] +name = "simple-mermaid" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "620a1d43d70e142b1d46a929af51d44f383db9c7a2ec122de2cd992ccfcf3c18" + [[package]] name = "siphasher" -version = "1.0.0" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54ac45299ccbd390721be55b412d41931911f654fa99e2cb8bfb57184b2061fe" +checksum = "56199f7ddabf13fe5074ce809e7d3f42b42ae711800501b5b16ea82ad029c39d" [[package]] name = "slab" @@ -4144,37 +4129,37 @@ dependencies = [ [[package]] name = "smallvec" -version = "1.11.2" +version = "1.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970" +checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "smol" -version = "1.3.0" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13f2b548cd8447f8de0fdf1c592929f70f4fc7039a05e47404b0d096ec6987a1" +checksum = "e635339259e51ef85ac7aa29a1cd991b957047507288697a690e80ab97d07cad" dependencies = [ - "async-channel 1.9.0", + "async-channel", "async-executor", "async-fs", - "async-io 1.13.0", - "async-lock 2.8.0", + "async-io", + "async-lock 3.3.0", "async-net", "async-process", "blocking", - "futures-lite 1.13.0", + "futures-lite", ] [[package]] name = "smoldot" -version = "0.14.0" +version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eca99148e026936bbc444c3708748207033968e4ef1c33bfc885660ae4d44d21" +checksum = "e6d1eaa97d77be4d026a1e7ffad1bb3b78448763b357ea6f8188d3e6f736a9b9" dependencies = [ "arrayvec 0.7.4", - "async-lock 3.1.2", + "async-lock 3.3.0", "atomic-take", - "base64 0.21.5", + "base64 0.21.7", "bip39", "blake2-rfc", "bs58", @@ -4183,29 +4168,29 @@ dependencies = [ "derive_more", "ed25519-zebra 4.0.3", "either", - "event-listener 3.1.0", + "event-listener 4.0.3", "fnv", - "futures-lite 2.0.1", + "futures-lite", "futures-util", "hashbrown 0.14.3", "hex", "hmac 0.12.1", - "itertools 0.11.0", + "itertools 0.12.1", "libm", "libsecp256k1", - "merlin 3.0.0", + "merlin", "no-std-net", "nom", "num-bigint", "num-rational", "num-traits", - "pbkdf2 0.12.2", + "pbkdf2", "pin-project", "poly1305", - "rand 0.8.5", - "rand_chacha 0.3.1", + "rand", + "rand_chacha", "ruzstd", - "schnorrkel 0.11.4", + "schnorrkel", "serde", "serde_json", "sha2 0.10.8", @@ -4222,31 +4207,31 @@ dependencies = [ [[package]] name = "smoldot-light" -version = "0.12.0" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e6f1898682b618b81570047b9d870b3faaff6ae1891b468eddd94d7f903c2fe" +checksum = "5496f2d116b7019a526b1039ec2247dd172b8670633b1a64a614c9ea12c9d8c7" dependencies = [ - "async-channel 2.1.1", - "async-lock 3.1.2", - "base64 0.21.5", + "async-channel", + "async-lock 3.3.0", + "base64 0.21.7", "blake2-rfc", "derive_more", "either", - "event-listener 3.1.0", + "event-listener 4.0.3", "fnv", "futures-channel", - "futures-lite 2.0.1", + "futures-lite", "futures-util", "hashbrown 0.14.3", "hex", - "itertools 0.11.0", + "itertools 0.12.1", "log", "lru", "no-std-net", "parking_lot", "pin-project", - "rand 0.8.5", - "rand_chacha 0.3.1", + "rand", + "rand_chacha", "serde", "serde_json", "siphasher", @@ -4258,22 +4243,12 @@ dependencies = [ [[package]] name = "socket2" -version = "0.4.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d" -dependencies = [ - "libc", - "winapi", -] - -[[package]] -name = "socket2" -version = "0.5.5" +version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9" +checksum = "05ffd9c0a93b7543e062e759284fcf5f5e3b098501104bfbdde4d404db792871" dependencies = [ "libc", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] @@ -4287,15 +4262,15 @@ dependencies = [ "futures", "httparse", "log", - "rand 0.8.5", + "rand", "sha-1", ] [[package]] name = "sp-api" -version = "24.0.0" +version = "29.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4d3518f5454764fb2835b2a0f3b2ed23a432f5c0b7a81ff122ec68361c91de3" +checksum = "cb3fb2cdf7ee9b8d6ec7c2d8740b1a506e393dc18c7c2776764b47136d72dce7" dependencies = [ "hash-db", "log", @@ -4306,6 +4281,7 @@ dependencies = [ "sp-externalities", "sp-metadata-ir", "sp-runtime", + "sp-runtime-interface", "sp-state-machine", "sp-std", "sp-trie", @@ -4315,24 +4291,24 @@ dependencies = [ [[package]] name = "sp-api-proc-macro" -version = "13.0.0" +version = "17.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66f4030c3fe4a7dfb720d9007c32be4c18a4431b934ded41138056d627937894" +checksum = "f313c5a62b352b0a89935be68059919b8c1cc15f774b1abe0a651929b68dc9db" dependencies = [ "Inflector", "blake2", "expander", - "proc-macro-crate", + "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.46", + "syn 2.0.58", ] [[package]] name = "sp-application-crypto" -version = "28.0.0" +version = "33.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23030de8eae0272c705cf3e2ce0523a64708a6b53aa23f3cf9053ca63abd08d7" +checksum = "13ca6121c22c8bd3d1dce1f05c479101fd0d7b159bef2a3e8c834138d839c75c" dependencies = [ "parity-scale-codec", "scale-info", @@ -4344,9 +4320,9 @@ dependencies = [ [[package]] name = "sp-arithmetic" -version = "21.0.0" +version = "25.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9cf6e5c0c7c2e7be3a4a10af5316d2d40182915509a70f632a66c238a05c37b" +checksum = "910c07fa263b20bf7271fdd4adcb5d3217dfdac14270592e0780223542e7e114" dependencies = [ "integer-sqrt", "num-traits", @@ -4359,12 +4335,11 @@ dependencies = [ [[package]] name = "sp-core" -version = "26.0.0" +version = "31.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0db34a19be2efa0398a9506a365392d93a85220856d55e0eb78165ad2e1bedc" +checksum = "26d7a0fd8f16dcc3761198fc83be12872f823b37b749bc72a3a6a1f702509366" dependencies = [ "array-bytes", - "bip39", "bitflags 1.3.2", "blake2", "bounded-collections", @@ -4376,22 +4351,22 @@ dependencies = [ "hash256-std-hasher", "impl-serde", "itertools 0.10.5", - "lazy_static", + "k256", "libsecp256k1", "log", - "merlin 2.0.1", + "merlin", + "parity-bip39", "parity-scale-codec", "parking_lot", "paste", "primitive-types", - "rand 0.8.5", - "regex", + "rand", "scale-info", - "schnorrkel 0.9.1", + "schnorrkel", "secp256k1", "secrecy", "serde", - "sp-core-hashing", + "sp-crypto-hashing", "sp-debug-derive", "sp-externalities", "sp-runtime-interface", @@ -4406,10 +4381,10 @@ dependencies = [ ] [[package]] -name = "sp-core-hashing" -version = "13.0.0" +name = "sp-crypto-hashing" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb8524f01591ee58b46cd83c9dbc0fcffd2fd730dabec4f59326cd58a00f17e2" +checksum = "bc9927a7f81334ed5b8a98a4a978c81324d12bd9713ec76b5c68fd410174c5eb" dependencies = [ "blake2b_simd", "byteorder", @@ -4420,32 +4395,32 @@ dependencies = [ ] [[package]] -name = "sp-core-hashing-proc-macro" -version = "13.0.0" +name = "sp-crypto-hashing-proc-macro" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42ce3e6931303769197da81facefa86159fa1085dcd96ecb7e7407b5b93582a0" +checksum = "b85d0f1f1e44bd8617eb2a48203ee854981229e3e79e6f468c7175d5fd37489b" dependencies = [ "quote", - "sp-core-hashing", - "syn 2.0.46", + "sp-crypto-hashing", + "syn 2.0.58", ] [[package]] name = "sp-debug-derive" -version = "12.0.0" +version = "14.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50535e1a5708d3ba5c1195b59ebefac61cc8679c2c24716b87a86e8b7ed2e4a1" +checksum = "48d09fa0a5f7299fb81ee25ae3853d26200f7a348148aed6de76be905c007dbe" dependencies = [ "proc-macro2", "quote", - "syn 2.0.46", + "syn 2.0.58", ] [[package]] name = "sp-externalities" -version = "0.23.0" +version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "884d05160bc89d0943d1c9fb8006c3d44b80f37f8af607aeff8d4d9cc82e279a" +checksum = "a1d6a4572eadd4a63cff92509a210bf425501a0c5e76574b30a366ac77653787" dependencies = [ "environmental", "parity-scale-codec", @@ -4455,9 +4430,9 @@ dependencies = [ [[package]] name = "sp-genesis-builder" -version = "0.5.0" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65de7e1d4de8ac2645913ed7202c71ba5783e39286f2be40f0c45a8e472ad9fd" +checksum = "16a1192b502d38c6d17b1005a7b3e7a6ab835df996803968ae3be9e8f7399ee4" dependencies = [ "serde_json", "sp-api", @@ -4467,9 +4442,9 @@ dependencies = [ [[package]] name = "sp-inherents" -version = "24.0.0" +version = "29.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c681a65a707014d505bf675e452c28b02eb55d9499f2407b85feef651fce0c2e" +checksum = "3b5e46ccc5848542648dcf05f882e41de2e341d0eeca97ff2b7dfad0f38e8500" dependencies = [ "async-trait", "impl-trait-for-tuples", @@ -4482,18 +4457,20 @@ dependencies = [ [[package]] name = "sp-io" -version = "28.0.0" +version = "33.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "301c0ce94f80b324465a6f6173183aa07b26bd71d67f94a44de1fd11dea4a7cb" +checksum = "3e09bba780b55bd9e67979cd8f654a31e4a6cf45426ff371394a65953d2177f2" dependencies = [ "bytes", "ed25519-dalek", "libsecp256k1", "log", "parity-scale-codec", + "polkavm-derive 0.9.1", "rustversion", "secp256k1", "sp-core", + "sp-crypto-hashing", "sp-externalities", "sp-keystore", "sp-runtime-interface", @@ -4507,22 +4484,21 @@ dependencies = [ [[package]] name = "sp-keystore" -version = "0.32.0" +version = "0.37.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1db18ab01b2684856904c973d2be7dbf9ab3607cf706a7bd6648812662e5e7c5" +checksum = "bdbab8b61bd61d5f8625a0c75753b5d5a23be55d3445419acd42caf59cf6236b" dependencies = [ "parity-scale-codec", "parking_lot", "sp-core", "sp-externalities", - "thiserror", ] [[package]] name = "sp-metadata-ir" -version = "0.4.0" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ca9ff0e522a74725ac92f009d38deeb12e880f5296afbd78a6c6b970b773278" +checksum = "fa0b5e87e56c1bb26d9524d48dd127121d630f895bd5914a34f0b017489f7c1d" dependencies = [ "frame-metadata 16.0.0", "parity-scale-codec", @@ -4532,9 +4508,9 @@ dependencies = [ [[package]] name = "sp-npos-elections" -version = "24.0.0" +version = "29.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ccca7310c7b4144c6cf76e0d1ff75252fb9ffc0a03db50ac25092f981db9e3c" +checksum = "e03ec553bc1a0f4d3aa902d3c5b3cdbe76f8218c642cbca0305722b3f8bbc826" dependencies = [ "parity-scale-codec", "scale-info", @@ -4547,9 +4523,9 @@ dependencies = [ [[package]] name = "sp-panic-handler" -version = "12.0.0" +version = "13.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b00e40857ed3e0187f145b037c733545c5633859f1bd1d1b09deb52805fa696a" +checksum = "d8f5a17a0a11de029a8b811cb6e8b32ce7e02183cc04a3e965c383246798c416" dependencies = [ "backtrace", "lazy_static", @@ -4558,19 +4534,21 @@ dependencies = [ [[package]] name = "sp-runtime" -version = "29.0.0" +version = "34.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "082bae4a164b8b629ce9cee79ff3c6b20e66d11d8ef37398796567d616325da4" +checksum = "ec3cb126971e7db2f0fcf8053dce740684c438c7180cfca1959598230f342c58" dependencies = [ + "docify", "either", "hash256-std-hasher", "impl-trait-for-tuples", "log", "parity-scale-codec", "paste", - "rand 0.8.5", + "rand", "scale-info", "serde", + "simple-mermaid", "sp-application-crypto", "sp-arithmetic", "sp-core", @@ -4581,13 +4559,14 @@ dependencies = [ [[package]] name = "sp-runtime-interface" -version = "22.0.0" +version = "26.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "695bba5d981a6fd3131b098d65f620601bd822501612bfb65897d4bb660762b1" +checksum = "e48a675ea4858333d4d755899ed5ed780174aa34fec15953428d516af5452295" dependencies = [ "bytes", "impl-trait-for-tuples", "parity-scale-codec", + "polkavm-derive 0.8.0", "primitive-types", "sp-externalities", "sp-runtime-interface-proc-macro", @@ -4600,22 +4579,23 @@ dependencies = [ [[package]] name = "sp-runtime-interface-proc-macro" -version = "15.0.0" +version = "18.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b2afcbd1bd18d323371111b66b7ac2870bdc1c86c3d7b0dae67b112ca52b4d8" +checksum = "0195f32c628fee3ce1dfbbf2e7e52a30ea85f3589da9fe62a8b816d70fc06294" dependencies = [ "Inflector", - "proc-macro-crate", + "expander", + "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.46", + "syn 2.0.58", ] [[package]] name = "sp-staking" -version = "24.0.0" +version = "29.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae2d1164378d66b4b9f672d0c920104c59aeba02655522c0fd511c71c2daf614" +checksum = "4114cde17987eaa2f17b8850a8c856b90364666cdbc920d511e7a1cde0574d24" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", @@ -4628,15 +4608,15 @@ dependencies = [ [[package]] name = "sp-state-machine" -version = "0.33.0" +version = "0.38.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df7c6680d9342c22c10d8272ebf9f0339b0e439b3e67b68f5627f9dfc6926a07" +checksum = "1eae0eac8034ba14437e772366336f579398a46d101de13dbb781ab1e35e67c5" dependencies = [ "hash-db", "log", "parity-scale-codec", "parking_lot", - "rand 0.8.5", + "rand", "smallvec", "sp-core", "sp-externalities", @@ -4650,15 +4630,15 @@ dependencies = [ [[package]] name = "sp-std" -version = "12.0.0" +version = "14.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54c78c5a66682568cc7b153603c5d01a2cc8f5c221c7b1e921517a0eef18ae05" +checksum = "12f8ee986414b0a9ad741776762f4083cd3a5128449b982a3919c4df36874834" [[package]] name = "sp-storage" -version = "17.0.0" +version = "20.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "016f20812cc51bd479cc88d048c35d44cd3adde4accdb159d49d6050f2953595" +checksum = "8dba5791cb3978e95daf99dad919ecb3ec35565604e88cd38d805d9d4981e8bd" dependencies = [ "impl-serde", "parity-scale-codec", @@ -4670,9 +4650,9 @@ dependencies = [ [[package]] name = "sp-tracing" -version = "14.0.0" +version = "16.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d727cb5265641ffbb7d4e42c18b63e29f6cfdbd240aae3bcf093c3d6eb29a19" +checksum = "0351810b9d074df71c4514c5228ed05c250607cba131c1c9d1526760ab69c05c" dependencies = [ "parity-scale-codec", "sp-std", @@ -4683,22 +4663,22 @@ dependencies = [ [[package]] name = "sp-trie" -version = "27.0.0" +version = "32.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9c4bf89a5bd74f696cd1f23d83bb6abe6bd0abad1f3c70d4b0d7ebec4098cfe" +checksum = "f1aa91ad26c62b93d73e65f9ce7ebd04459c4bad086599348846a81988d6faa4" dependencies = [ - "ahash 0.8.6", + "ahash 0.8.11", "hash-db", - "hashbrown 0.13.2", "lazy_static", "memory-db", "nohash-hasher", "parity-scale-codec", "parking_lot", - "rand 0.8.5", + "rand", "scale-info", "schnellru", "sp-core", + "sp-externalities", "sp-std", "thiserror", "tracing", @@ -4708,16 +4688,16 @@ dependencies = [ [[package]] name = "sp-version" -version = "27.0.0" +version = "32.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "603c3c40bf19dd3004b350e4fcc2a460f833e73dd514406c2361bfdd9795d019" +checksum = "1c0219b1aeb89e36d13bd43a718920a9087dbb66c567e672c4639cefb2fefc05" dependencies = [ "impl-serde", "parity-scale-codec", "parity-wasm", "scale-info", "serde", - "sp-core-hashing-proc-macro", + "sp-crypto-hashing-proc-macro", "sp-runtime", "sp-std", "sp-version-proc-macro", @@ -4726,21 +4706,21 @@ dependencies = [ [[package]] name = "sp-version-proc-macro" -version = "12.0.0" +version = "13.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49535d8c7184dab46d15639c68374a30cbb1534e392fa09a1ebb059a993ad436" +checksum = "e9bc3fed32d6dacbbbfb28dd1fe0224affbb737cb6cbfca1d9149351c2b69a7d" dependencies = [ "parity-scale-codec", "proc-macro2", "quote", - "syn 2.0.46", + "syn 2.0.58", ] [[package]] name = "sp-wasm-interface" -version = "18.0.0" +version = "20.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5d85813d46a22484cdf5e5afddbbe85442dd1b4d84d67a8c7792f92f9f93607" +checksum = "9ef97172c42eb4c6c26506f325f48463e9bc29b2034a587f1b9e48c751229bee" dependencies = [ "anyhow", "impl-trait-for-tuples", @@ -4752,16 +4732,16 @@ dependencies = [ [[package]] name = "sp-weights" -version = "25.0.0" +version = "30.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1689f9594c2c4d09ede3d8a991a9eb900654e424fb00b62f2b370170af347acd" +checksum = "9af6c661fe3066b29f9e1d258000f402ff5cc2529a9191972d214e5871d0ba87" dependencies = [ + "bounded-collections", "parity-scale-codec", "scale-info", "serde", "smallvec", "sp-arithmetic", - "sp-core", "sp-debug-derive", "sp-std", ] @@ -4774,9 +4754,9 @@ checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" [[package]] name = "spki" -version = "0.7.2" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d1e996ef02c474957d681f1b05213dfb0abab947b446a62d37770b23500184a" +checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" dependencies = [ "base64ct", "der", @@ -4784,9 +4764,9 @@ dependencies = [ [[package]] name = "ss58-registry" -version = "1.44.0" +version = "1.47.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35935738370302d5e33963665b77541e4b990a3e919ec904c837a56cfc891de1" +checksum = "4743ce898933fbff7bbf414f497c459a782d496269644b3d650a398ae6a487ba" dependencies = [ "Inflector", "num-format", @@ -4817,9 +4797,9 @@ checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" [[package]] name = "strsim" -version = "0.11.0" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ee073c9e4cd00e28217186dbe12796d692868f432bf2e97ee73bed0c56dfa01" +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" [[package]] name = "strum" @@ -4836,7 +4816,7 @@ version = "0.24.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59" dependencies = [ - "heck", + "heck 0.4.1", "proc-macro2", "quote", "rustversion", @@ -4845,28 +4825,28 @@ dependencies = [ [[package]] name = "substrate-bip39" -version = "0.4.5" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e620c7098893ba667438b47169c00aacdd9e7c10e042250ce2b60b087ec97328" +checksum = "a2b564c293e6194e8b222e52436bcb99f60de72043c7f845cf6c4406db4df121" dependencies = [ - "hmac 0.11.0", - "pbkdf2 0.8.0", - "schnorrkel 0.9.1", - "sha2 0.9.9", + "hmac 0.12.1", + "pbkdf2", + "schnorrkel", + "sha2 0.10.8", "zeroize", ] [[package]] name = "subtle" -version = "2.4.1" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601" +checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" [[package]] name = "subxt" -version = "0.33.0" +version = "0.35.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7cf683962113b84ce5226bdf6f27d7f92a7e5bb408a5231f6c205407fbb20df" +checksum = "a5c287b336efcb9bab54020329c48d8cc6427e1c13dcc3b4ec20c793ff8a6926" dependencies = [ "async-trait", "base58", @@ -4877,6 +4857,7 @@ dependencies = [ "futures", "hex", "impl-serde", + "instant", "jsonrpsee", "parity-scale-codec", "primitive-types", @@ -4888,40 +4869,43 @@ dependencies = [ "serde", "serde_json", "sp-core", - "sp-core-hashing", + "sp-crypto-hashing", "sp-runtime", "subxt-lightclient", "subxt-macro", "subxt-metadata", "thiserror", + "tokio-util", "tracing", + "url", ] [[package]] name = "subxt-codegen" -version = "0.33.0" +version = "0.35.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12800ad6128b4bfc93d2af89b7d368bff7ea2f6604add35f96f6a8c06c7f9abf" +checksum = "31528ba082daea68850852ecb49e463022b47c14f8031874c73d04ce04d36d05" dependencies = [ "frame-metadata 16.0.0", - "heck", + "heck 0.4.1", "hex", "jsonrpsee", "parity-scale-codec", "proc-macro2", "quote", "scale-info", + "scale-typegen", "subxt-metadata", - "syn 2.0.46", + "syn 2.0.58", "thiserror", "tokio", ] [[package]] name = "subxt-lightclient" -version = "0.33.0" +version = "0.35.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "243765099b60d97dc7fc80456ab951758a07ed0decb5c09283783f06ca04fc69" +checksum = "04e4dc4cf724926d89dadeb26ecba7b8c92a3cabd04f1385ea46a927ef1508b0" dependencies = [ "futures", "futures-util", @@ -4936,28 +4920,31 @@ dependencies = [ [[package]] name = "subxt-macro" -version = "0.33.0" +version = "0.35.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5086ce2a90e723083ff19b77f06805d00e732eac3e19c86f6cd643d4255d334" +checksum = "af4de9eebf532a2d28dea87e04974180842c892ca74b710cc929f3df7d3560e8" dependencies = [ - "darling 0.20.3", + "darling 0.20.8", "parity-scale-codec", "proc-macro-error", + "quote", + "scale-typegen", "subxt-codegen", - "syn 2.0.46", + "syn 2.0.58", ] [[package]] name = "subxt-metadata" -version = "0.33.0" +version = "0.35.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19dc60f779bcab44084053e12d4ad5ac18ee217dbe8e26c919e7086fc0228d30" +checksum = "5e2ed94dbebe8a093c8990bfced142ac5377a1be8e5e2c8cfa5e0d7dce851289" dependencies = [ + "derive_more", "frame-metadata 16.0.0", + "hashbrown 0.14.3", "parity-scale-codec", "scale-info", - "sp-core-hashing", - "thiserror", + "sp-crypto-hashing", ] [[package]] @@ -4973,9 +4960,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.46" +version = "2.0.58" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89456b690ff72fddcecf231caedbe615c59480c93358a93dfae7fc29e3ebbf0e" +checksum = "44cfb93f38070beee36b3fef7d4f5a16f27751d94b187b666a5cc5e9b0d30687" dependencies = [ "proc-macro2", "quote", @@ -4990,15 +4977,15 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" [[package]] name = "target-lexicon" -version = "0.12.12" +version = "0.12.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14c39fd04924ca3a864207c66fc2cd7d22d7c016007f9ce846cbb9326331930a" +checksum = "e1fc403891a21bcfb7c37834ba66a547a8f402146eba7265b5a6d88059c9ff2f" [[package]] name = "termcolor" -version = "1.4.0" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff1bc3d3f05aff0403e8ac0d92ced918ec05b666a43f83297ccef5bea8a3d449" +checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755" dependencies = [ "winapi-util", ] @@ -5011,29 +4998,29 @@ checksum = "3369f5ac52d5eb6ab48c6b4ffdc8efbcad6b89c765749064ba298f2c68a16a76" [[package]] name = "thiserror" -version = "1.0.57" +version = "1.0.58" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e45bcbe8ed29775f228095caf2cd67af7a4ccf756ebff23a306bf3e8b47b24b" +checksum = "03468839009160513471e86a034bb2c5c0e4baae3b43f79ffc55c4a5427b3297" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.57" +version = "1.0.58" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a953cb265bef375dae3de6663da4d3804eee9682ea80d8e2542529b73c531c81" +checksum = "c61f3ba182994efc43764a46c018c347bc492c79f024e705f46567b418f6d4f7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.46", + "syn 2.0.58", ] [[package]] name = "thread_local" -version = "1.1.7" +version = "1.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152" +checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" dependencies = [ "cfg-if", "once_cell", @@ -5065,9 +5052,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.36.0" +version = "1.37.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61285f6515fa018fb2d1e46eb21223fff441ee8db5d0f1435e8ab4f5cdb80931" +checksum = "1adbebffeca75fcfd058afa480fb6c0b81e165a0323f9c9d39c9697e37c46787" dependencies = [ "backtrace", "bytes", @@ -5076,7 +5063,7 @@ dependencies = [ "num_cpus", "pin-project-lite", "signal-hook-registry", - "socket2 0.5.5", + "socket2", "tokio-macros", "windows-sys 0.48.0", ] @@ -5089,7 +5076,7 @@ checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.46", + "syn 2.0.58", ] [[package]] @@ -5098,15 +5085,26 @@ version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" dependencies = [ - "rustls", + "rustls 0.21.10", + "tokio", +] + +[[package]] +name = "tokio-rustls" +version = "0.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "775e0c0f0adb3a2f22a00c4745d728b479985fc15ee7ca6a2608388c5569860f" +dependencies = [ + "rustls 0.22.3", + "rustls-pki-types", "tokio", ] [[package]] name = "tokio-stream" -version = "0.1.14" +version = "0.1.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "397c988d37662c7dda6d2208364a706264bf3d6138b11d436cbac0ad38832842" +checksum = "267ac89e0bec6e691e5813911606935d77c476ff49024f98abcea3e7b15e37af" dependencies = [ "futures-core", "pin-project-lite", @@ -5130,14 +5128,14 @@ dependencies = [ [[package]] name = "toml" -version = "0.7.8" +version = "0.8.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd79e69d3b627db300ff956027cc6c3798cef26d22526befdfcd12feeb6d2257" +checksum = "e9dd1545e8208b4a5af1aa9bbd0b4cf7e9ea08fabc5d0a5c67fcaafa17433aa3" dependencies = [ "serde", "serde_spanned", "toml_datetime", - "toml_edit", + "toml_edit 0.22.9", ] [[package]] @@ -5155,11 +5153,44 @@ version = "0.19.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" dependencies = [ - "indexmap 2.1.0", + "indexmap 2.2.6", + "toml_datetime", + "winnow 0.5.40", +] + +[[package]] +name = "toml_edit" +version = "0.20.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70f427fce4d84c72b5b732388bf4a9f4531b53f74e2887e3ecb2481f68f66d81" +dependencies = [ + "indexmap 2.2.6", + "toml_datetime", + "winnow 0.5.40", +] + +[[package]] +name = "toml_edit" +version = "0.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1" +dependencies = [ + "indexmap 2.2.6", + "toml_datetime", + "winnow 0.5.40", +] + +[[package]] +name = "toml_edit" +version = "0.22.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e40bb779c5187258fd7aad0eb68cb8706a0a81fa712fbea808ab43c4b8374c4" +dependencies = [ + "indexmap 2.2.6", "serde", "serde_spanned", "toml_datetime", - "winnow", + "winnow 0.6.5", ] [[package]] @@ -5209,7 +5240,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.46", + "syn 2.0.58", ] [[package]] @@ -5318,9 +5349,9 @@ dependencies = [ [[package]] name = "try-lock" -version = "0.2.4" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed" +checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" [[package]] name = "tt-call" @@ -5336,7 +5367,7 @@ checksum = "97fee6b57c6a41524a810daee9286c02d7752c4253064d0b05472833a438f675" dependencies = [ "cfg-if", "digest 0.10.7", - "rand 0.8.5", + "rand", "static_assertions", ] @@ -5360,9 +5391,9 @@ dependencies = [ [[package]] name = "unicode-bidi" -version = "0.3.13" +version = "0.3.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460" +checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75" [[package]] name = "unicode-ident" @@ -5445,8 +5476,8 @@ dependencies = [ "arrayref", "constcat", "digest 0.10.7", - "rand 0.8.5", - "rand_chacha 0.3.1", + "rand", + "rand_chacha", "rand_core 0.6.4", "sha2 0.10.8", "sha3", @@ -5463,17 +5494,11 @@ dependencies = [ "libc", ] -[[package]] -name = "waker-fn" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3c4517f54858c779bbcbf228f4fca63d121bf85fbecb2dc578cdf4a39395690" - [[package]] name = "walkdir" -version = "2.4.0" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee" +checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" dependencies = [ "same-file", "winapi-util", @@ -5488,12 +5513,6 @@ dependencies = [ "try-lock", ] -[[package]] -name = "wasi" -version = "0.9.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" - [[package]] name = "wasi" version = "0.11.0+wasi-snapshot-preview1" @@ -5502,9 +5521,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.89" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ed0d4f68a3015cc185aff4db9506a015f4b96f95303897bfa23f846db54064e" +checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8" dependencies = [ "cfg-if", "wasm-bindgen-macro", @@ -5512,24 +5531,24 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.89" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b56f625e64f3a1084ded111c4d5f477df9f8c92df113852fa5a374dbda78826" +checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da" dependencies = [ "bumpalo", "log", "once_cell", "proc-macro2", "quote", - "syn 2.0.46", + "syn 2.0.58", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-macro" -version = "0.2.89" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0162dbf37223cd2afce98f3d0785506dcb8d266223983e4b5b525859e6e182b2" +checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -5537,28 +5556,28 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.89" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0eb82fcb7930ae6219a7ecfd55b217f5f0893484b7a13022ebb2b2bf20b5283" +checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.46", + "syn 2.0.58", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.89" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ab9b36309365056cd639da3134bf87fa8f3d86008abf99e612384a6eecd459f" +checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96" [[package]] name = "wasmi" -version = "0.31.1" +version = "0.31.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acfc1e384a36ca532d070a315925887247f3c7e23567e23e0ac9b1c5d6b8bf76" +checksum = "77a8281d1d660cdf54c76a3efa9ddd0c270cada1383a995db3ccb43d166456c7" dependencies = [ "smallvec", "spin", @@ -5569,9 +5588,9 @@ dependencies = [ [[package]] name = "wasmi_arena" -version = "0.4.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "401c1f35e413fac1846d4843745589d9ec678977ab35a384db8ae7830525d468" +checksum = "104a7f73be44570cac297b3035d76b169d6599637631cf37a1703326a0727073" [[package]] name = "wasmi_core" @@ -5716,7 +5735,7 @@ dependencies = [ "memfd", "memoffset", "paste", - "rand 0.8.5", + "rand", "rustix 0.36.17", "wasmtime-asm-macros", "wasmtime-environ", @@ -5738,9 +5757,9 @@ dependencies = [ [[package]] name = "wide" -version = "0.7.13" +version = "0.7.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c68938b57b33da363195412cfc5fc37c9ed49aa9cfe2156fde64b8d2c9498242" +checksum = "89beec544f246e679fc25490e3f8e08003bc4bf612068f325120dad4cea02c1c" dependencies = [ "bytemuck", "safe_arch", @@ -5779,11 +5798,11 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] name = "windows-core" -version = "0.51.1" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1f8cf84f35d2db49a46868f947758c7a1138116f7fac3bc844f43ade1292e64" +checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" dependencies = [ - "windows-targets 0.48.5", + "windows-targets 0.52.4", ] [[package]] @@ -5810,7 +5829,7 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" dependencies = [ - "windows-targets 0.52.0", + "windows-targets 0.52.4", ] [[package]] @@ -5845,17 +5864,17 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.52.0" +version = "0.52.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd" +checksum = "7dd37b7e5ab9018759f893a1952c9420d060016fc19a472b4bb20d1bdd694d1b" dependencies = [ - "windows_aarch64_gnullvm 0.52.0", - "windows_aarch64_msvc 0.52.0", - "windows_i686_gnu 0.52.0", - "windows_i686_msvc 0.52.0", - "windows_x86_64_gnu 0.52.0", - "windows_x86_64_gnullvm 0.52.0", - "windows_x86_64_msvc 0.52.0", + "windows_aarch64_gnullvm 0.52.4", + "windows_aarch64_msvc 0.52.4", + "windows_i686_gnu 0.52.4", + "windows_i686_msvc 0.52.4", + "windows_x86_64_gnu 0.52.4", + "windows_x86_64_gnullvm 0.52.4", + "windows_x86_64_msvc 0.52.4", ] [[package]] @@ -5872,9 +5891,9 @@ checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" [[package]] name = "windows_aarch64_gnullvm" -version = "0.52.0" +version = "0.52.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea" +checksum = "bcf46cf4c365c6f2d1cc93ce535f2c8b244591df96ceee75d8e83deb70a9cac9" [[package]] name = "windows_aarch64_msvc" @@ -5890,9 +5909,9 @@ checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" [[package]] name = "windows_aarch64_msvc" -version = "0.52.0" +version = "0.52.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef" +checksum = "da9f259dd3bcf6990b55bffd094c4f7235817ba4ceebde8e6d11cd0c5633b675" [[package]] name = "windows_i686_gnu" @@ -5908,9 +5927,9 @@ checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" [[package]] name = "windows_i686_gnu" -version = "0.52.0" +version = "0.52.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313" +checksum = "b474d8268f99e0995f25b9f095bc7434632601028cf86590aea5c8a5cb7801d3" [[package]] name = "windows_i686_msvc" @@ -5926,9 +5945,9 @@ checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" [[package]] name = "windows_i686_msvc" -version = "0.52.0" +version = "0.52.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a" +checksum = "1515e9a29e5bed743cb4415a9ecf5dfca648ce85ee42e15873c3cd8610ff8e02" [[package]] name = "windows_x86_64_gnu" @@ -5944,9 +5963,9 @@ checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" [[package]] name = "windows_x86_64_gnu" -version = "0.52.0" +version = "0.52.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd" +checksum = "5eee091590e89cc02ad514ffe3ead9eb6b660aedca2183455434b93546371a03" [[package]] name = "windows_x86_64_gnullvm" @@ -5962,9 +5981,9 @@ checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" [[package]] name = "windows_x86_64_gnullvm" -version = "0.52.0" +version = "0.52.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e" +checksum = "77ca79f2451b49fa9e2af39f0747fe999fcda4f5e241b2898624dca97a1f2177" [[package]] name = "windows_x86_64_msvc" @@ -5980,15 +5999,24 @@ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" [[package]] name = "windows_x86_64_msvc" -version = "0.52.0" +version = "0.52.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32b752e52a2da0ddfbdbcc6fceadfeede4c939ed16d13e648833a61dfb611ed8" + +[[package]] +name = "winnow" +version = "0.5.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" +checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" +dependencies = [ + "memchr", +] [[package]] name = "winnow" -version = "0.5.19" +version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "829846f3e3db426d4cee4510841b71a8e58aa2a76b1132579487ae430ccd9c7b" +checksum = "dffa400e67ed5a4dd237983829e66475f0a4a26938c4b04c21baede6262215b8" dependencies = [ "memchr", ] @@ -6004,11 +6032,11 @@ dependencies = [ [[package]] name = "x25519-dalek" -version = "2.0.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb66477291e7e8d2b0ff1bcb900bf29489a9692816d79874bea351e7a8b6de96" +checksum = "c7e468321c81fb07fa7f4c636c3972b9100f0346e5b6a9f2bd0603a52f7ed277" dependencies = [ - "curve25519-dalek 4.1.1", + "curve25519-dalek 4.1.2", "rand_core 0.6.4", "serde", "zeroize", @@ -6022,22 +6050,22 @@ checksum = "ff4524214bc4629eba08d78ceb1d6507070cc0bcbbed23af74e19e6e924a24cf" [[package]] name = "zerocopy" -version = "0.7.31" +version = "0.7.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c4061bedbb353041c12f413700357bec76df2c7e2ca8e4df8bac24c6bf68e3d" +checksum = "74d4d3961e53fa4c9a25a8637fc2bfaf2595b3d3ae34875568a5cf64787716be" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.7.31" +version = "0.7.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3c129550b3e6de3fd0ba67ba5c81818f9805e58b8d7fee80a3a59d2c9fc601a" +checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.46", + "syn 2.0.58", ] [[package]] @@ -6057,5 +6085,5 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.46", + "syn 2.0.58", ] diff --git a/Cargo.toml b/Cargo.toml index c0bb115e2..1f669e98c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -11,10 +11,10 @@ description = "A tool to submit NPoS election solutions for substrate based chai [dependencies] codec = { package = "parity-scale-codec", version = "3.0.0" } -scale-info = { package = "scale-info", version = "2.10.0" } +scale-info = { package = "scale-info", version = "2.11.1" } clap = { version = "4.5", features = ["derive", "env"] } tracing-subscriber = { version = "0.3.18", features = ["env-filter"] } -jsonrpsee = { version = "0.20", features = ["ws-client"] } +jsonrpsee = { version = "0.22.3", features = ["ws-client"] } log = "0.4" serde = "1.0" serde_json = "1.0" @@ -24,15 +24,15 @@ tokio = { version = "1.36", features = ["macros", "rt-multi-thread", "sync", "si pin-project-lite = "0.2" # subxt -scale-value = "0.13" -subxt = { version = "0.33", features = ["substrate-compat"] } +scale-value = "0.14.1" +subxt = { version = "0.35.1", features = ["substrate-compat"] } # polkadot-sdk -frame-election-provider-support = "26.0.0" -pallet-election-provider-multi-phase = "25.0.0" -sp-npos-elections = "24.0.0" -frame-support = "26.0.0" -sp-runtime = "29.0.0" +frame-election-provider-support = "31.0.0" +pallet-election-provider-multi-phase = "30.0.0" +sp-npos-elections = "29.0.0" +frame-support = "31.0.0" +sp-runtime = "34.0.0" # prometheus prometheus = "0.13" @@ -42,5 +42,5 @@ once_cell = "1.19" [dev-dependencies] anyhow = "1" assert_cmd = "2.0" -sp-storage = "17.0.0" +sp-storage = "20.0.0" regex = "1" diff --git a/artifacts/metadata.scale b/artifacts/metadata.scale index 802b6f2d22672a8ecc568e7a38b9033a684550d6..471d8c32eca55bcc78733a17361ec9c7dca88fd0 100644 GIT binary patch literal 87666 zcmeFa4`7_fbssnbdgdD1$Vl03;xjF-SrLC{eMP-No() zV9mwuYQJ5QaIK4!vs$^auTsvwSgqCCiPc&cxv|^0XI-tU)r;<|#=6R>)mV4YCAwHW ztF;>IYG16@YVP;mo0;$X_74Oq)+N1`iG}^TOXd-LYK&7f6$%bmNFQmH}Z zDK+Thr&8(6SlGyy>dj!Z)ZA*c>e;zcsot)&j+L*wR-vM&{r9$~-{oI-?OCNV_&TMA z@!wr)Bs0?}R;xiPzgnyoYo#C@X>B!vaAM(Nt699MT3iq5`(ZuY-hb`1Qlow9+YaZ8 zt)e$}SlZIV^x;}F2!^#SQ`&C^VbDAul;ee?Yt8!mgIc_3WQ}?s(Fst-(vxe=;%1N! zx58GiX}djETdSu>PSh~~ow0=kiyl=YdZb1#GFmDqJzlEU!uDp+3^Uq46|5a0RH3-h zte>xxJBzbndu^>!ssy!Gvi@)x9gOODcS`v{t5W0m?~s~MYG_<#GZUDc3qfUlqZN+J z-~9P&M{ng4OdermE#Ina1`|5dzJ5yS2|!X`%ZHWs+afiYnKA=!HyZV3%P&{LMzK}e zm|Y5*^XB)FYB3BwZ$)QSMvvC&&COyptGyMav-L*MEVe53nk^aMEY>i9dUK0wsHyZ! zqgmOkv?}L=Jk!AN(Q6M}-$gwjf&rywKzpD+{F@!7;WdFl3}9?Ms0GbRX|!Bf55m^O zJpVa{nNoUWVyPLNl6q-1qvwxc76ME}xKLZK)PiGWrKa`REkS9fJ$<7ZQsb_|4yuDj zmxE$;2Q^b_fP;8SAKw75LJ_ z)%tokuV-i|5e9BlYO&uWP9CET}o;=_;dor3irPcUxJ8d)#OZ^%gUMg;dN~bfo z1z5l;eWH$U)k?qWleT|aNZ=59ROmFTEt%?(5)s#;?gZ6upr`y=5G-lwRGmr3C?b2j zUT#-|g=VwfBw8P-)XKp{K-QiHNd#0pqd&~d>G<54{PC0XrxzFU3#U$3TO0BZl-URX{j}&XQdh19tz$B|dHF>&ru2#QLn+wCB1)ev06SE{N=j>@vDX%&Z z!;qSde|WTBEvsE>>O{S@aIq0!Nm1`;nK}2< z3?MUp8fa;*0YE_RpFD4VYc)MzIbR8}ZVzw$e9)}Zq?hA(IJ(j-*1}>*mbPgwJ-J9L z`BYFWZ2$zN#!l21i(5gHh+rfBxtmS%<+Q8~LZ6Isv0gvdZs5D|!^QH+W(6x1FpSEq zdg_c$Oz@!MRZYD0RIphDu50T+W%fkfPDBWN&aTw!Amc4s-^_-A)DfOfPu;HLGrLPo zM7Z))L3g1pt)>zf@Kjm%!pUwmzHo7)*v76=R&P=hN9xUHyFpk}Z>9;3C?}()Pu1%! zOz2z{^MUG@DOJrR_MK7LG)ETBgH3?pDm^w!J7%R8R!Yn5686#1(^Hm5=POuNE4pKq zdH2oL{J?(Ym+G4hY{Ws?52b;%cD1^dn{n;l1lkVDX+7!=Yop%8mW!q#A(VrB zM>~27tEqG@kHtv~($~YQ^?FqeVZ1evz|>Vr?o z?*ZlCgf3Q#rE}nH;|o}i*qKXPSc|IVjhq z>}YbjS;6S^a=qFn*0K!oDkx|47_DtgTmz%)oXSzq9GGfLFUhRT#23?zN>4VL!TEgf zKF|kPgP}P!_FHp)XnJ9q3%M)*0`?dtv~`GaHRdVkH>YmaE1N`H@#rVt!^FH1t9dMdb1Rq zWJDKoKBIyr9*DrOTFo}`xeef}=o7Xp^>&!Vu0?;V?r(z9k3u}(G;10yVEyFg?Znk}326~s)E$dTdsk=z&n`N!snA~y0NR>uHyhzBKFKWH`w$L&ZaFvY0Al{G z1~QAp_6_;@hU+V>vC;XP?b3!{D%Q}I9~LWRzqnd&w}6uhl?(BP<{LYs;8e8D5l6mI zY+});V_U+zFFvz^Tlc#tYgx!jFW3KD>q^fxmw5gze7UP zbY=NzrRfXD!=4F(3z;vk21F1JU%9bmNUo5Beu(gS-c>!}3#BIpk0ENc2o@l=Qo}%j z*e-B$^USYUh=KA2S^~p>(p=xXOBeXn42zN{+MBCE6NC)>fGwn3^=;peG@;a@rA!+Z zfRy(|5LGjf-N`Hu==WGJ)FaJk(HCOk&vM=ec#ZJhRq%sadsDarh+Q_Ud($%)px}Yo zTh(vU>Q5vR0lrb$>O57|jU*Xxt23rLv?8@(N!1F8$7$~qHm*LXpWewHdFW6_v!hCV zIB6`9jRDHl^jxD+-Ewl3hnZ8e~v)uWq z0BgFO_7?QL*jlI1>X%GVw^ zu>atpL$>tOw6A`0Tzv-Jep)?3)zs&xER#{c6&Dh`E+GLmAtZbeRt`^n37==wm+8al zY4zK9`m*{8{yVL{+EZvAJ_5;vW#;Ut$YP#0KVs^?%4{45rv)3{3_4}EoVpjv3Gu4n zVo<{VR;C>VsBLb!4J$VdEiS(Sp)ubm!WQ9SF6i&LF|l~xUk+NlYk;`1u!z37f@N>F z2CJkAZmw3*bYv5FN9a?dIiH#*DG};E{fU7-;FVq55QCdy@&Fqx2f5qrXL;JG!DI6* zQv$rsRtAT!(EXa>9e@~gxi0Kw%a>;C9xiLSKwTDS^9PR)FxXEs#&s`)54c@98CO$?t4w!*Jy-?VTesH{bLL;P!EknZ~|e~+zu zt#T21f&7@(8FUZL42+l>Gz(^E_;SsSVSKg$Um#-PspzA!;0jW0vqcz6$W+pLP949s>SP_OV7GHiog$*Sg(GX7 zOfc0-P#&d$H**SGlp#}~>5g^Rabdoj7*l-G?BI zViXQk{EQ)s7A&t%Qm_0*wOGOyE_?&^wjipl1ueVwvxLRlba1gqb_AhdA~#;EHQ3Bq z^M!?ii6*21k`|dOP(7>G8uB!&J%E4*?(v-__O?wJMIq<$Y>9ChBpu}Z(;-v~Hv~%> zq-8)tD3)J)stVYws#|&2MA^2{%@*H0ep(wbfyaUM0u6LM@Fy&}tU^$3ZteAj`!TSc zICb)5)MHK^)6jPa5w=hyYC~HPi5-TR*OFpl>5u1#Oxakn36y_}mLQ=VYjUGlTLjz)hOCB06tPNHORz4#2<2_FfgQ3AeFDNWY`8o$vygMDFbDoAJPt&Q zfrFotwJhgdrXlFJc-X)h%$~(s%ZCu-jx5MT8Z&$u3IsAm&?7|Tp2pcpMt!}f!5teg z_~qzP{*xX(!5g^F3?C(H56*kC4Zu^w?$36hNh&^c=w!PE6&zxh(D&2Ye23E(@cCAd zhfdd;(jB#DoP93rUBR4m9M#VL|BVcpP9lM9wYVB|OJiZPLmK=2^wGp;VYS{0hnMkR z63mR)qW-W~t@#D8zw>n{^dJB%j`~{KAV+^aeXOj%fnzvq4{Nk~o8QnVQhJ!$|9veT z=*hK8Gh}fIHNLLR*Gf-?SoV?~R^-VS+htU7f<;-!2Nid3SR2tknnTE#9yNsS( zmRiTqI}HC5u#yJ(8YmZA{3LDh^go>VK&hEw9f=O5fIo;$89fd0p~A;ha!9AXMRMl& zxcW95sFGNo1W6JJ64G$^k(pe=ffjgyJj3#3p66;1&}dwEw^Rk8nh#X9M}=EX-6XFe z`+uj$)Q-tfSGaTnq;iCp;(QR6niU+w!rtzsZ`q&LUg=w~HQ{V8>*GIrfmpLz@*%Ui!)s$G9$~! zD3pYJ$US+Se?Z&d55K8rVL5>ab&|@=#18M)r?_LwC9(a)`}`Rw;j6($5jK=2?c!L} zIP%!2lOPFxfjy?Owv}QI6#tAwB*=rr8x08vw-Gs(1TqGUC`_teri<&uVMK(dMT#R3 za92y^Y`j{nLvSP3#BGWti7W6nTCGk(gAg==ZDAwnLTKJvl-_vEYXASYn7vFh9XL)3 zYZK-TxHl?>MKVu6WKGaafTJ{?Pu?5qILO_#W8QIBQl4lun?YfPyC&lcfR+SKFpI&R3OnL7%ptVY}(TQGDv z+T$T*%ky`1Z>BIXd{%?+z~};lT%*n=Hu@e)9DOg+Z;uxQC&^)CY-40uNQ0W8{@TrE zbHCVP?9%pK;J0~h&p>EwpaP{EFC8MD$4-bHfx*Q5aWF?`MaHFTzMbzjouRp_Epa;jfqeJ{~WpUzw*b)8AKns7X9u zfxm;;9H`cn^7;zAzKUMs`D%JSD6jX*>#Om4AHBx&etHda3VnS*Uhl{2gY+8DH_&T1 zl+f!rd3^(3FVJf|AEVbp^7^>EK8Dvf(`!7Rrq|>xgs*Rt*QfFNEWO5akzS|ebs(>c zcwM2_c;2MfIKHN@?~vDzMEd-`5t=xW_kS~d3_IFe}rD+ z`F?s0Pb6ymWAgfbyncXQ9!@HTK~E zA;LafPs3JE=$)OOWlt3^SOj?9vVL4cm~)3Ak8ABM_Yxtj+P7kYR@M8c^ z&*~nhn`6u3;^B?EgD9OQhm}^nRjl?nm$bk=qxA<#gpE$dvi?Hy9CR;?yUz&}&uaBN zfq};t63}P5pvUS!%@_40okK<<;>e7gK*WTY$!76F-k#Gvq4noTGK@|5jGGCZ!W=pT zUzwnJL=J68JRgJYp$1|8Nv-?N+4QHE`REVovhB!OcicwLR`Hzr$_lns>&#&7Wou?@ z;l15T3VA3DwIH9*fg!Rm!9$bd9&AIbkn_I9JM|jeCj8?#UaLdiGzzin+d+lzNU%7q zBjJJ100nEb4e~Ary9-VVagqglBZ&dmTmu!kScTD#beNpK0KJMfPT1v4SDOJ2R?cE0 z#wJHSz;Z|Ltz=tol5w>rCsriC0uVlnp=wa{w0>MSinU5f zjKXAzmqTp>I5h&RJE6oN5LN>W#U6CgnG#^RPy||n2uGiQ63&tVKE&yrv9(~Fa@6r>9HI30;5np&}}E9W1M_YX>jQM<#%WRKn?Pi-Q2>ur$r&AEP- zI1vO8vUSo=xQpO~Na&yRMd4QDb(LFOr_HBEF7^2}RHwqU~vP~hVNQ|C(Akvsx-E!A5fI^L$>U$HAO2Cc;$ujUU4kInYm>g zg|kHc(86Gv#WXRkW0U}~2CE`AuU7rb)B+i!-&;6>UxyBD%XtcCe@J@VOWneH_LLl{ z5*XwwZ9NUXsz0k~B?2_K+cqlsjY_#3)Zl$tsiPF?AB_R&Vbx@uJqRzLC&$a`MPoBL?HB zQZGYz9ePB44}S(nfGee5(R>xcoMKF}hhwo^#@Y=hxs^G2NXJF+Nh^+%`B*=qM_|5& zm!gj9pyd%ZE_>(`mQ-`~Ma<1A1Nk=L>JL9Z)6aF+CU3^TQ_{S-cG3gj=F-fylV@Rp zSFh^f#YVk)u2`>fzZil0+!%Q}9HEkP0lZ%KPc^^|u)XMn4$uo811;vI$k z*_6m(NJe`nplTCjvkckg1O2^9#+Si}i;z&Dp?UZSMrZ3;5__`;jd|(a1D6k|D|$dV z8MjAg=#b)*-Yt6f05nc~0e3L=L&^(y)@Q@V`EHg)jgW-J+LcZ&%mzg9$2hM?Hx$>^!!Oc z;KrxZmM}a_h(4%|pAhzd*a^bSoah~`tz*~)Topr7Ge@)ji5s(Ta+TbC6EBRA>H#x) z?oxY@3E8d>aFTs}2HoQbEJptzi&nl;9@itw0q(@XsWxuR-3t;|Ab2?3GmnjAqlXq8O~k^is$n7#rdE#eJctMOGOwp z((q$bu=rqT(~+Or+(0ICv9y^!f9?2*faK$Ie4?0{t8HP(BPVc>3>JOEfW9l)8czAL zKI{o$>-2Tk&OqFOyrcXj!&BjaJ^G$D{1S?ASyu}HdT3Z3b6t%du9rcTI6xde4X34tpdSAx<8wB2GAW6drG>lMg+B>CXJivM$MxJyHj#XXg=`2gpr zVSqb7({p7~Gf7e>0S=z?{t7urwVPXX>*u%w-6znOASptn9J!@lDS>mUF>`1Nk10Ou zv^Fky?$cQo8cgdyPF4w z%^dshGY&;SgLoDxJwA@%$a?UUflw)X6OwM7!r8Vav@tiJ<7ASql%bWn+o&as`>f4wz#p`U60^?v<&zXMg> z)`zO5cvD(5G)8v!F%Tt0ExJKU_cUSDgC>Y0{nJ>>5ecfZw!!NhlZY?%?D*j=S~+1Q zObXh#v~+k2Dit*1Nj}!?5cDRbko}1=+ zNDh~+|sseK*4iTQ#Vyw>Hc|=a2^RCAa-P7If}o zmE=A)^X_VWwOA#Qk1zUr;23dX08-K&ZpOynXT*yz#$q~lxy>HCT%t@Rp3E+nC`;Bz zKABx^$Mut6n_cd8ew}Q~>~cSpwvsKIUG5ENIoXfd<=*gqlD%S=YYz-(A==?i<$9jA zlb-_#gfL2>pgiPQUM`-%y$8_s8gWN`5~;zsV5^ zHz~?-@X%XnI(F_N!QzH zyakpX?!u67H9vnR;`u{KhV|KjH0kj3w@AQ(pzPYvne;8d-fdV}=dXpM2i>=fUaIsh z*LmQhczIptOW^L7DG!k9$@5c(4!Ms&6Q3XGYalO%TeT8GOqI@oD<7Ssr^E6*JiGH8qN>&0%0q0iHz2RmONRO>*wx86`85cl)EwQS zefARYXs;I-Jc^yug`iT;CHA~$yZ5|j0XaD4^Ow-2Pk#6FKu2e1FZ3s4+;){!0S`qS zT2O2%g!!Vgol!m0ZqW7n{HDx8_~d||KFvjDUZBJ;a$pm>lv8!}o&gs+iu*h7=i*ph zc)R2c`2sCi6XoE!0e!|OLrKB|A0DT>A$gkL=Ld8&I9vA3`0DZS`moF?w*l z$;8v(OQIBF;|X9TIYeGtbPvHY0AxT*HZpo zUnV173E*q9S7nOqd zVDQi+Ct%t+Ch-oyE+^;YrUv7KR?Dle-7rT=!iZq4t|NTQupX!Aa(r3ldpP0f8m}J4 z#!`M|K=+1d2h)S?%-%G@Nztot%ZTQ$j72_Z&EXSlkcFR6&>Eu);(VTzreh7jma^?_|^hGu?C|B zYqi#DbgtPfZeg>IS(b3d!llz5x;6%<>9dfC#<+O@^&a3b=K1~C)48|2=sYS%{K&)5 z?GwX+_;-0Pz_SR>wr>2aKpnn3R)H!9EY1$#&KAA6Y*2R&SE)U{8lPa(rF>={&7_G&O2H3+c;hoyrO$S*3!9&?rZa+LhETH%NZy|od= zZc}Os2UT_6Lg3AiT)L6W>AvI%`qiq55i{KYu-9)E-kUm!=zSv5A#YB`7r0!NTsB|lC9hc!f zO#U#ifgZIDfoH(8j)UO6S*T)%UjwFhvjwc!+O9 zguh}FR~egXR4qzfbd3!foR~*&g;H08&=5}JszJ4PFm5xxda%o8OjW@T_6^#jRUahM zAj28%Y7U>E8Hd%Jrv%3ID?!o`L1Kqj2%ANrFtB6eJM#QQmoB8#1boZjlups&;EFz= zAmMNbGul6=F&#mZq%kg{v)BFjAN0Bd4weZCoh0mic=UuEjN*30GC8>+j%m#t#sQFV zIGG0Un*?G8R0b%e77t2O)8#rMk_36|6_~;D)I2{f$P$Cw_$pOb67`N<972wi>S#JX1pvr*$WRmh!= z7$A<2ac)d|Mdv(XtD}}ZK&!i8Q|g$Tk!*}Q(ImElD!C$HP2psjX_k)Q%_#>)e?0n< z4nD~T4y58GJ?R=#c9}Ds^#X6jFfOiu`|0GKO+9rEM5{BWf>MALXSo@I{?TsPU3EZB z-P}g#7EABAZUS#nsCaZrGsdq-g&-GCUJv^QDQK@<8xy3-UEolh277mV3e98OVaU)%%k-nBio#LNlp#0QPosC}9nhKpgVyB$qB_gCMeEGoiOM!`ld_Nnw^2$@TZPvqRU(G$cnLnZw< z;wXY0p9^~M#8E4S8D4e;M2Yq)MNL=@j3AQkjrnbm_~Ys*375%c)K9>d2@=S_@j-Rk zZGt41BsV|E(>D+578#LZ8)O1eko#}5d;E1VK_t>P;%Xqwr`xH4Ucv`To$b|drwTOs z=d1ClVlN;Qs@2Z4yR*HtyP#L&aq<`K?zT?tuGp#FRcN+@LABYd!GzR|Ij{86?(T43 zc4&8>d}Fk`Nvlm6#cstuL!tQ3I^FBh=@5*Y0!XmJc~cQL0-?|uzdztqG~TzVN%B-Z zUI{lTj{>Q2hV>kSLV}y%qDfz&mdsvoYrS19yU^@EuCnL^imPzMpFq@b-1{uS(kgnY z8dC`3KaZRQ>Pj_1x+r=+j>z(VNsVKE&&g*$2_WhSJYZs%DxZ{KX$G?VRjke$5rCD- zxA#_8f2y~-nsw^xc%-gg-CJG#X*F-ucNj`b=U9hO@4#_7mJ@W?I|kKOLWga4>#$T6 zy2hP@J$;S0Ieh4LF}~Zf>gy(~yCx+j7&Z9=toSrcan0@=)OSUP8SG>X!+?B7GrSno zV5iP*aw3BK&c7JhEWR(2PDkMD8++p18wLz@53!uP2i1ozdE|Ew$^phbgV6!TM=rUQ zZv5Tv@Hc&&F1#|e(NPh3oSOjkP!&hG90#R?`orBQBr_{54Xz|uRMRWCzC)p-%a`~m zPD(!JfQl(_qg}?0%^eswwqCDsBP(9^bYL8Z1O;InRFi-wdK(0K@bh9f65_co&`@d&T6jB#E~Vf(%8%rQ4Db8EAW0Q6BEqMwg{xxZ8@-wQoPv(~2?yy9-D9BBO#?UgYad))-Tc zKna!d&YDYj)&t$2?FD@gMJ;Zk>7+(yqItNdiRSZeIup`)UlUC8#pmp6R0zIrGfN2K$(2Vj~?RoeHMY2L|2U`-HwuE*g^7 zqsxfX37(E?(B13fwTw7j&9P?J-3}XZ9(*k$4jn@6(1;VmhPC4?Cha)?2^w(j*r5Rj zJ~V^62fOSr$2iO1XM37swx^ulwwH{xz4UH!r_|GFXhFnxGPLw*^a28Cb`k0rY;u%) z!yaMp!0ghyd24pr0nu+~cIn;tP7!iBSuaSMHnKL(uVD@1jgXV)^q%i+C!@DbCD_iU z^7+?eQvp{PC!30_*G^+f^6gHnC|xsctSH^{^TV~GL>#G~A!Yn9!jiDb$AfmAJb@Zx zbqG3FpZ8a)Nzuuyv9>?&|4X(hBVlg!ll6X5ElHc!oK7wtZ5)sF5X^j)W${WxJY0#6 zsROa2rX7*pRdy`W7!nM!(?>!niMQFWuWSi72ZMY<&6t6jfxF*a9#c5pu9jqdbPl!m z!uTn*$kw`KZ8ffDa3qZ*yRcZb^N?`RzM2fcv<%JpE#kPETYP5|-l94#mGa=Dz!M}qtb_Z?c~|}r zj1$idW|B8Fre52~^Xw%Xd3N^2&W$|J6Vjd=R4-gI2A(rUp66pmo)^1tu&qtx8GOo9 z(A(EztKSy+TD~4hbI1#CfH~x)ggFGux-;S2!(tA38R&&M9fF_T{B63_0$qLFC3pD`m=X&XC6tk$KPFkT$oxe4PXsFubxdeK~< z-o|Jnq{t+|FfkcsJ@Y|Cb($>4+OasZ|A+k%LEamF3Cut zJ){yRf!Hp(xP2lq#jjzS=xS&OMAF9~(cKi;BH{%2I?NDVjamytVvt>Qyq)o(tH~V< z`L#?Ay=Tvw96EdKZEbjJP#e)K>AcY?c<;!01B-eaLqqcIP7Dq4X*4#5#0>m-nipcQ zby^l;ueyv1J-P8;AbUb@n)-`mPv{NdCD;@0hT>+gYO4PBgsuMegr2;$iyibbCB&AS zvmzu&y0-x#_L;FABtGhEHi&&E7K6lR{fq^%uZ*1_@!1<`B1m-fXS5Ey)JyPzVPH3I zf)1n*s;o-_Od1Gwd;JXrm&4)UVrdiEf!HUVJ@b?9TIK@lY3Mz4fwjx04c8Fq4(ns| z9(P!~-Ve$(*2_G+$2Hcj_ZY+;?=_<{CNFj#=oNcSU4f?fCbd#m;-{Cs!kboC5t8tD zbERQHDMqAuK|%Vc5ZRL`#Qff#txZT^J-UQ~toQc* zpf|aK3p}NBHhC6QD%N6spa za+$@I+`w8HT?#L{LYf+g(5m;)6@}Oc_ImngG>9329^M@|5>A=BrsJWFPq_!)$WatL zwZA7I-H`(`+kyj|ABUaX=jnT6V=$m(eVP;3DIhZ;DR)?19U#j1oH~d3k`kA1ZQ#l;b!Xy>jv;k`xiu-~L^3$zwt=;8ss%58 z87A9h5y-L|(J`+heJs1ZhBM;y8p3G`E~p{yXbtOW3M-v=35KGR3}mQ>=em2b;OS|j ztVt`FpK+?eIUahwb%CXOyi~`%%#=xOELWOb)a+S6XT3!jN}x#}BU&Dn#EHi|jq5J( z{>NPz_EJOGIVl1>NK6K|_$?_=H}}TFBrjis49d7R!ARi9Suq6g@VW}oYraI-JMQTZ zcEZ|;VQ`kymp0N&G*H~>?HH$&M8o7~bzARIW_gtGJ)#&zxE++iY@PP>N*Bx=JzJgi zIN0U|z7G;w@7?)TK@-_WhY_K%Yy--UTxjC@ig{89p9%JyLRK2w%uxe)tax7LNc{p$ z9*R6JSDVs@A?j(faLiVvl&=$uY%001aP0v%0@(=-E3osW&992cHKuucQ#!G_T_LyC zQF9o9ufqyh_#FOXbHMHImbuVJ*SR}tPa#qcj-X5__$b1?sXIF7qEV#iXU18K=5yR$ zC|m~9As;)S_Hx7=M{-*{P(XBIG!@*fVd6%fVkBp+Ap}3WS|YZ3>jLGpr}*VaYD=N! zZ0gq~P(PPb(gnkvavRjmEy6`k&<(?tI(#%K)+YSf(sSH#vO_Z<3TjT>0)7e~L1Fj7 z75T$U2BKx}A1+9?xsHh+$b4HWP$$H3z;$^bW)LoWsLLc0A0bjrE#Qh}&_osiiLwrk zi;xRu90iIt56J7B4YZK#8tHS9N&qSB7IB9bcgu=!P9wI@ce4p3KzL!6U+%nf}+`IkC0 zh`LlWIS4qDiX?rr)JfZ$`F!UzbMw@xoH^vnLld1tc-RbpozTHWn z-!}3+fditc$QSi)YSvTt^lo(-LbYlT8!l$K-O34)76go3xy>CZ#9Zn6DuJJ7Obb z^o*GXL`~6#-%1$MwAQ(~nCpAJv=#UMOH zU3H8V!J8l=#7m;Camw^yLi~Kd>ykeo0MWx6^HW}r9J6OA8N&kQMnuGiDD5)Q?Ik98 zRS)sn9nYwTX_4XSvzNTe9x}`9;n*_!JQQ!)un};{rH+kl-opiRU49`J`Q1d?@b>FD zB&CeKpp-S(&+%W%+f%00AQZ8f_IPCMNz?>WgzE^gu!=>?d5e6Qkh&UR&yNJ^ln2#5bWu?8@kuxdx1ut`kl9mYD2VW{zkgy87 z|JDvtM?XsR^95KtE}4FwqjY{?`A81s;wL@s?JQFuTw#E#Ws?;wma{`m97kM+3T_)W zp`GEftqJ%LKIS=Zdjts}S_x-N-~iH^qpzTr^-D20M#2dq!!-1aO+-Sn4oZ;YknoUJ zPhK(_(t?F2VyoyWTAZ2m_>*vfpl0#>%#IO55jAWo!x&<8dXfS^VX1KnER8ndqDsj+ zn&Hhs^cTDxW*nrQ zFeuN`1{mPl>8iQJl!;QaAnU~8B2vJX0zK?oQlXrZ!#ZM6N}AxT$+u2tX|ydK)UpsnGN1C%=MRIv$_=x4|EY5EalUK zEDDjIYUPkY9GjeccWV=3rK|&yo3(c@m-&*`gm}OOSti7B5F!^$Bv+2NfMg7@jt9K^ zq9@lerEoxoDvHpy??NREax*d^aCdA6e4}vCqkK?-B;n%k)(}r5%hGO(L{OXAkH$jk z67)0BBxG%HcuL|2K&hU~>Wj>CVeX7{BN1R=FErQGpdGMWYsGg~O-NdA6eU}rndRJ) zd~et)?uet&5W@c_%}-W7=tHnVzJ^2|dvUJ1C=DRI%W-6OHY)y*_eC0N$TS&C3&=Uu zklIZqYZD*%VkMY4S-L>#2hYqxvk3A1<0p^Y8k5T%dMKUP1)5Z!v(wy;tAiBFz^-&$ z?kkeQ1j+t0wv4i$bD@v4rno*RIONR+5#4IB2H6v#KBn3^Kik zZh;lBE13*|m>{#);x8hT<)&#Y&`IV*<5h3+K2G>xmC5QBMj7T5Yba|#Lu%y^UPrQr znd^&h_7>^GHB)MI%q-uQLi==+G23*_`LI2&Xc^ z-tV1>KVf4w(F*kxk* zlg0?Uh0La#6R^D?*f=TwD`I|zeIifxi98UFIG#s28lbUhEOQYXu@Swje^W=LDKauy zo6Ib?6SGX2R`&F7WmZ~gA^V>gv!=O?6`bryJSN!I@b8NLElf!Z>ylMrl0Ua87UbhA zQ^OOHVSkKjHY=qJ%*+|$Zd!Z(u}vhKL@Y>jh4cgT3kgKH??>IU!1q@BOljfpZ^S(de0$up z!1rVBS>St{dlvXc-Lt@Vg?kqGe%w6^d_Uoy1->!&Ebv`vpRW`6{*rqZ_)7()9zW|JLsMTzC-R=;Cq*SzFy#)anAzZ4enXsyU{%hd_U`+1-@DLEbz^_ zXMyjqdlvYPxMzWH-aQL^3-SuOdlvYPx@Up!n0prZe$G7$eD8730^g#0 z7Wj_4XMyj8dlvXk+UIG3Z^=Cid^fvif$x-i7WkIkv%t6Fo&~3Zce{HQ_|Cd#f$taGv%r^k&jMe;JqvtA_bl+Ox@Uo} zq{c0O768jpfj}5U1p?w)R3I>}M+E}pMpPhBR-ys{^L2gHlhN7^p2=NAZ9u)|r_eBK)>HSfGK>90Dfk67-L?F!81^U0_{ApKNSAdvoAR3MQ4 zdQ>2gemW`;NFRy{1k%3~6$qq%H!2WFKNA%Qqz}6Svkm=sQGr1E8&QEk`bbnDkbX8Q z5J>-CR3MQ4W>g@Mel98yNIxGH2&8{MDiBEjfh#Z@(r-lt0_hi`0)g}&Mg;=te;*YH zq+g5*1ky*N0)g~@hzbPKe-sr6q+f~(1k%S`f!Uh=$EZLc{l`&(K>FpVKp=fQDiBEj zNmL+^{!dYXK>FKJfk661R3MQ4&ryLu`oGwMYbRxo`btzFkUkj|2&DfsDiBD2Cn^v~ zzZw+?q)$Z!0_p!66$qsNEGiI4pNM^xsDX0_hK;0)h0^s6Zh74^e?Y`lkq{ z-rw9YBj%1xwhkcntk_FL7{w!7To6$>rP;QjuI}GbR$78Bs1!`F*#s6KWPc^22}K(6 z;k3vlaHH+tin$*xmg6ipBX(zF``MRDZ!xYHF(-{gK)C5Cwr8GP?S1!XI8tPXx-{#gY#k^?s!GRH~TGRl| zQ?NCv8vx_L!IYZo+3N^<+l;VO@6qP-$dZ6YD`J9<+arvd@&b|VOcfjIqx z%0FC$Rh_(KJY^hghzn0?T~f<6mU;rYKA1Y!x`tPo3pKjd{ftt$96fXB_0=O0EU@!)u|k@nuB zQ-j_udKxoG71SN6G@L=UPDbk_#3 zl-eB)E-_oP-wk+@V* zym@%RfDwL0BQ7XXOGQq!E5&s>ayBk8eJhMtaa0(b=RPEqJX}JtQWkBo(&K2OQCx@D zibbKiJ3&5oCdlVbA^^ib4EfwcM1ymx52gAgL7RU!PAeOy>Jkl=;~sMAsEl5;NsZtH zi~~mI)EVuaP`a>A-{hO-qx>2n1D>5*@)~*RFYqt*5p?gR?@4_qrS4DlOaC@ms#mMT zJ1FJa=n_&uR7&^^v^wJwq1n=pC3x)p-8}Yw^avjNK;Q9BEn`b7x8V@WIi0b)P&Vr# zE~o4_H$-q2Ebx2`i`d);IAV&9m9ZoqOaSpfHxLg95TEJ`!~`Qa%@OGmsZqbtXcbV zn^q@H*Oe;R$72Kf14vU&T&O*r^(86cp+lUN5GfdumJo2vn~efkgGGkMLK*PY3aqLVCHDnKYYng0gA5iw+)nme_p1>b3{a6aV3r{9Kd7}FhstX4D zR9_5W$P?e%Z!}VOi2MY;vfP4oH3bv#owOdHoLu=6h}_^ z%WXw32Gp$0%*)CK-Ow3S_jZ=?g&yS3bF>;l7#ad{uo1d4x@k($xz(P&L#Z0YuJ>TP z_+Zo(eOs|vCmk-JGLD#mT|T6@!58#Kr&{hA(%XZBYvMFrnJb1~9C&;{T}2axlB@f| zwb(fa3{SVh3 zQQVU!Dsp~}n0I;2wP#}Zrs_8gi5owpO*0K#Efyz%#q@A)NIwz-DH79#GLss?!{CM zbvNqpyhk!&S2|n698eB+lQ-SIP{$HfztBzf3qtkB6ZN38b%p|jcuK3|=Dze~^8zyu zmJHaq{U6PA9xmED(w2_KzJdJ(mhaY%z8e8&Y{F%iR63Y7$lA;(X}zHJxG^P=8gm*W z_A;552W}oxx6vv?!P&mU$|6TK-2NM~yQY2o#%z|(VRywvId*g=ycD->fP%c525^6Z zw_Vb1?50W$1bz9&Ou)IvV4@+7dox5BV9G^SZ!Xaz$PbAwkkl0iF^D~aYn0BUfy|?r z4CITcujBSr6}8-}0bJsvSCTF?{$@}u*&$-dv8ADq2Gaox} zxj%utk8~sNBj^)!{jo&7N4oe5j$KgefxduE6~nDs3D+fg)mRUHQYbhLl3XPhc7xlh z%sQg1_2HLfC!}Tn;10XE2y=r|T1*PfSXVSrGpkz=H}cJ36Wj@NXc_-e++hi633k0w zpQ71-n)2X~dWa?i&ky%y8AnYt7uff4(8h*or9EOdbT0w)r9PX$>cidGe^{{pdG0m? z=KY1l7oYF`f~sOB9^E0DvbbzXdDC$}1rp&2odI>+zKHcvE9o+rVgzD$kNd-RwTHf@bF<#?Mmmuiec^yCJp3Q`Zx{sT}O zV%lqr0%kx>dYnopP?c=KijeSJxiJg-s2iBYN+R^T53Q&Kh!I@*reOjpp|)9C%bcWF|tn@ zvWC+5+>pi{shE7v@;YBt>WXCcLSk6YcMt1%Kn3>pVo#uUy6L@?=;g)kUS5=5ULNA` z1h|Kl$5|!}vQVr-x#kb|iCJTDz^yX6|8tTK(ubGY;RXO4dv}0)b@djk=%Zq4h4p3X z-E>n3YQOatz=iN;Wo-*i0+WkDaSeC=ByS?bs3lwq3|c6$#zTlvwnM7RnhpE}kd2u! zeHaYkJ#^47XSur(<{N{=&V!R>a*>$A8Trc?D4&r}(cU9I5--b0UrAIRk5?Y=s{Cp% zv@CLtc{<4v$%B9d$t8ph4N-95)ghIlzvF86u3qS6hfK21YNc(K4_}efucQ$ z>g00b@EP+tG5EYn5O_5U^(&F8KZiNG|hauEg^Yqe6C4c2rq5qaWxR(zieSwn2l`FL`|p! zA!64so0^EN`7FF(Rs&Zc4qLQ6PKa%R?j3u2;uISi_!6?70)bP&C{cjFttkN=Juj0! ztkl)L1~$S`K`2LMR=}>%gjb^8`urEOid%J02uh7E&T^Z|THCk$J;Y4~I;{VE4BcK?Oo|@5PY}=VS3+os! zgX#Ud)It0jz~c>xUJiEmLKQ)AbGtIz_}`7R&|SD_JmtuMN7*gOHWdp~Fe>z+v#>sn z8b?2uMpch+)VxJKWxtjfgnZ(MZ1&a85CjW500^!!#%T?SVLTiAKo0`|pJVzZ!y4!@ ztcQ+%^kT96J~(ZGVg=-m_v%;zfeYOTTo42v-vPXo%yu5v+AGyC4sBXbRqQ~h`(wLw z%gAu?0phrT1458dE7Php;sG0Ors+qN!unLPo80IWvKf&@ zi_D#TmJ3rIU! zgWXIF`ZUlgZeAFNWzeSuv1b$2v+>&5uFAzk<>7ec;jYTTF23nKvdp^C%s#SJjjVG1zdaX3`eYZHCoo2^}4{;!i}RU2o%%&3G(^AOBX zH{$oh4;|tvHZ~-rRW(eU(NmxIbk#WTuA-o;qE;I=TS71ceEy=RpEjQd zRU|?qT?X!5Tra;#k>~Oas@c`|Hgf&4N2<3gzUxBk&l_MXrA8`mT zA_@XXK{Hwufx^UjWG}NEq($Su2>WCeZa8r3Lo1*5Z`}w`8~p*WimihPh364wf3F_ zVG2M#FyrN5oHY|bjwjqWeE7W^G4{up7%OTA zC~5dq)kdIcAfhA%<`R75MkSt{R!1@X@A&d$>n0`x!EUM{#h{VMWkisIV{tssjV_Sa zMX1%s5!c|8zC0n~rUcQHC?nletgh7liIXb}hZrv;&{KSxwitIfypD{o%CVesnl{$`^PBmCPj$BsZP+OKt7m~HMmU%ynL4Gw;-s^`#H91(F|Yh z!;CZBvOtPHR_Z!^w{Me8_54N7KU~MeV#MegW28BTd$qq__pzPrtFM{LKk!L{z{d!X zg3d!QUhrTa$)`d3&7fGumm3%%hwr?AV5O)@tv0dBVWrPaFeuCtw51qu1=J7&9nFh@ zzRn9Fhjr?(4<^GzM_uSBVSLGz}16Z4Z5I%Cy!ZvoR#!leNa8Uk1aK7J7;BUm00&~eRO%iQt@1uCF8 zMM7Bk$RWmcjFU-<8VfOwFk)~=E|Ws)T7zVXYNL?C7ljo$lhLmz{#n?N`EA`XYU29|K$~Ffatu%pl!5?pK#&${}lF&G!6ctEW@$Gj7 zVk`v&xh~{<1Zo2AVT$Bvy?dz@U?x|HI$VLvZ#A&ra-Zq5JLuC!mxCa{lL5{|Sb@W( z&#Ds*zhIlSkR0s>#hi~pkYL$JsSg9svNg+gKq3YUL)0SSl9_RC-YDq^mTLw>k?8U5 z7ySYWg1`czP69Lp$~6dM3KGd63Yn|Fs;i@k0O>b-ujpU;rK@Ym(d7T!!(Y>H{ZsRA z;KOhG38mkxUb^DGGy1K+-nijSzxV5n$58O`Ke_R&tM-o}fZ3Yu>c9J{tNAKwCL4qq z>E2WCYrWO%^RxUJ9=xZ0URM53N84^_VvvQ0Skd!&G1AUl28)12FEnBfgcKM+Zu2JL zZH13G`4nl?(8# zzyIWy-|@>Y{OrOa)%nfrz_0$=jhi>%LX$f7uYU6tCkdUwZIE_nmz2uly|ie&<*I(OZ`u{b&jmeCaZ^`uF|;{T}_}Gr#^1|MK5$(C>f$#DzzH@7;g=FSs1f+WVjnGcPYL z7BN`F+s8`>dktNY%S|jVADG60-&*D37t`0M5g{ndDBm%_gwlHoO^6DzP{D+_v79=;lY-cHwJ;F{CgqPXRdOVFIz_PGTP5T65oD~8|&m2f|8 z8yu0&Nfb6@9$gXhi#RZo(HMBp7(2idF>V&m@is(2RuINDY+w!f2v=*aJ6SFxuq9e90i_W84=uDrVE>Rpd*LaF=RB6WW3p0LhiaYDPNnK6xMHOo(QT zclktCu3@M$)T|jmXXmk@F#xjsb1@qzT+Z&Yp!WMaA>y5Y8rf2vI&_T@!LO0ga+Ys`@Z;HNrzyAB)mroacQFt>pG*Ob{QnhGOg}n zb4#>R1lWfPgXI}g#7m4pU;rNg4#k0d7+?97@95f2$;4%(hR0eLU7!taCvz1w~I$UqX2 zAaWL<*qZ#Kg<6PLkFQe14__xMqG1A}@Q#1LkHEol!wqE;i*R<@X7f%?ec!(|5bgtw zq=_rcP^X~18!g4k?l7>BQfxPNY?!iH=d`BpshUXs+y&+)>cWr4M06brlpw`52tZ(c zAN32TPs}fz${#s-VtM7%=_4!0PM*jwFTDHs!ikmq;=+k{uN*Dp)VKYUSTrCi(*Wsn z@Gv7H27L)MS(4>fgLQO65*g1CC_aZB8$gnlMFFy_wh0-H1kofOT$qHkEF78}A)gfj zlNZI9;Q;fe35g&oheNhr+(S$h%V_1+lV|pcLS2YY2ur`b|8wpRY8fse0mOb@pF9YR zgYKv1vd3yT3I$t$5XrILao&rT1EjQQVp)ic6(Z%KKT5+iTb{ z+7!7HdOjpiY-jtVG891RL#$=6%K$Z`BX0qNSdA2J6^#=oGd$2pxQjxQNL~<8mR7&z zsbLyEO$M&#!U$mO2F2=y;ufqOSe*3+>~L5nbZA5f5J0eIiMFVqU4v_9cm=|32cV!b zjTKun5e>E&zy}(`N`v*f>`%yUQ?4Tbtrhe^90;9HCIQ&C_U6T50J>oz>C`VLEm*#}kB!(6y0y@uwLqZc<;pcq2uZ)mxVwC{H_aGW4 z^emEzEh>d`Fbg#MVwUI=u{r4s9J^)V#J>HkyN%#yA%~#|QGt$Gj~24W*Z{E;BABsS zbBkctuwaIyXoAQ$>h&t<8tOCH1wMDZow z3;}r=2PK#dLWWEXbh!#i(3Kk6<@v&DWQkxCSFSPr;kgR*N;v&EWy#@*YS5N|?UJ-2 z%tuSK|JcqR=KMtrjSe@hZD!;f{!z$PL{r?TMXn)mGT$O|80*zy6Ql>k309U+Y4}@2 zAQ5TO{$ea_(oCf7(fpw%S5F+kY`A#Y`|Ff z)6ZceB}Y|KD2WDXGf1wTEnZKw)xo?Jol$_ySU_Q7a*PKPIqt8E;3s=gch@l9_3xUwFZY`T33ESSKnxUvDyxpB9n=MD z(YO4Gt$Le78@q_j#FS&*f{B9df=3b6n?T56us1igEVRW{K^~t4Ui`hVfU!-EFiqX^ zD&9XiX(`cBFXmOiLK>&A0mef!XKrnvCm5AMl6EQch=A)K(-+{5zq*9 z)LbHQgAr5wxsL1;Tz)_!$qzPI!;i4KD96M;xSn9;ZB!Z}-ELdyXIrbXO>EzTPJ?eNe#MlWN+Na-E}2&rxwiy!BcF$%<1o{;VGWsdFylF zj~M=&`8E?`ag)z$Xue_2#X!u?L5RUFNdklE$}BJFRnpIze>!8!YgS%bs7&{#-WS5#1Ie+zD^RkNS5$xIv4GOWh0a! zqzUZ=LHRJ{w;^SP2?XJRyXyB1Dc6jdaf@LOP!6bSR6kuFj z8$4C`IM*XS*sSB+5MG6B8;-C53*~tTBm_M(8O(RP1wiaXZVQdUHToyx2%i`b#Sm}b z9XXINA#%CVu80rAU7J-`bla z|Nodgof-b*Ux9#rFBy=mrb1svo;YIb4$4!gaiR{BIZ=F=8J@*Vcwc9V+w3wv)m%kh zqD*scx#ToXXtz6q)!UrUPK zEIf-qibQL&O4%%{)m;#~XPoVV4YIjuY`<-II+>ghNSK({W=ejB@kg(;^BIAUSpHiVjv2B6P#4hyWR8jdG7;2?#JD-etu zu0YN-3D3YL&rMFT=qPC71&Wq>X(7Be1X8g((==EefB_>65sxuQ%Yjv&z)eIt+C%eJ z3Spx>?=ZYsVR)Nx2_g7lCa<^GH~jY&Ec~~^s(>jfoXt%m3K~{mJich*BsEOq*mR1P&nARd+;G=o1 zW69FmBi01TMu;d%#*tHPK81xWOnQEUXd!w_6XKdGVu@4`M@Ph>cgcd4PEn0-1W|Pdf`$p^L2?shUc!v* zxx9xJxUhgNfUdGIOv%oYFI)YpQ$Lu)3#*_=eJ4gb?=_-*sbxHy-mPiTv6m4?s z%7o*^=)}g^w@_Pti!_HUXHZEU9Kej|A83SZCDcB#VVBpGc0?g(9B!j8>~S_r(6UT% ze5>CU35P~O=g#IxjJE|hD>Qygu<^!lm=M4&z%2t(GPW2(FN^%Lwc(tN`39yJS1|Xv zeV@8wLLvYljbnYn4vl#vSsTbDu@@WhcOg-);pe+Z4H5Z~mb7RzNsBiyj`c?}Bl`eg zQRG&R!?=Y5#nVvl*`sus?j0+Id!56^P6I~BM~+PX!mgOg-vK#FzIlfe5JVj-w%9rZ zR5)`BNDoRHDf8GEC;T-W1d*zcQ(yFt2xZa)Kyb#9JaWO9KJ%`NJojG6=@+&B;PlF2 zPFW>{zJe2LjJsO?1Wq}XO0y`1o!WpMDLUXkaL{9!N*FKjWpiQ01}D}Tq7C=97+&<> zE@`sfPBTn1XjYjKqmYJ>m6=oU2tkscVLAjH{w>~YAbz6=-xx3r(c_PN;$NsY&tWQ5 zQFojb@bMP-+X17LZNi#DDkM=BS(S;~9x&>OC`q^;-T)i7CTUCr3H0FyX}ru2#AGWy zf`8i)=4L<#L38Dzjfgkyn-lY2^sbgY(?-y<;9L1GE(XV>V1p%FYaipuBmskt5G_n7 z33mZmW8ds?I^D(Q%;+66BiWS&_G4_kWMP%q()oG?k|8@uGhZX2&M3;DHoJS;<0cRW z#CX(zW^ROOXzWGWirM&&^#b+p7@Qc~HVr$C5I{5#!(rIJ$!_r27_mh$$Kj0#t*rSl z-Fz2fJGvmYj;gXp^@5MAJn$wBTY1yRaUpy<8GhfOv*cqTX5>)_BKJ67XYFFmr23RGoGq`rwDFd3V?+^kRo5CDf6QX@0NKB(G*!DIy( zx4Lh{j9hr$7=F&GKQ`2B29FKlJr)p%42H>N&kY z6I6#q$1eQN3z+k;$sqOOVca<$p1mz(e{S21@;-?pKOBAFrFDty-B`|~NtQ#lGJ}t&_iDrhsH3%LG6JH#Gk+yDgDKa}W41pIm)*Q4;p6kMbam`*b zp4o+2-%$=9=H$rxFQ)mivKO7htdkW8@@RYo72tMAp18KnLx;$R0^3^N=yMR1VL&0e z1vxCTGY_3GUayoZ?YBx4?Z^Bb$Hf8O=x;MK%v+lzW`Dfj=Ydy;570*RmGC?x1Akrj0?t ztReMvZ^OR{D+?a_1d}~5lO?xk?{7o{3OzJTs&}n*N9u+YU0ER3!b`xuhya3!MQg~t zAQ4RH>O7rp^9i#Y7|>qKe)J|`fc+#)Ti(Ed{_aS%Q{?r?JPiNmF}fmBE(%$Akwq6>q>F;P2&CXZ3Mq8q?y_*8 zix`rHzzYWwkfFc-Ip^N*zR`^1AVC|dl{D}BzI)HT_uO;NJ?DSU?VXl4AXfAthR}I~ zBachBRC=L{hBv1%J>!8Fk6aT+*a6vvQGJD?(>L)THXdg4(^jcM!_aC#h4Z;H@5S8r zX4>O>Uzl02_3+A--<&yqD^+fDDOotJ>lPNSZ2}nf){aGNH@EMCxeN`;7YzaC(AJI> zlwuppz)}KZ+q#e_-mcI3{A9uA(20m|7=q8uSwd!(c;T@9R+K+z^?28JWW(Cp+~S85ro5;nAaTT z)*bgpuN(9F#M@-zXVb+FHJVvVlG=ziNc`YW!$qp&&i1JqsV8-^E}jIrI?yRBRt+^`A~ z;qn=99v2s813}O`1u9_%xIyAm64dt#_}YR^dZ6qSfH$V@S-H2eB75(>BG4$Rf$PcB z#|pYbtc(%x*ygrAUl!=_@^Dl|Zet+7D$s*y5i9ye(3>lUB9+r@MZWmx3-cR9ag2I9b-sx!q z2fgpOXwVS#aRQa?@A|5J%mE{~o8fP0_{9XionqXoRCMrkyGHnrnGTbi2J)!0tM3~r zi`c>FYl!3#;2nwF?47p_Wq}h@cX`!I#5Ys1hk{v=t$D8*p;_y`V?$WD zcxb)nx_qBOD=$1-eN$2k=c>;C%sdVifv0-)sfK(j#Z-)aVo&~bdJaqKT+TIXKJ!Jk zjUhAow^ugkf*%nFlLvQ8 zZJ7_RelZiX!I6{L6D75)B`3VhkMxK10B7zRbT@w}H4lr43XCW4N1pl_O0YgL*m@HZ z;2v79jx!URT&u7>J~{ny<@P-%ITViz7N3tOf5x%MOW7sGD0i#5s^WoLC*c{AK&WNt)O)SkgoucZi&91P`L_IkZy49TI)xS^wbh>&wQ`o%gJIKyA%EmT%xuVi&I^%5I z#rPbxP9CXFlDTN5lT&r#MvvRKDgS^7Wh9TkzFo2Pg(j)2ItQ661NN^~QJs00i(vM6H zP61Dqc1}P6iIhD)+SAce#)U{U&OJ;WTsqSER;dn5ABQ^H&)AQk8Xgx4M2Qgr;x{}PVXXl>?v~)4Tgl2GChw^*yJ zQGEss8k0ET@$mHv_4<|vxl=9MP!^r`?=_k*UMY^0lj^~2kwP42y6cbJc0qy@M;iA@ z6}l5o+#ZL)vH_oGOawdw2SfpgimS=a7(ea!?Ev7YY7zJwiOr&jp-d)y;+fi z&Z#f5vX)1aP7283*8QsbRqn9awh}1m^^#A*^H_LFYKpESW5Ge_cCS(E-=^CaP4nt! z!6WSFM_hs{h#NeR)G5OfVD-{`{p&QPcknISv#vjrF<2x;XtrI9Et1Z=xwQe1?aokj zI!|;dg0{Kk##;5hIeOMEUodIMODUJ*pmmig;NByulnjSA_V7H-Et5iZV{aqUCt4o> z_DO4LR-`+Yn%o?$uG44Fo_kdUd!a$u7?JDrJj^6~>2el0TqQ7WQOYyPYHKsO_(G3* zd-)S&)cBpSLPDgJDG7j5+{Mv2y4&X`UNBK}vO1L|r%TOWAZEHxCouza9wukJQ#~)6 zbvLJ?!oyusVU_ow6;ytVwo&_^NmPMD-L<2tVUn)`_F`kw{^SG*sSD0lUTSu)ayk z7JeH{w7XHqh0*woYxwk#cd&@n)W#73Fp@F`JnhRIfI-XVh$gt~cObjT4i-*bkOt)j z<3(5sOm3cD2n_U(omB3P>)W3+@9lY^qBaM|PbAF!9)HbD-#@a*45Xln1hw&=hR^C1 z%RV`j+(;Od4`PTiC@s^*)0N?f{!O`YnFY-}LLRlw|G>}#3G~CEW{BY@tArOp{+kmu z-e(!br{O_Qk;aAu5xO}-W07=Ylb2p$FPjMuhcojkE#SG3Xd@46QIdzF90qI69SX{3 zW^+9>a-=wb7r9q0io}xo*0vOrk`00hMm4Q?l8cVX49|ex;sc2}Xp(c(VQQQ5HCh&2 zWMAm55H76CWbgy)9rV9kt2Uci!rFdGU`bSuqIGbvUSd*$#T@lwn?FO|&G7~XFuC4U z0f!@*GLk%$z=;P?4?E3+fekCO&eTiLO1`0#qDCtFox%?ht}PBNiAZUEJ20|d=8j8f zcqCTlYmXx=hC5UzBDNQWB^3H}ozFx#_&Oa8>*^ae$CJwy(pfl&Q9XZYYZt9?w5vkM ztoc~Ag;Q``te6MWy>#hiaP-I(KTzufLRTCrf%cADzuu=38eoaOvnkETEjuC9D|v(3 z9&0b#O92EP{oty=XB(CV>ebKU$p=$U&$c(4O=@)cE_G`ISf?%dzB+IQ73&?+X!na< zRmfS`26=qeDhYIpji(W~RfXYE7#)OXtV&XEn`%C1sade7pjTp8Bg{UlPk2nuWqx~} zX`|Tm)a+3s`>EOApFR3f_p2VZQ(r!s|;WbOG7ugRIKt?4Zp+&O}3@L={8m?m+P zGJ;GKYiJwA4))0d>m8S_Vq5DiHZbgB5U=R6@cBmuij_#P!_|ZXJH0R6DRvQ~3jq%o znFt$x3t7i*SEP;vP&O*^{2DGeW4@jbu!ldxYLTfGF{OUbg`@LRiGEkTw4v9&c3EQV zwJYWHyZb|6zRsN3dHI0lIED}8(DexIm3D%uVBC58m*j!X8Dx|zGT33{(#^>?A;FRt zIHk!fiTED`8}PZ2FJYco!bzA|%)0fvzDktbF@*qnM`2fNNsqbOj*yi`g*&ryU1YT{ zW|b$K)c02FsToXYKe-qOgz_N%G+~?OPi33>MAtnfcWmS*la2nkY*a5kZwCAzZ0Gz{ z(H>wdjVG)WZCsbUR=$qxDJx%BbH^-9eY-Ey{bE!S&qN@{TK_a}Fb~ICBt!d8Utast znagXF8H4N%2L&4P1HK8PQT&F;RsQJko^otHJ7rAk7M?vo1EbbQ2m`zN*(8HD(BxLO z+p;A7Im=m@%GL{{StvWXQKYUsPop=Zwn3O~YE5&E&`OgfDQyBH+s=%X=`y1wL1h3& zjII+1Am(E3J=;&-$-?R9PEwuxxz8_l>$-MJI+XWmWz7JSdRIC*HI*?1B?0E@4WgG$ z){lNpS(@H|PWjC2lXHsL|H(O}wC5h-obuhz&OSM&{2x80Jb1|1_fv`+0*4+_WChqO z|KE-%E1}X%-EIzA$0_5ipyOehP6<~!Y}LoH(a^8%e3Zq2^0YIkG)>ZvF8Vp@-t1GO zOKDylkpewBsspl`)lai@=pb8<23o9CtEPGjT1B_UP&5(C!c>+7-1hJ$enF=q>6pDG z(d+8hX@x!(*$JvMr8J^rusmU)spJ{P_hAWr_N{)&O==28tHdu;v&{(nd&qaN4%(9o zE~Rw86lX9`p@#-=Jfz17-X!I{_p?+RT=uu7Fkz~#z68Grtd$yZ<2@Mx56oxTxDPo+ zSRFWMP^5SV=$+~pxLXZ#W5AhK{w_l0>bd651}+%6y*a;38;#GD3s5Fcq7zTef;ml% ziTYyVAS;X^^L}^SdcXQnSZuN}Fg;W#(2WiEXxgud$?VH|d7>e%DJj}0v0#9a@J(q& z)beB-3uZ)Gd%EWY9(7|>XJ1$(&}5S>SW>Zll1fXd4oQHQuEJ;P4h{C{uiF2&c_wKPL?*tSCy1Z07@`#xNY2L;< zsOQF}l$#$3!uZA8h8k~uB{CKIWZbZs&4jTmKYVNMns`2cyOh7}rI>}Rs6=K#+}od$ zx^%JmpL3gTdp-MsBl=)BhgWmDvwUi1he_&&G_UTi#J!kINSLSm2mV%A*18_a*}F_Czrh^WK6ue+y8nLxAhr%PXAch`kExA zSG;e3lnq0&4^FLJH}^jw!|O8Ps%0XRiU(|L>zC?S{MqhQ?@pNY@jJdyf!A12U#VWS zcVR$&*f(r)!zXB=aN!Tsx_?%$uQy2`m;ItEXqa2DcfkX5Gg;@(z3~@jI+R=Ktj)I0 z_!C`>75O&h3zueF7ySiyqiu|Lbca@z?lGH7kG%%a~rsL9UUAp z$)Bo&im8qTiwrfdqso2RfQTX>iVJ+qKCf7)v&F!E17CQ8QILTvM@0nH(Xy=sQoh*R;Tzc$Xdr`3*H7+r`6!AUg;}G*7h%_2O-+ zMS&zHY=G>6hx0Z<0o0U0lODjc;Q5~^#Mz{LI_d^ByW08@)2UGgbLKqJa+hpd7crhi z@D`tA?UGJxBtgTx&L(LBN_?tq_C@5L_nHbl6%>R=rP&e(bx?md8pu3}w^;L#`bS|J{D%H{aPI;E}02w%`+QoZ;-OcLyx-;xR38X7?Mbmslp z++6k1M4tv&>7#3aefT$Gzn;I{GZGSf#-QzI;w^RJFExD}r@G4qoH-cL&4a_b@vp3x z{QdzQ2@e?nsXjKk&fwx2;5h%(~?jkLrb29PPvWx6d?BM*t7W-mH$r zIOaMP@SJiLig&>z@@`B*{0<%ATJ(vJcIvA{Y)5jwQF>{F0=+qOU`V^egHB-w?(0r( z3jf3cF!5${3&0tjHW)$^u3_Z>Ty3rBOh95@q>6VIE$7>V`_eeDdvl+hK2dAWrz!Dhh#Wt6V&OtF&Xd!jPQ^b{4sXtUV15d4ceBLQYG;P`q)F1nOxVx)Q zQYw}*R$k+73ve0C01@Yar-j5WyEUXG+TLoKA)XE$v1Q@P3v{(v2=gW-S+jskpSZv7 zR;ajh{>@pAi>S23&E>iRNYs0DY8aD{j^df|66<-$r01ip^!I$X2R^NC5v0C=h~WPk zexM~a#d%?OBRj2Gq=UN;_QLc(q<@#oVkosAY{ZhL>Lxyz3FvCH**m1ky7kOd_sg{A zcO*VUa?IJm^rq=zO+f4n@F5&Rx339N8YW!jGR*wZj4g_@V#+o-#p_y?csW61*s@-q zRo5GV+LrNz!Fv7FofU2v48Eb>C*_pP8PZJhf?Y_RZl4e@?{W{MqAH=-FLBijN$DaA zzN79x>JMMKj*B&+Lc#Yf4ugh z8Og%nb7!37smNWp~^Qg9(J zq>#e>{r>;wdCr+H?P_f~ZgHDrM>FR6T#abg7FE$S9 zt=jZbu~=(YTdSonJQf6D5Sr-4_WYNkFFbage+DO_AP9!>|G~) ztz_T7TivM*kF8cq$!#<0zFaP}3T7-AGh@|SwU~?=eIPKC#agx5-cK6MQ4?KFb}n#w zd|hwUZk9{kUr#sNJ3HlKIjOcfpC2t@f-#ewE(k`k%#*>`$YQ-vsU)qf?Lwu1$(v)X zgL=};J{wM)*Wb)|Flt738c8y4+;@SA8c8#0+)PT@FUNNpwXY@B>{nwumBMaw!sJ$N zw;F|~`9~0pV-=@^i2 z3zb5%8HSr?G8i%A)mme}P?hcq*73 zUaU9D`{h>oX0jz99=-V3<6rE-qq!g$8V=@1Ie!DEjTt6(lWNi^7spHG-K5zXUzUIH zrWvi&cAJZ4@!6!fsNb#v*PaT3MT~MTICsb>x%BzKjOErF$yJ?gI9N8z7l3yOP_MaC z-7Qy>)lv}5nF&tQo_{Jh6-@dE?&9$<7~Mz;mAiNn_;{tYmo&ocY(Y@6OIxYlEH`S^ zeIWR?I*uzT@v<%B=Hd3?<3;THQgEs3=B?bs^H&pGE57Hv!W1;dAv`F9`iFM)EBDZ+f@pRBO0@#?4}*98 z5taA1YVu{z3P*y;;79tbY^)vYD_+hAXN<$4%AoGx$Qf8F)A-+A_l%+7x! zh&CHZq1kQ#^i#%TaLaz#HQZCdZwBW;!fuuYfuF6l1Pf=3`HqLM`*G{0{Ms|ZSTG5W zoHPc^^ps@2AZ3 zMfu$G)OY~e+|*6{$0>i8Zt8bEk3SSlTx*pp}m71ecj!UEx<#b+mfx~wt)Baj5`@j0wCwtjUi(&wM$EmfAvq@K|!% zKsLVoO8Lj(Jq2> zH$yY$M0K3~PVIR!>%{d{{0W)%+e_6bac@P%+I}6%Nm7cMI>1i5QaOkh{kTsT%9W%v zZ07y2NuvQt&&;`TSNL~uhj~r7-ZAfv3>!~hsFe~YY7T|#`Gq3B$Vayd&8V#sXq>y8 z+_H*cXeJ7(A_iu5b78^jix5!vmZEBME3&`K2t_a_Y%QMqN*Mqz-EojGd>)I;j(`E` z7yzo_exY%La2SW!4#lv0elrR>vo~udu&Rsr6r2p}SE^C1IwKbm$_xjH_6qenbd6FR z*5wqVomwM;Kpv@JYsHWF`9bPe*I`2KQq^hFIL*n7frT}jFQw-rYFc10_Ca%NCrR>V z6apnw!D)lskyk(^pc>E-=C5np5k7p&-Z)8c-)R!y_*wm^T={T*JFT zX*i>U`8h2*&8wnYm(hN=p=Qe9K?BIaPmRJFxd5vw>ZX_TA6_b-sI^O9Zx6~-N z_V$xjxflj@vzY#=PYefh8IipJiL+(0LVTg3&z%V-S8neW+Avy_g8PEpg<7N0u2akp zJ{3$~s}^qJY819BNiY)3U#-G`d-E6dj|t!%Aay?W*9*2?7zSC&_nw>DP)#|q3VmF&3Lotxabr`y$1 zGrKYz3Iz892TB~u?D+&sTmzi<+xs{dduSKr1_mdB*=yAs)!MDU=AQyxs8ic61YGGIbW$2aUFv*K~Nu_gC<|_htqQ~ zW@Pdjuj~#M2y}|B+_axfFuz>B2@$DQJ%8{&l17a<+{(hC-}#y0*-JDtTus1Zv4kL) zxLmtbI3P_3g4-kKEI06~W*@Tcl~WLu(OY{-b=1s*aLBGMw<)>f_~a}{Vf+wd*t*ka zL8)u|Nz^JdZ^RLRRfObox5Jq5l6xaF3M>_B+(}9!W|RYe-BdR5&r+!b(^GS?b7@Zn zX1HAXhBIkhULeu)Fm;t{Q1KlL z{2)sU!zX2FyHGl-a(K$)s>JB1Rm0Ta5nx~h4}>;+hmAmN0M19{W<<6e6`XYZ-(QFE5mr`TQDP)%<%A) z8)5J*JQ<9Dc7_2i8=k}$c;#hp(R3!7-g`DO2Evh)V8-iW&H<$b_g;GPKn$EaBvD9Y zB+tDsn(%hN7aQ)4c;Z4ODKz@MIuurVUadw&eLN2T*xYyK%ozgzML@gSx}Mu>wV)9_ z`e>5|?X_lAq1+>qocS(6b(u7n(Cd@0*WKMTr| zt8b6YTM}ihReb?$PTeY zhKqAD`qMCT1H_Kb^^9V|x4K91ca$db5+uYZ*RHx@r{ZZlE)C<38IGFXf&1-dDE!$W zvvEY;(sHXA726Hm)Ry1i>hecQuqy(IAM|Kf$vTGnwHhP1jVA zl|fTV5pb^QXRwsJI`cI!>S((SDoBYVTDc9ak@k{8WjU$Wn&sB?ZRJ9c_@Xk%Ii&D5 zlq5JBqDrmVjA6)v?Gz>?FgrL=_IvPpxYdj6eb+t|UUFlp`jnJFKXMj`8wr5X57nH9 zCkt@VUo0?Xs}PeSTwb_5T2w#O0W@H|zKaXPpOU`16Ousz7;z*;IfXE{AIUiax809Z zaqe2x{c)5TPliA1nX&Ch>X_3F&pXBWr{arOb!}G@_?a4I>TTi*`yl6IE|$bVCsvs) zm{wZt=Bs9WLp}tjhSyBbdNXh#1GejoYCFP@cgl@sdhxM#KGTHf1G0ow8{>DMh8YOF zy0Ht50%QX859VSRJ>=ocg8az{vz)NldlZ154&Rjx=)IB?F6kY>?a3waZmd#J>MMw# z|23!L=sDctQloI|D6JAh>hodqPi#O(h46fo>Cc3wXL?5| z4w-zv+}uv~3OCEO##B5G1qFz8lxgn^U+ac3?0gsm2MYuMb#Vtje!krp%q;uf(NFab zzAb|&I5UG!ZnT?JfR48Kk?_GDn8D|$19i_4d+!Il>312NXSpnt(aHK%;#Zf?a zfB1Sg=y0EO+-~4S*XnQ&VS8a;lKJT{zvLk;h~Bo($K$KbW}ENzh45#>8M9ey;X;=2 z7_}vN8xl4&(JSv+;)WrqISL9?oO3dPvL5I_PlM}0 zvGJ^(n$2q?&XkN1y4|}SVxCxk!>oDY=_FY%l%c@)g4=+Fl4RPOLNv3f4&kw7{Yc^#+kb_*PVnz?{2T zsFWqJg>HBVn%$5zlQjME#YXo}!SFS+2|!_F8fWoxs)|DV`;tIWMGhw!LX#tC{iHMc zo<3>?k#h3~e8x|kvgZB5Z8;Ikz;S?$-p=~g*@R~+=2CP z!Ite$S4UO?D;lUy8mFv(oY3!MNgpuP5X6tANZ*Na9s&_2_0vzK^EXw(Ac7GZYSFN3 zm=o~>lBO7XM$Duit!Li=p2lFjZYE%F*@hz_Fq1O)7S1h;3n%2x$WPw*q|^H0r@MZD zExiaC5oR7MVU`=Z!)dkk*mZ9bL!5c4VV526U8$60BfwzY3ruW9IYxMaY($1b*;yO3 zp=cWpKSZSq*40SXOO~hOTA={O5eQ6znRLaJ+`wRlMVPJ=D8g_ZwJW7%8q>fbVP&KH ziDt76Io785ZDAih8GcheGt_8+a(aSIVZ-9I#XIBYAweG<`%aC%oskLz^<*5JI4+7k z?C7NzF=cZPAQkoVrR%|(xqM}FWg*(+V`4lJI~FY3&U6CG28Dlzc5g`X5CC-Cn`NAX zkAql%(#Llg*#k-vM^D#48&?_y7-9F}6aK!L;5UFw@M)SC>Fb5_ z6!JU|fKLcT!C)VyDDnD8r}HTXioONvQ$-xEV;8ViJ1@?6hr1+?Zt%c|mxD_lA|t(0 zZ)AARgc$vk()Y~hHbO{(;0?sSz8-uJv9Ce!{qAu+tjuT*1j<1U@}__l9(Bl@llqy) z_#wof5SUAqTXYSd2!c1gozX=Ac8EuT2`6m0AUqDBZKb!&=vVMhU?PUpG9Y8l%wMS& zaEmwb1%owU$A88E)j&{5pTU4MxX|(*TmfrmQMQ@quz9d_^_e@CnD1b1LS`N}IX*iB z&9+!Zg!YuI0lbaIvrZ~c;+z^uc0d{RyUX!zF?W}o!D|P{Di^NxDj&vBFwnm3!|Y|NSr`0vv~WGiiGYRtUI|q zEj$R9>NUZds46~1k`#O=&KXGOG>A6ayNr1LD6h;9J-}={Xcxdn<^h7Gc5AN&moB5x z%v{0#b+Co&{UbByem!9L7Hrio6KMV+At)jYh&Qi})1`>9PPql>8NPbK8Sve(op03T z!FU2D4_NR@@Lj%khc{r=;FBLE6n}(B>>md|#^#6Lo(|p~S(i)-8&kezAv=PbGrr#5 z272Sc;2pD=lpcHh@v~1XEVysq@i`b1_P5LnVK)EbUGLfU5xN~GCo1X4@Gmhc!1wS6O3wG(t3t^e_I>5k`OF*ncme?tU#``7nr|-& z_lRH{bJW9L1zrMAVJO84VMWAlDW0ZH1LR9$kIe+g5I?y>TFh1lAY_L#Fd|no^uXA7h65iYzQJu14Fj#=gh(X z)GXRBQ%w13iYdJ>bYRMRz|EfpKO=4iKM#K1&70t|fuE+`NQNhuT)vM%NQX~>LFzz@ zCcF1DIWQxL9m)PZUIQg-G=E{19{d6e{AKXV z?uA`k?HOj!5}nB_-2nnNAZE3b%p!wd`77f?)O)YYGV%^;00;%Rd8kqN2t$pK@li9$ z->@t=Rn3HDTRmn3`bqZ@Lk-!~lRX_s)o)lAga)LR>P@OH_d1^m--RPvM|A5=C#Eul zX~|e!oHlGg2=Pwhc?1 z0W{g#10~*rR%?uzV|?$X`vUQSFD+#kq=4FO!|b>Y2QtYN3^juX55qUG>7Eth`XJm` z!JKY4o`lSGSHqs{KWroUZR98P4y(aCqFo%i+Ed{-`s@}eC(QeZ7s3EBQYk9QF5PSn zm%F_C;{ZCO|88CDboi4l4Y1?}vQj+Hnl``!L@iNY^peL2^zx4m4&)pT-|HIRuNjIE zGz55Z+OSCIq{MljYZfDws8wSSQ(qhCoIAcP96mxdH9gFXG3dS08-R7@PS|-@&3>ha9^`GRv@P{e($n+_aZ>O(E&>mbwPdr8h#$Lt2h zE5};Qnth)NKGkC^;5&3{0nRBdM;qeaB$_}>qNlUZVwjp&cNa55vqr*~yABgW$QbaK z`s;LV-QFujZ-Q~qfcL`>SA;99lqmVBVkLIPJO%sT1r=N)2N90$!t&%%q<`0vOW{O zcjRTcc%w`1O&7obch?BPp4{9Tu*N)qqL**qLfXM_(5@~~F7JNW#$p``@X_!Mx4!hE zh&KZE0lFnYUaA;d&+sFRoie7ErO)%;K?)6&Xx2ez^EGfr;?%4JH zF7q`&ZiD%aGGp@H3k*s<*=Jh0;x3Dr_dAnCY=$H7OoR?1BU5R?8DmEI5X1=UOUPsn z2gs#>mc(!s#Ia_6FeBB%LH6$;I5TJ|Iy}^jVeIYxK2K@hbLV}8_X*;l3IKS`ib4#Y z?v#CkT*~eFTMzRGkRC82%T~@!6Z|^lEf*X$;YF^|!O>AYve=v>Q&!yQCiN4DpCa`L zOe%7;`j1At};FSxr@irzia*!a=y<-bzxLWJ^>g1hvrK|t+bcGCg_TZfT{xtn+tx>eWSBYVI4uws8cLsU4ez)bZlE5y-0!f4L2 zP#Fj4cp9!1_gF8J_amQxI+`7s#wPcg^F;L-9ali(YKME|2S4=S*y@lL{>qJfRNkTUrjfKX(1dn-dLAWsG@e&X`atVB84}46#Jr2hW=$uB%Y?z! zh(=Rq+C8icS(?<5Mh=0{-C^sg@EVq<*9>7HVi=I2Grld_$=n^|1Bex2tiN#k9Z)NY z11+_+#DNUau78vo{ez#7I!NuGkUC(oSl9*<^iN3LC#3E_H>rEbjG&AJOct#z=YdU2 zAaqD~Vt}5QfX=ZAH99oY&=9ti|1>{q%+F~k%q?zGXy~jRg6zMY^6pb<5(7LxSzUPw zhQqNHFb%34p#J+Rh-HSiP9_-be5fzX!AZ5&-rb{y3ic-vz=;H_i~7=NSFagL8*W$5 zXOq5&sMRD@f8;snx$tMfeFk51gI4A?SS%v%8G@1AE+FJ8DXkdls1gEEZ#QUJjH9I} zZ{d=A>BX0>PeBamT&pnW%u1eU&Kfw^bJzt1CI2I*IgJA_f>e_n@n}+6BAsV~bC`%d}od@o@d_1>e%WWX<2+7Su;d`ry`K9er z1tlDdbxLyQ7_4ysd53B#R6VR}-yds?{BI`oX%qvZR23rw^XlE9VsK)3iQ=6Ml4666 ztFT*!(G#&aQ9-=7#DyJHIAQh&g-#nq;5P>;W;SzB%y$B!!Y)V~s6VH>Utk!%N_Ps~ z9<+V{>^hpoA3I|4AZBW(-UJC-qDkpq=1T*8J7dvKjy?fE`3-0|KpF+6(LeC^igA)b z9QMR&+byWxQ2{0!;3{@tVO?wFa7l5`W+2=J@4=)?q`@N$o6=`gL(!+2cub>tDo88z z%V@^SsLj-3CTr60`<~`pTQpVEns&FSFlgte!pE_5S-uWAVDCVN?S#7qh87da^v7{^ zr96DZ5fqUp4nptL_;IV4B25);+93QXDWj^)_6SA0 z*Z$%5+ev8)Ew+_*&wLGSUqo40BnUxaKn z^|!+ZvUH<)6?ri&_%9wbTvQ4YIb$d(3=}Wdtc-o_L5y4AW&IYBrF?&x(w@CRl{;G%@)+;+PJF9-^e*dhYsCTmBZj#d#t9lrM* zX&<~l()6~cJ*aajrVP$|mD>xB;uS=zN9;`3f$rbOF8pmVIlxaaiW3o$Y zOTsMsj2edDlH~(GYwbqQF63oorjXSE6LD4z`!UUF>^ZBG$Omz!E9`0qQR+-ZVhA;Y zlJFm17|Se#+;ddTaz;2MTtz_q+lZXu3CAvL3(YsR4)JgOK7mS@tLgS#@XLLGzO=Vb%oddm@@uDrsvRb9R=4LW%rfCAfM>-7qY|>1Z z4*h*N{4uE)GUH@CdzO~)sCcgzNbu8De)$Lu`!i-F?~TV@mC5?jm*I>96=~_6-nrf{ z7`)yYIO~0(L^#OVG;;QHn<9Q0JPNUB;*NdkdWRdeXCf2+0`t7|q74Fm>AD~}q!D%d zf;7>^GuVat5rX_|>LYOO#zJ3EpF{H7wx+bh9SX&TIT+m@fG{s+dB@D$i0%Ct(IklB zzwx+1COAK=mYDcL%FSFYV5R&V<*3?FT!uRW1(jf{_KGvY-=+8|BxjbLnbJu>DzdZq z$Dc6f5{sfi>|k{ZKiM}pmmgDA7aE&IQz>Dg!62_alK*x4@#ZoD9J#n<>G`^H`k3 zM~6xuA9?sPm+0chfpv^(#`r=KExn3UA+($Ngx{3cCCc8t34pfJF=G?H!e@{UC%bTw zn1ZBo^>xDdrLKKmg|te5-qZR2T6T)4!NYfogO@GE^Y$#ga`0kuX*@ooY-5wL|C7fJ^b zd8R(MLIs8|D^=YKB!zs0e%f@y^oQF{ou`v0(jrxrgZK~wPVN?0(F{%Wl05`U(32bHHdM0xrZa zEN_JQGX21ML)H|RM7)xe1Ivo8{-+6)gY(Ww!9-7*-fHyISE>K+CzR>~^8;Uue#w|WGtH#3v#`KQg!S^)UKvKm zDgq*r`3@fgdR!p1tAXOPuCV>WLgyn33r@$lZ()JsGm4u3K3!`pYHiTz$W9M$R7Z9D zXN>vFW1ZgB%+IW#qgwt8#{9)`E&y?d5}KKr|Gr@Kd|?~KLo@OY?l6iOdSJ%_N>2I^LUSyH;doAJBSYWyt*FagqSvP{Oyn$gHVv&x+L{^Y_QO zqV6skne_~6fbqp_2*gxi*3{^&qCxy%kI@^T&#WAnoIoEq6vw}?5k-r=|Ug;4v+|k`6GxvC=m&rdI zGaa){Q!=w>TciBbG0$#$uw-WMXu0w)$9xxEbC=BgX$O}-IAQ+uIBC*4+rngK?q~?} zKTjMl|8}isGV^!zm-&-po}VfoYX@ZJ?`>D}rzgzc9OnsibjQi8#5ceBvlGXwyRgMh zX5KsW()sff=0A=T94?{`h}qT0C$q-RzC3>v9&I5dBEoS?bv z+XG4Kpv-Ez`vU!KX#VOrSCVN$lvza%t)3)C)@D3}!QX|)e0Q?bWmfWqU|O0MZS0{c zS1Ans^_bz2nJlx4xt^{||8~sq;5t@a9mUK_9uH>qCl=LVhrs_Gn!i3y1j){pS;rTB zGpXM>dCYu`-KjD&&j-`1RTPRrWhzt#4};%3dAv6yGg)R8Pq;Q&zkl+0X*!#6W#;Ye zxb=r8kN0NEjX*Y>^zq89|4!Sk&EYRMw7#D!LWZabc>uwH5*qYevW-3? z2*76bO&ASq|KZ!}9Ai_(G2`jp4z1SF`gAj?CI09Udf?w!afo=~7`R=F>i)8_P zhy!3&4i<|T00tT2Z^RjD=f-%2DG;kBz<-beF*k?$wD@8!cqR>ybkQUY8z7n9;PJ@) zhISbPT8Yi?7Y??QEe%I67q1!f9oxIhy^Atm605$*9x$vDuU*JcGRq*g1*L#dxnkH{ z%sg(t3~-;YD>!4ne!g~lQFEG9SwKQv#$gJtB_hnKwdw)l1DiNGHx}H`?7tO{Yp?{| zvIBPE0#d|9i$Fq+`5-7!X{cvd1TAvZc{j~g6)nn2V{Bc9Vr84QXBn11V78A3%!b0} zH>~>=aFQ+PzGf9#x-0b5>fF_d@V0}FeaV5L2P_5Vvm=_%{@c@r?&AT6F#PTzxD(0Z z0U*Rw7Y^cew^@bGmi*d#@*ndppA5g<_vpJe`(YBIYbM*N?dv_A+R)Gql<9>u0|z8p zJo7zNX><;mo1i%McW}e)1Jv-yFz;X#6(ZU37X(v+(q$muFf|UYnN@AN;|7t0C;TDN z>mVS$>6#RJL~j95Vh~>qj7DZ2@>5yS7zLa0H3IZtbprp;q+2&;99;q5Xxu6{;pHd( zAYB$To>?IBs>Jo7DsxRj7j3^ED4LG{`*9YLDcHGV8(oqq;PDeF14V+xu1L1W99E_< z)H;{sVos28JU#doAdyFS3bJ-3)R6WwR;OhVaaVL4?4^KIV6XCs3RQiEfPuj1&VQ(Tnx4fiVdGB%fuSSEhbZD)HzU(Fy=EH`H9hoV zM{ga*DYdZyFzDY@ACG#Lm$~B~Pp!^a}H)&96S%m1Sh0OG| z17ptN0f@m@SO-qt2!hcwKtXna$W#x`PWfo2dz4MJMme)RN9e+B;Qh?1BQ^7U$*}Dyx zF!u=yV@eq06fzxxhj8uKAl`+Fw^t}_vRZ|(7Po@~b|d%@$!Nh0U+gIK%?kI;<|H4$zZ>w-d}*B>+waeNH_aGFkULN#{Ik*UzQI+P&Ol(b=!7btmAqkL9YH| zkAD#nw!uC`-BY8%S5c0j1LWjiU4_;AmCJ7TJt~DYiX>X|Sa4vZ-?%MVj!JnrrZ5AcO|}LL=vTRV z6P@2mEXY$tZ*I^Z&=E@HLZ-pXZAHF%p;|7wt`?FVRsNa?KJU~atU@6X>JGXjlBm73+8Kq<7*bSJDkGBsyoA;=CZnlx_U%N$W^Z-UYq;;=OaWAg5=(YCFv~H5iuS|>`p@Q z8Jm!*r-Zk_KuoOpE7eVRS~vj|6=JQU0t>7F&N{?Y0i&Ju_Dc%*!cEez_S-sSgw`s^ z7;^8$D6wg~Sy6FWE|)axePMwjJu4)gi=uq3x@C_h$xpq*nY3XP1^Eg<$_G5i*`EU3 zXw6n+(gl8~9N-U(Z=ZoA5k_bCVDZ>kks)81j5lDiD~Ath68*VnUxmpX(gazyLj@pe z+DjXo$AfY36Lc8jkt_f{V4={BMF(Zskp|12r&^-OsV;Xo4kX?G?(k%5L*$yRICvju zArnK*q>v(?tzIg7((+g2)P%6ITRcVGEDpZC0`n{ig06Duy1xYNV{nNeE3r8l3f^>M z;-o{wSeqRpRuDySQQ7McA?-Mrl{8_*wo7zoNa`Ez34yAay>3#l>e`*cNqJukzuZ<+ zVFjt9yF|K(O13^PWFrDuF2kGHaspjIiYMTppdUyFYg-DLgJR7e5c&`ERt^GxBbg}( z%5)w9ZegFT#n(9$R%FkSYZHyf>cM)jR-tl6dWwTEan@#Pbz7s9oBk?#IuHXCW*_vB z(eFDE*9;G=PiOd{*;m+?la1wZGxP}i?GI@u{$eaaKy-J=*$Z6uyAno+$k>m!E{JTO zK?b-q$flL0+%1K5H%I7QW-z%OSa*7fVpL>4H$5tu(Rxmo@;;8FqdrCK8VlXeai_f3s`qFWPq zdfdc9wG#boFR3^yTgDcoYD;+^HMOVIIER4e^GMJ>1@sb|6;Vd=3uVGySedSC5P zAHvGQ*(F0fgh|#Pzb;4?Yb)Z_;l7ofWG;!jaf%+0DcQqGm1AoLj$!IP!Z}(tmR?4% zHL+Cc)mEM*#=}Ad4yzgPPP9FCXzECB9K3M|BG`Ap@GAI>AEHES|69{GNY^xGHZg4+U9>^{N9hoIiz(!x>c}whEdB=yX zBtqkhZMW5kA26$GRMH<2hhc9D3Ey@CHBauoR`Eo{1^Babo6y2eu?2_!J+*jyNkz?- zZX{=;fv}Dmd2#UI5$;)D?^&L1bY5rKI~1*2BYqzA%GLhDNq{S}(i)1!u%gP~)1d6M zMKE_Bh?zxsMihQiQMc>2@oPS4q>=0*0s-2cHn1XW3!RnwzeEBlS_?G`3nUew-AmhW z63_%nKnKrddUWuJ*Lvei{xaQ25~Ooir2g4G zEc?Xx3uYs8f-m-8_;pe5rz2v3#Mcxw#t0jsX74Z@nu%U$a9K3QgsC{QQHvaL@UthL zc-UQTYNZkS!@_S0<~MM5ca*{VgC1Fca?RxRcpWqj7R|lZe&zFOD~%nnX59yppgYpP zTnbtz#)XR~&8DM&+#0k_%4u#~Cd4~TPt{K1ECA#8|AKRXQRMTQMU9=E3+ViZ>cnd8 zbrX4Ul*4bi@zH%&WX80FaludmWMB*(ukPke)8X8Q5H_QnG_Isg! zDlT0&ZiiIngr;Sdj)l|!33khK_>lS4(ppq4gcuPKDKLbE#q^5d*=w86Dg<>3a-fK` zyb9{r=QyR0t>PvTI>uOXn5;x2fi-g48CT9(LXU5fRxys_;0K#HscwoRq#w%^g5v0z zQtdeS4x}40M+lgF7bLn|FXOB|*4m?il^#!K0Jwl6*6e(XveMj2DS<(Y^{y$W5??xQ z7dRXYZlXIoGZ@(!h;U`iL~btD1L>fybP`Wv-EDTSkWn3nv@#qf2C=Y^&h3DvCpgYp z;{^=r&XES9#sP>qhOjgV7g>8l3SvtU@D9!?1+?Kf5xm%KBg7rmrg2QQ*CNE=CG~zw z5yBL~2;5Gl;zgyyUcJftO^$e{9S$jno<2N$IKJR8+sFj{}W8C3ct` z2Q6TNl5}9rnlr9hIUxQve#Ouhp&VN4N!e9E#JFbUN(+Q<6+qJkrgCQV6d_y@(FDXL ze^$U1AE?xYd$uq*rtcakkJ8a`_FZCdAXnx~3!h zx14u=N`gSPr2O_)#BxorEk9}6)e7`$1*j#K5f~Io7pu~?)kjd-k|RfbYkK0fJR#7b z1o{-`I62+{g+u}E{le`nsPo9PVkF%ArVA723kG_(Qa#;pwt%wQJWvgtIeR1sJajz@ zu{NdW?rS4D#?!9P@?`Bji4hY00S}+Cf+|&~c+4ZAq9gdD(ge_xa#FfwTd^36hg2mC z;(c*a0VQ>jv{6c$1f8&pubFG8LWSV47xVl(e?6C;DoV&U@O``5@r(Y6=Jg%YD=n9@ zYB$+j3>r1DGEAfv0~=!Gg4|I;vEVh_RgD@b@Oua5hP z%P2+*+<#n$n^dvEcGRCKaUe_;;5)!SdrJyc5R#OzEG%>pp&aBo%p?Jp7#5|xuqbQr zl~NjbnNSZ!)4F zD%?Z^4=Qad=EeL4Y;R$qclXz6va*6HFic6DQYnjlZo#}fOoOk-eG}t0PH-kwQUF^3Lobp9OMG~xRmLK44{sT2kp|LXH`Vsm`WZ+Q5#*t zpxFDsfboj$z5`&3rVo zzh{A`B&er}^DXyw5tn2*R=VP{SF9N+l@J!Nt6S z?wa;hr+|PpvC26py%Y4};N2DRKHEq|@RpqfeI@Pfl`c-=>ae#;0`?#p9T#B)Hw3i? z7NCu|mc?)W8G2n)v0Snqf~?OTS#!DjP5;fik)RSuef=h`q==H zVd2v1+UjORGXm&+TF9a~6(d;YJVTZ_2N^nRQJJ7Xg!B+2_jpK$AmBj zr*c1Z2L>jPBCBm?<#85g<&N;){zBAcKq<%=|Er*Z(E{6QrDba_1@R;S80uG-tZAJr?Fqv|Ir$vwE2 zvzu}MC+XJdhJxYw72^&_IZpZ`g)`hRQF<+A=pWGNpJXk#SSGh6XIJ+-c~PCN2SyAUoeME4ju$+7tF7?&bOevK=8I2DUS@{Lo_pDLJ7kr zil>vloZXrPO+qjLDpAq1p&Ue?j~!MDG*X02H`FaxjMAd;@x#eWq$idTyD(!0&nCAJ zx-Ch%XU4z1LE8e)3n^=0IjJ<{UxfH3eM7n}I?h(a@R+_3$vd5_cM-W%ad&IEZvrhG zp~DH=y2FYfm;$F@^Pp7;gY>HX)%OdvWJ(qSw3)WrSJwDGh`)`tO|0(JrRA^OcfR@P+sSM6 zl|pjBiJ>bhC_qj^pLnFDDS#BVK{TUk{JKtVRfAmsdw(42p0S6WZXdtHeyf1iU>1K! z4sUqWU^*|0y;Hl^I^4njVP(aQ12_;JbHtNcCS^d(f4hPN8yY>}O`GfZyT4!U(<46u z{S{)Dl3RAXgiPhB*$c^T(S@ai$-=UdAS7*PT4gbdU z{fq?{Ybus2m(7kw@`lAw1P8YPBk^NfwaI>s1;r@-0ynmQKqr@=5eiSTlvJ$NfCv9D z<#^f(ts-1w#0E`kwTBUvK&Yjfc@0f&wc#jahG*6AQ){@;UNIxuKtOH;V>aaRW-KW? zSSV6(uvt16U>GDMx0BW_O6&O-?L{UtL2)SX0f-g{48v>feaYQ&{&*cHcg>LVT0@g? zQcHh*%$9TAfw5pFr%{OYSiy`JT!0V4QEt*wztc)3e-`DjEZQDNH_=5&gQXUX;;_G7 z$=wM=Q!xr;(WpMi%ki5NKe;Lo;JEv`IGVPOiv;2TfX=EqAg9WSzfDPwad%*_k^pZd zQ>84`WR?}V{3Qk(iR5&N9M0Qot)>23G|@;?98S>BVjm;)9HqSk0q=p(k0B?FN!yd-i5A5~nJoH;#B7@p)uI9hcp_!@X{l93k}pb5=_e#Jc9 zmW)jFSCE$Y<^ci~_vMBFmnHOHH2_#m7J`%JY%GuGTd=uSQb%NpIdDz^aOy(s<3UBZ z>|-$ySw(_8$Q4AfSVl{uY()V-bQF6bz^(RS*d~^1gL!VJ2wekyEqW3G2U1t|s)fx* zEM|lWG;Z-nkx^PNm%T7&45md?0AR28T3`Y|^IvietvPu)JCKOPX?=xl_?$WbkDRir(uhgb!i=$!0XXytz%rEDe&9b(ifuX! zkV?!l`@j=m8Nw7LfQpWAb!&;_4>+gu(>Hr1ke`(C~7o_IEm3p=*DHEaPale2&K7I*We`a*? z{rxZ0@bkmBDajalEFE>wV~b+U-fAHd1kS%o>8}v}=0~zxJ4T!5mLTq;+6a5Q{&m+= z2)U{}75pE|Z)kq1pzcljf}nF+@Q@IqW`nKI+>GMjVe^Ot)?_wAP}wLsOenSub&iW` zJdJ4+_U_ODVfB8fbi+p*%D;!02(GFZ#BN!I+ZhuPvO3{)wdzXOqNt9NN5s){pntCd zqgBhyUj|WvJVVT;qngA!sfrfBhzvWsUyvrp-|g)FwR@WV1?s`n0%1>6ucUBe5pbwL>U+$(rJ?XU!*3bhBcW^%2E-LfbH@*DeL+j(akr_4Gilly}0GxIcK|x64oxo2IOBI}WTCqaTCN#)W zcaGO??c=}gEqOm?mth|3fWVD;a4F+!b2cm2+#Jw!4TY{I--0% zG+cbgO9a&fZ{Bqzz?SSHE;^jRFf`aS)$Su=mL3-*pXkQ{5_CO= z_j0K?SPh|TB0&zk958_Lx)6L;D1+aaEptGblluctPmfE;A>Aa_NJ48GY8uo^Gz(1! zBUc&==w0{-V&(G}7-7O7L}5LCP@$Cc#JZcPj$W+~gfeMxwiGLfGvmbE9jG<$uSXcE zvX{Lkc!ZmQo&XwP?Pf~4dCp)^D6b_5P7vUjXKdCxBK&2YS=H+TV{P)H##0-4)@i8r zdj~ZVd+(pdT%uF?jDT-PnO)fOv34__6C*`kCofkoJ6Ym9`JZte&_aOk*NajVVt3Jhh z!cx)fvR*mZ>J(qXI~q~OM^?P~&tnqtO(R9K$r4UbNg0myT6*fNq&X@SOgfYZ!nW2Q zFAF`?PP&RZilKlM`Wgd*?aJyptPb;pv1canMPOggmg)9-T|6U8%X zWR9dw&>;-QO}L3AkE?#lY=HlDl<`owyK}tJp7H+bDC5C-*fk)& z>0aSqA7#YXy9a!|XS}~jOW0V`dQalRFqzaAf>vOWl^W=O3oj=OnJC|gVp523LwUta z+IKMdp1*8%NR}?oH4$d5wo=dRMdlDM19Hm_;J5uO(qeF*DE)aWBPbE(hZl=lt*B%i zju(!?G+mG&C*)=sp(_4?NVu-d1hLeXY=KPJ;kL6w#=+a0edH%ua8^9=j7JQC-9}8w zl9N(OAXyUV3sMJeta%II)heQ-e)qI=D=otW=)wXvw^c4Rb5qFZa8X|obokp4vUBxz zV>gkrfHe9eMO;FQ;TRq^gF!7hg4oYd0HfC7Zpm^WWHb>>7&l3{vlTnQSpj%Exo#kU zA#fB)Opw%Zj+x_&R+qv5c%~deD$XK!u60mH)H~w5wRi!4R)Zq)?kGdHn-W?5jL}R{ z6-cw;P;N02?_WZ|r4$6qE<;itx)y@$QJ867v7GOS(1|u!4 z1r;zocH%E~gZz^tq6t*%!x2T%=RwtEGD3ZS(e`ZB|PQ zW549`g(i2QZAw-y?#LTL)P*8sxd!=!H5dpQQn;_?{7hWMe^xS z%sY#&S?$rr0OM;E(x{HVGv=p@t7#*nqYbtwgK2>nihO@>%=?SH;x-Qc!I)nyF11nr7A*5%*?oPafrGy@qnGNn%8fz^Rc}C1VWUAZW^?%F z+?646Jbc%MVuI82JmZCg7ghQnjUfC~$my05+4p-0^=M0Hb109o1+kHwbq)!xU4W}h^d zeL+i+By4nxCom#eTB-EQSC=j?uP;H;LQ*B;Uv~>|A2MlN4EtPK92E2zZD zw`*`qy0 z%rgW7<#ks4qf}_4m&LJK+^eDLr4b7{Z5J?E0U~@Onq(Wy@pxl)DZun%VHO8HKJs zj^#m_nKok^NsDE!XS00kpN+Y=lHp^E7pJ4kXifCb1Lm5|K0NHEF~bwcsp7$h!M_;u zgt04ISjaw}ib|_6yZJ}#n>zFKeM?UApcYeLSOk_6OyVgqS;1ythRo7YXV7;Kn*-L2 ze}SCsF2$BzU&n?=SUmjg@LBV(CfqRp#wy~o4NBIQ0Jv^_+JSiGjz8gJvnp_AU!kG1JcY_!O1?erq1S9=-m+$`t1_LM*EN33DLkKRjgKlFAkCPOKt$ zt{L^w;xgwpHs4WOdcj&mz7qZSXhjSf@YY0Mp(`n4`k)$_k8*ywaZ2>I@EA%gK(bxw zchHKU%Pk7kRS3<0^K*;lUwu z@k+gbRN%`Bo()2WF`=rwGb)sIce@JNFM8hM9+)ImT-AWm`Oc%Uy$gc}hx~N~taij= z({FN6kcoN%!*03s(2$wc<*nlj@`j7u2bVNIJ7m@wv8oSB=}I0di1I^2!;V074g;c+ zHAa3Gw`S;bL&4|ztgw4n5~S?A4-bv@9L_|uA=GLbq-@K6?xajpfV=&ngQQKRD{zB! zzSv39X3{%eLiRUIDaC`HJAP>b!WZjM46`#JKNTuZ7<10X5ng~q;0k5q;8^6cvsOqj z`P#Y;04bI+L!$pf=yI_LP8b`M)s2fGwl~TiUL|qPEB4$m~X(!FBS+OI2q&_?W{q?^_X*7zA&UuwyjHh&V*L9;08!he0B@ESZ(xQ$K&t+K zDM;yFW}q}>=RpS5yMg2bMz(SXP$Cf573`+msPVn9pL$6DCkeY3wg1ygKIb^zmpgQ*5Ct%3f8zKe(6n#*O1y+s{O)>%NKxSY0WkeKtySMwOxyY zA07D&5Gx6I`HlAjSh@|)EAvCSioc2X_=kN(zJ~yohKR-IfHhFGs>OpX`1ugpA7(&| z(&*g~J`t^Ds<@!jk9!?T0AGhrL3NBeL2w2e@XNb~ z5K4ZelWO=6!ZqHWISR0J-KdY_lA_dZ4#+reu1Ae31O6WNrF7x=Oa?TW-E*Tt&Y&VO z;t5+Hubv=wIT_P6#6 zzbzKuJHg@PG>YQdD0g6idu^szXt46tK)^^I*e&%*s1+=j?9q~zDOB%KK zadYNr443cTlNWzg>cS%(@21Z`D+@uuIaZpFpP}HY=3W(CQ#Y|10@e6yS5GQNVLC14 z3Ax_N+1QjfG`<-*TQcpV_{DkrHK+@fh;7KZ1QEx7b@Cl+a2Vh^ z`1a$cq@CPI=K|BJe4Ijd|Emmbe-_4zN^Ljy?3A})JS%rj9DfwDK>970;oyic%rC1v zgM#%=u+2(z{eqLQ&@}hFYU{2_+58tMd7s#Z)JGEh81*CZt>03z`CD zqgFCvhFgb}>}QPh&9dl>XNL?U!0cavnXuKw#=8{H`_`W@%XW0Z4~yS*38u@5`Xoh< z)rXl*;Dd;$Q}RAr2Z76Cbk)n;(s5B3qQ_FgSpN!j1YCdPmH6U5V_NgRK9DhcDk~kUc57zjVW2tu$hGx%~TL#?W*N5 zjja3<^gGtQMy@B~r^yd2M5)W)q&tf_O{N{%h!`AA*+>T4=&y&*P@PwJC0pI4pAr3ua8KO-(3(lGR*>VB~+b}zYzbpYz&anja zV48p;I$Q&MQOy%>*bMgYNAyTV6gLv%1pSoZ#B6()x436lnHnJYR=Qb-p;#o=Eb-FN zfzuPU1Y0zGFyrqd))+zE9W{E>!5oXUgQi9Emfem(%AYiui+$A-v8$p@V{IwNNy(MQ z_Y-dH;x5o3wqenrt3QeaqST@QRIQW;IKu2F-a_0l;2J{JC96qcpG$!pd}{W`*F4At z;2j7c)E^3I_XWqTLMKNAU)iK*m$Qot>0Ra3${HpW@ub55#SVj%O7Q*dohj1@<&n>TJp|?H_iMEqXFQ@rQ ztGjWq?rTljr3jb$I2`Qrta;qns!K>0+k1-<618H+>e4V>gs@0|_RJq*BO)~K7Ic=c zb(;oI>6V9xp2+Hg`olq80`H&r4zxsizFUewLN!zpqNZO*D4^EbzBjuNa@QSEv$jX; zw8m{wdMZdRE5MBj-s--NG!|aXTti+NF~Ug|#27XRR*My)i;Q=%(e*J3eY)~>FG0u% zIfpuvtt}G6_vwTl0cr$bYh5-h4ILabsS~2z&c52 zckdf@{?MNnkzvFsA!{iZ<-ND`J;6?^KK0T=K!}PVt@ST-z)xOtoD!iNsQC{WiRy`6 zE?=Q@AU!I+;xcte%Gp1+ax*~!5})O-;53g&*A|>T_XO{r&}+~Vd;@p-wl-9k01;Qu zLssGxKfYxd(0ka;Hmt)69c2uB7K`K|%lNF-fGq;{_7_|oNHnWv6XP6-zIV!T*6E=# znOda31qhKBk>v1#W^f@dHyaF_%CUY{dLo}m5Hb(jGm>Kks8i96l5m#5sP+=w72iiK z77A33nvvJ1oc`S?%j*l3BK#UWYAYx^cz4mUc-c}fG0+PQLtMxmDE43?_nE~z61g>( zC+N3Gu0P6^t&f7+8)_&>Lt8HYJTG!Kj?v1!8LHuAkTH6EJF{EDw@s$Y5A= zgX{=o1GIKg-zGuaWrjHFa{{}`@$eNy-h$Q>FF7d=RIA6FV>L=SabX83Z^VQ$%`?U_ zS-CvKUR)_>ra+YuWG}MOIZ=k$KeT~o(Zfsbey^ZTd((RuDAi;^2K~k9@kksZp6Aay zUxBwU{SrjjO_jA!y6;FFCD_tKnitKTOf1@Px<53`g1BSr4rXqxs>d=EHr_R%_!W0+M4ThET!< z(8@}u^m08C;<AmIIJ%KnCdu7+H{qZ8cek%Bl#di_;2)R@QON!%eV0F&=mG_A1)65vb z!>}eU{1^~W79589f zUKq*&-I_79NFBq4U`bY0q`Gw2_!nKT5c#MJXAfE5^a6c)@#FXG+f;7zJVan!&zt>7 zM*MwZ15psjfP>U<&z&-;IaqNP!T5~&7g9{M%v%T!ALk4+60gOI6%)u!VVaC9n?Gx#gF)4T2lQnTT2%<|O!ke+fAMy3DhM7Q3di;8GDmpS47(XdH&FL73`WrcIS8KUcxtxisabjI$)S;D8_ic_ zQ!e3Q*`O`gsd#)^X$&)mnj>Z!G2Ngz@>l=jp-i)dlCqT28ANU_sRXu)rhR6T?Qx~@ z(WseTlcA(cLlES@K?+26o305qS3BKaxo$1DnKf7>VWhb}Ce^Ou=sawNnUE1h8!Azx z5Wqw7k|sI|!8Z0&AgL_bjwPSnXx=7FE1xY%ZJp)XY0_`Tz75%c!V06Ey}ChxMyf8Q z=1aRL2tk6(=%f>~X|B8j_I67xm2Aw0_IHr4;^3W4z{PPzF}YA=?TEobJ?NGKwCP#W zGq!Nevg-zAOPUCnA?4%bF)NE^*f;aG01{ITFk@<;v`dy!ET0oPN6H6Hy?d=RQ9$6s z001(sq}@fjdSTo8S{&ry%(4B1ZQt~~BIZnr1bOmGxJc2Vofc;4JS6o!;p{3GSwoZ6 z{1hk&LfL@O#3OYBV2y7INo9tkk2d1U;Zw&7(fKNT*p2H!@dG-D43FhkaO1e#PzWcMuqjn=GU+-Lcge7Mzr~epZmvAC@nLNqeM2tR9HL z2(H)rv5vQ!eXn>2z@K`O5SK{Wkrd@-rSb-K3sl|^vmnrOZr$SVD!ghCh$h5aeKT?0 zyiZKNFW3fRf513k^pQOf{PMgs#UD~|^|`y9#=*;jam`(Pv6W`Z*h%$JXBL(YzfkPO z|Lmv>K(F{C76x#JKC#lz7-w755|-+Uw?M+1x@B)XJLQ{^2T9-glEZ{Tha(A2z3#Z8Ooy@&pK!fcYAO#NIXnDuy2$2AQm_?8Q0vX&fMUx*5aC*)ZzQwpEC zRb(w5PFdjW?st$KuxKA|M0#qs0>5Zy6^u8oaKcmhHFH5Kths=3?hA{w7FxHd>Ff@9hrA3+Is)mG zVP^o8MrY9mzlKXD<|r|vQJ-X$7Ev#~O%$xn_nlTH(On8k8Mg9U2I{>^xlGLx5KEz~>SxrV~F z_}(FKI|mNLDbQO$tC9S+_WNi)oavbhLk&)VSAvcirSGaA+q>WK14=SOa|Uq}Lq(y& zENuXZSf(3JyU#1B<_=S;0ijw%NWa5EMZI*{vYa3p0>|r2PgZ&sM^`XKLsAY>W?%u3 zf)3}P;<2NKN``!pid;?@#Z#oZgVhmW>1Ud^@GrX%Mrye2mnPlC zh-HqfJa~wDrH{D-bwhNhRu}dXaiiTV7alix+ctS&0Y(!TP@q)^a-sSegt)ER4oqz< z*PEM)o_sQzgF-~-Hbbm%bX+V-8?jw`b+@(GO+i{+A_WDvV$xQ zQlvhyTF{@g@QKyp6RU-_9o>bo>JzKQCsqr_!a=!7^^Z@i7Ko>>wmz|1h?(LOs|5`y zpI9wmr}dVDPplSE{u8T(b7$SF5b>YJYOy*rf?C4#Hg6&ENYV4ZF1=u$rJF#bbl{PuxeHG5QW>FNFcLcNL%WVENIS38TjN7+ zVK%suj`Y;l+p7JPW6?5%Nd8tC8M?AK$-LHHHE_GrOvZe0mpMwqD^mxrvFBRmJig4zp69+J!o7imy#t|9soEu3y5HUk;K2pg~u z;Kj~ri9V}U)-3v;-JUKTMqWma(iam4mpD{jo`lH{5r~!2!ZK}LjEx3FlKpz?Kw1t- z-lBLbyu~l|0bs37sRNz@KSsM`9F4dcC^NZCH|y==x*m{tiAKAMIH%?eoRZ8Akaz~v zu&Ob{gT__H9Q2&1lueM+v?g^2V1OgdwR1q;L0KOMX&>mykO|k5T+W(V3V59veMd=e zQkOs+On)BX39cFTHM1&S2;vaV4JZNll%*^w4xitu-I&_fBad9ZviZm(E*2QD(nruR z)MJN@3jQu}M2=L7;z))qk=!-u@jRy)&t}5i5$rftvB8~rjR8RVCN1HJoGEUKo^0aBkHOFK<>;(7C46q4F5nUH{rQvdmFW?SuBTlwRnIw zC;pT*49bN%3@tuj;1*=}F%&vzCKc2k#g6@(D8Y_|8x+@fR|UY!+znQKY#`sBH*<+- znBo$#?N+(YH}$e-93X(ozT7k1aOcto4dD(Hfge@01=ddg7|TK2AflaluC}B-at~P+ zU)sKAmZSZ1KRA9}H!Iqt6$|oPq6de~v;b)mJGWH9_yau=IUB_G;D~7GM|~0ypY#~= z*I!@{E{5oIE`1xdA7aGd`Rc7eX&^Y9Hb}s8E#JjMV(TsdAmSpiO*Z4;j3LgXB*W1I zzj|C;Te<=EcSfU$g9)x3oI3Kn5zE`<^nLwG?gBgsOzpog9-Sa$X(fu@?DLf`@v0%~@NKndYhoAkn7rt0cSG3@;aJjQVf zI+=NU2}(NmG=Ls6=}i{^XC{Sz34W2z1=)(r9@`I}ec;?LM}uZhN0wyqzO(Ckb%~P1=+x7NbnbR*bQ3RXIkvz*x2A zYDltF*Q#7aK{FhQZJ08LzGKMyP$B3@$fN&`+lZtFp+8RWI_@}($Y>dGl z)9ZETi`^A*AR=;lAr}@dII4{pKI~_T-Iz6~Pw&5eJ5{ITl6`MYLaF%l*{R#zKVB8V z<62#Rp6fWN5$TLOFeBOIgpf-ER2QXV<{Jr))62Z>`|#Wg=BiJuKzWuj6Yo$>QKR&H z|6IA+!iRCPTIPxwG+8X*B?g9QQ?lC5*ZCPlWw%DWwd3Js&txElNCi3BC=%uF8<@B}+PGA4P$Z81dTJ%K@gA-HX10 zwIDdG-GGh&@d=S0mCBTeR&O}2We>}pkI1AzR1BRSiGlb4;1hvSrk){CKIKz6vJ~Qw zC>aqCxmex`g4V`ULC8JQsdh#|z3ff^Wi2~^2x!|w`B1Ye)`o@$YtdP0#f*$AnL{)H zt2;xPx>gTNFzJbA7+$UERgT~({op5&yd!FLav zTL*B{Pd9I&IF9ZDS zE9GErooFYro{6pE5%Ow00+I$jK%v?qumK>u-DYSeEJE}* z!kierW;7>2j@3TPnK8Cfb&Mu)b{g8~uAeuNq_3o@C?HgOTrhev3qM35aRlAW*esOb z^}`@?mCJV^$ssNa`3mf<2DCvC|G{fOG*O^NC`uISK6bmB(;6p7#eX zX2WKk)qIL7#A+)#>##BU()K&D>|t>+b_ADn&12)_*<+jJp^2Dxhx>7IB$5N@# zE=5xiMIG;6l*>Z|qt!(O0rI9*n&5qgH$J5a&vNEQ(lWMYq*3gBk;hwcBvh7h*5HOa%}yA+mGcN< zqK*q&BPGzdOxg<74&@jrXfR6#?X`m9S83SRVv6lC7%cQc)bcb6a+im0oVW1I1>@sYAp5OFn1gH}87QLlZBUB~6s| zt41Vhv;=ttk&dj{K!d4Dm~Qu8PzGw%iXz!ro|nOn?>eD<;I`e_#K9W_2@JWUE^olb zsoYS@iN`GNj%%Fh`{o{z_eAvOx}+t5yF!?>03{CdZix10uacHqivuY!p}Ry}staDv zZ}54$YCy~uazT!Au?WLXo*i=9P-)a;htjuO%nExj>7POG$@$F_@YFkRAXUP z1YQJp$KCbGXO1Hu{|p0WztB-3og*1WBYhq54Uh6$hl}I?7HeWQ1|tOWr1}UHMc3n*dyH3?*Q)Z z=74V4&}Cm5$I*&HrRz!~AL&YN$=UbvOQQ90@u~jgw$ThGRvL{OGVaBarTAN@Ksj5| z%j0J4SO}=HEnT5?sz|Vzs0x!?FN~(2F;sK92mu4|A$tMFsAb`xPihBJ4BG_Sfs0#% zy+>tC2L~zZ$~RvyYOE<#S~XZ-5u3&tQ0$%`#XE!pxCI#+y!4g~D0Y~R`P_mv*G3e= z4^<<1VQ9oAp~9@{N`z8(1p4<=Ae?6}hYpn$UvXl29e+up6FXZdHx(D)^&wNY8PU(e zWZF%(&@*K6A$9lB77DX!1@syA4e?%m{F)8?i0JM&-i_@%O1oIbV|OI{nyNs>bIz=YH;w>%Q*mzP>M|7_)Q0gp79HZq``iqG|{b znO4nKqua^W|Ld%>{}Z#yUJ_4W8y${S=cemSMf`>a=MU(iS2r8PdJ8I?FXTKh zIH|2AZE$Ic?UupOIQ>c?*DdKf4Oe>U2^)L zI6QSJEofrQi^EbBT67_b83Y%_0-@&d5dHDA57S!OTnT^9ZD`s=K`7{8P#r;@zfla<#X zor4Um#jo@6{?E_Hi`t_jAFp9S)zk{8>`AH|K6ho}wPxW$6ayiCBG-@vMo-iLisi%s zjRimYYc)LeY)ffBn4pE2l%XBdAq}A%u4*E9Jn9UT_Wu?hu z?n$0bq+?~uKv~xK(bO8&hSKrpz^YEI2D3sW*TekKKODIEzn#);SmgYLa>nbEKZNnHLcQF z9V{Dd5nAsL?%j|}u9-qT&uA3$p;cCyaQr>UAMw%44tK*WG;#p??P;_oWa%noO|my- zI6W2XuNfH7vQ{h4yGs_Si5priPD2*au|olnwEV?|m>B*Av2U zhk|&osWLYPiH3mY%>d2VKEPms9N&WMi*yXi0MR{zc4%@xavuY#@sIzmj~Y zKd5}I0@j3cl{=u_@WdvrVsM^vt?Ny3K47)l>X7j}ochYZ8(wV-$l$DY#_i^($EN`U zT&;{>Z>&;9IkJY`ne>y=#5Z@EbnYKv`yI9p2b5R(?VPRUJq-9WujJ*h9qNo_*fgpE zeJ>zRP!*u!Wh}w6%YCegT$|;<`m#)-r)LV7{RYi^Y8?oSG zJhCXNae5`YlJ1(ir?3EPcBkk5GIO_%A>5j~58_ysO`DBk*itN}uY7OgreZMLwp?9JWlx6ZU=xSD3p*N9E zBhq#Y@8Mp$n_BPZbK;rb;N^hX;d1JwXg?$Qw1|+1m5c1GeU@xJn0)q`-HrtGW5t`h z$d~wvbzZv*3fL_A6!6+pMS;=DSLKw4$nQznJL?JLn@vDrp@M)_qsY$g*$^mIjedt6 z+3pQIc}E(`vlj}xITb!`?d38qsa_<(A)2Wp@^>ruipPjMU~#8~Ey&xcTf7qctV(um zE0McqMN-&`Yk|GeM;rK;Acg%0hDMJfXJ4|2>E)=`eh*gx=sM)has~PWH-U$<*`9YcA51l1~h!r@|07m)EjJ%L#&C zW2Kb*d{|wn zJiyk_*rBjlc=?dqUYRgW8k#y^yAh^86$I(iD`}FBjq65a4=4O|m5}W621t2cU;s&W zduX(`TtMFKX#Q53lupz0_8^8}f1Y--nXf zcjJ9aRXTqjPG;x91!OFLE+x}vaPqDD(@1jWd?wXK2D1ff9L>KrZmpHvoy=TV;}|YB zRIUK^!_=|H)$ni+$`Ac!-i-YCmV|OLD~+wS_{Ce3Xu~D*@!P`h z>D2fsT;rJ8=<^3l$)|_Xa(o%28GZh-(a!HWpN44h&auw#c6u77{h{%lTI}>2s;uW9 z-?vkXz5g~sU+MRF{*$w)5Sv; z1E!KBDp^mjyz?<|cfC%Uh}QMb4y7l8&G;Gr#;UlCa(|`e_ifGnQTd&ZT>=m1;?1JW z?(aIZYX>gxPIFk_bqESS8(x1;efzQ5U0)s}R^`)a82_=^OO()=^Gi2!5+I@-x>80$ zPitbO?<(UI8u51F1b_jjBh|X z?O%#jExwi}<%Pg4vPl!~*=pC;YCwDPy?Bx1?GC-2INx06e*kpiz5eO0qtB;kBu+av=H7v|&%?osxN zou0G1mAlPzV>91!xU#o3*}v$WY`*d7zI`xf%c9(oA3}d%5!`Wt!1rl*NnHe3CD!40 zW8IT|@PYZ`P;z2^Q+NHQsjw|-X2%zXlT&Ab?;@S~%XFrwrUsT+qXg!`+Z z@lLjK0#HaB(^didt=0N$QR!ZqIVO*lXDl_3YE+HRZ|X`eehoPG&0par?D>J={yMiS zp!0UNqG(sJOiJT(*>7a@koIg!|5zn}*>rZHP}q*aP@-C>LH16a`cu2Sl_o2ZdtT~( zkCH0`M@x^|PgLok0?&%d^u<`?GxkGB_#bk8fn8tJ||H2z}7e+6j-R9RbVuFGMnvDWU{r+xD7YOGybCC3^$I znU%rmh9mFKqhhmy#B5*qIlHI=IUtle(2P5VX%FJA6pPftGm~OO35$H@R?t08MaMSV zGEo)}21LD7w_1d|W8SPmV5x>yti3t*GZEGT_8dwlpQ|q)*_wMQ8M^jwyOLXJS#|7n zlnIlJ_;%;0@csf7_M;hAY(|HlA36Top2+cZ27&!#y4ovgmR}LpjqF{>xRl*SBLmW3 zYv2ppXn!rcOhnaNW}1PD+3iO#CJeT$G%bo+UA1%Hc{YC)h<;tl_Z$+z)(!`}8H(Tu zRN3#rvoJe8ei)p-1QS+vDc!;Qjk94jA zt7VNc5UKv19~Ar?LunAXs0##r*`QwuZ2RFrY$N3m!oY#BHGm&uF3g~z#w~C#WRr0Y z2KP2fi1y`RlwG9n4|8thVji|p^Mk7WqJ(%PMeiZ!I642<;k}%1L+_mN>sAof%*D7$ z*fkHw079EFk4+W(+iomZ{&r|=7ZIdKcqk=*hc3o61n+wMQo>V`49_DKjwWB~?$CvJ@ru!-X42&O z`c)-dV|C*fsCFjt{hx=%=7JVHFd@BC+PHqf7V(vf>lSXJG*;xdlR`4s%iOx4}9X^%B zY{-3Gl-+BpV`p+FKo2W|HTHZI=7RW(0O=8*-x69POC^D7)fY1`c}$vd=>Ia5z8?1O z^!k-%F{=8hnR2K21E+duq18b?%@>1DMp(74M;QB4PrtD!+_$VTzQ2~0F7_+gh*X_d z6)(kYAF?o+B6l##FLE`K2-nw;?Gix^ZImg?^})OJW^Lo}Tot|aa^GG2`&&3bK`d3$ z6JJW$jXOd#3CMq_%NleV zO5&rtHViDt*p{Fw2rBlOnXUD;=1SvALq5YlcG94PAhAK%DAlWsUxhuYG9Z)U5B*Q` zKy!mULq8j7f%#NyEy9Lo$!=C^p~nFmpo`vkxjxV!*NfI0C!N8>Fr~h-qCK`vjlgnU zK2TUSl*?fxB8whz3%$tU$AdVDnFKYP;RnQ^dUpQ#={VBCitTIm`%E^6mB+e&I#rIF z=zYOBJfsm=SoVHz|HWVP-XE(Jzo#dQGH`xJedP1=?+_uU0|te`iH3`f9;*y$#0_#= zH=t3^fOP?>m=)}0{iZzFw1b{>Cr%;aLA~;W!bKR7uj^H0&L$h$`|h0-68@!!XfC8b!C z%G6~kOOh$hKG;U;H<#-hxXsEK0=9Uj5e?6NFN$pGvv!v*V%HpF>qcmRAvlJp$m_S5 zq)M;4G7IH=ZhvzcDlhth2=BY7MDz|IPi% za|4|Ti-4@Plp&W1dAcc|wL(k_bC&%~77g%vSUrejVgsZ3J$>cv)%e@0IuyUy7mu9~9 zyqsJ>v9;Pt{j6zCH9oy^xkOUqbJIM1%FGv+b&$_f>Rs9L0@%LyKC@gDJkvX`%AuNa z8n;MHC$m3!5sb9q%|Etv@Lf1>XsErIR?|aog!5-WjC?rS3+oVoZnW!LD@{`9$Hlnx ztbKO8@uL(FSr{7NLkqvp8f;IJND8D|k` zH@D$Kl*R^r%rdzdr{#=9(Ae5qLGMuYMNCH)p*iwyF*%zq+z?u=>F;ws`=eG7ee>_7LSq4JPA9&MGZL zjt7=h`p)vB2Om@CI&#I1Q1rA0Ts}V-cbK9>k7Ryn& z(OiGKGG>H}@_+8pu;disih&~T#*qDr91L^1a(55>mqgx$ zS5EkV#a?db1l~#U?faNNhMr85f6p_SQz6R?!99Z0kwbWx5M3%8VXM|6uYb7v2Wl~s z=}^BRdr6#w;OP-gC|-3HMyeR0=H^6p#5j;FpcLwe$;Agh7wS4BUqB8H(?FC`*WoEb zIUAZ7-Jt%>dck){MhtG)oW<=HFBCzE{UXnaT0I{Pr2yf8`InXpu_*^aJx)Up`6b3L z_Itcv1TUV25|IA`CA>)g=>T=p#Iw?~HGz&$3*~Enx=~+UX+I_JqW!6&{NP5zGF3w? zTJF`Kyu8FS2{~cCRM^p>qC~~8fKuQG$s`DOMVLkHoh-xsx-}jzzAvVf_!?y zaNu&N4;pa9G=|uhUurZ-4qc5?aRYY{lTl5?1lT>>FW@A#@ivfuL~B zMi5rivCMd&G{Qht%Y<>SrF*9Wz1bg8%%I-QEt`sFk8TW85n3%YW^(4q@f_E)}Lc=G~fQTO)NoEOB1 zD@lguo=A@qtW9pOfmFc8=aTAJm39r`WI4_B2R&82(DWsIcZd^V98D)M>8}M1dpE^# zOCQt%9v8|DEA%6drhj%}##;<{U5gbDZp#9Al||m>%OD7e`{t>enQ?zCSl-(@`E%N& zuq?t1cibx`Fi=jLv-FLJ%&j4Qh^DvJ@NN#V!0w z9~w(V1blizY` zK8+dr`{BQd*#&Jv2l13z&dL!Qvg8tYEtj~?yVeekjH_r+OsfE0K_{b5>@iLnbrm9c zD067zbG5FxPyflZY6$|XmGX0#;;Aj^3c|o4W?BI2LN?|o*;~XEHr~v6(>Zl|{m@!% zon+XS3eX%kI(c~5m>&zZ_Mq1F@GI5oeOgYbnO4_iuAldj%k;zX6vSkUJL-r3N9Y(P zrP&8(Npiq{2QqC0K%#y830a?|g-qT$`9*ZphRL3@J~A{>$#1GTG;Gpz$>}K*(2n)d zKFT`TU;k)yNYO0xQ&20CZOio8D{~#=y_p)R=QV?P>O_RAd_iCXd50`-+pR)yZ2TMZ z@`^GT7MNf47HPbLmT{u1#V=-omehe+P#c*44n&cAC%+bmqi&Q=w8*{L{(nIX>R&cY zsh|ADbgU^ZxVU;=b`v5Ci#z+KoslnhoRRXhm-NcLwGtVF`6mXjxT z^QUnfs5bM*ef2fmh4SYk8&@}$@SCUTDh9#z&8^||Xh?`)k$Yr#V$gk!H8N=AZ%uB( ztwO4@Z<7BU8aoq=on$5fK<*_r6Tf?@zC4{TkYd>Be+`u`C~4dWhSLeHd6ATs|D{;H z(Vq+n<=qJWu=V=`p7AX~GZh_a~-ulHY#EpP0&No_^P#n95n6Cj5!1 zJj>Gq{=`%+^7Oy_iK)E6)9?8cbGgLRq(3p28cz@U6LYEa^uO)toy?`d)9?Eeb6Ml5 z>`%;v#77U2g=!VU@#2l){dmsGS}rg(u%?pNH?ZkJ{y7RfZU~Jsu|A z6d$$0!*8*V+TG!|+DC2e@R)tnz7CUsk+#~@;oq>2+R@?Pw2#`s;rr~Pwr}{i?4$N> z__yt&wrco(`>1^y{vG?MO&b1P`=}inp0JPFp5X`VqxNR_f7wTE%<%8oNA1e+qDbe&wX1FQ_)#(=B{S)vNEeN^k+O2o%UuoA@}yjPpnptaA8Eu$ z8a9-Sy|;eZPBo+s*zY?j8pkP`Te!OMbWYoZc&A0klB3DwqEoQsL!`GHG&q?cgQBEZ z`DAkP;`;UV<_#sRoP4@oU%=2qF1A8VlVtil`NDA4pokdLn|hC0zq{F7feuZb+uA&L z1^QlR#?xn-H=ad$A~XR?G^M)I>vb+8C6)ce@YrmCCzssK-q?ldefB+>NQh!u9ms^G zN72p@c4&>4bSr&wI9&)d9${-ioiFk=bbimyR>>4ac7umuf#gKcpXqJ-@OI?JF>RiJ6Z9LINTOgj&BtKkQp8$Fbj1Q> z;=WwJR$C?5;R+#EQlxi*kPgYhitCvBa#@k5(3>C})bQqNEdkwp$Filee8H(guz~|D z5Bmr&O4Xzge9aLZ4hx9ZgUVC}p|KPm#OoXn-h7g@vc0zLpBlC-VA+0it@D0u8`BzS za7;lro;)r|r%s~PaAv4%j-od+Z}hNT8Qbc?cx))RuGt$LwLJ3_P_{Y;6jL2p zkf^O^(0&>?>n-fkR=(U^MdO^pIx0T}>N!wCPjI23U<@k>DU%#8UB8vD-^*w-5blTctI#Q{jz{T45}m?s^ju}jf7rA zL&%$gD3`j2TD)LU8e43ux%si|x|t(b02VG%(=00yO+!^J%a1-f&)5Eqj_js%(vdbs zPb~_^Y*rq9bjByJq_M}++oL9(kv^qUPox(%YByLU7X<+!<{21=kL2X)7P1u%+$^0L zvIGm^u?0tLL+ zEG?k2StyZVND5Kt!ilv}`CxW$jAXs6u)_En@&IB}AuCtTXqJT!Z=dDBRjtugaTS*_n}T(;oH&XP*=QpwiVE|c!i zb--pZz@eVdKhK~BQiPj|saph(s+z0#fFjgvUJ7`+losPwrt6if72kqt2)aCc*a86v z)+^(^A5tE@y+r~fkM#3jEp7=&Ugp$pV_#@*9#!;_cHg3iW~*-|eq0_l9C4nr*s@}R?Zon`g3&@+e zW*+gfF!rzqXv=<89{WJV7UCq)0XAJx)n-fKC7NX z;u=1<0=yk|qi}~hC>-_U2A^p6)wgYMZ_!A4a<5U}-<c+Jh`D^7!bC&>o~`NFE_ z1$&@ZA^W8lO$(b5nFJ^3>@Tcm)UpAffJLESHrVMc?Q)u2u_A1?JE6CJN4MB(h-aib z@3>NiVED^uAHNyfBg0@uLq@FgrB;%Ax*8CSsNc_2-V_u1tF-khI+u~9J;DI z5CPG+-sHaY8RP~Zn=h+pYd04-nh5TQJq6}k+FH{9+e$e{77D2#Z0@8=a*waoZc&9I zK#8K4pSXbeLQf|=9Q$d4Et^OSY~~H>fAH@EX}@-gIuAENq|W%>c`A_&pK0erE6F2F zW=~d6Zuk!Wq_Dp_PE{cfa&S=wx+5a({W`-3R~la zdV9$`eu=l}{ix!X;<6QdGP)PN!48yZboxtSn*_JsjS}kW=(%b_=A%B_=Jx!u2^6H( z*&kV95%=yL)Q!n0cW%2u?!wS@`;m0I8Xv0rJ%we!7_&rgbKf`%8Dg%*XlGk3Y83q& zZc~mcZo9lSv&s0Cnqj5LbYCPC1cj%Szqz#&Sy4$}^g3~0SH}0Usk_`pN1^|BT2Xk< z%$-pb{wdd%i{6%Yty59>1;)+hi5!^G7E({DB9Ag(sM z15D2gHTYHM;xs-4Fir^SB@VjRsL9@nPCzIrX?%OoqPok zI*N>m)=S3&JS0wY$*9K&QD_U29L>62cOOX4P5%keVp&F^KT$_|)oT`ILJyFI_^g!4 zIE2RAhgalnh$@G(^c*Pr(y1&9N+xOV8Fh}p|6Z;yiQV0xiqGa}htrQlLr(mzyY~96 zV4P};-dySqqfb9`G0m+38CIF+cZ8rI3MXsKqFaBsrD5|qV#H`SmZ8dPo&hPl=o?pl z>?jKKjg#B7$`9guGY}Dldk{?=U-e=hQJklX`VwmPkdM=~q1n#bUfBgpV1MRuRt@~W z^Yyu+E~rjTvSFXYR(sa9c$_Grxw_SUGR-GRejU?^#a@F{LE0okyU1d|!z@d>qSp*+ z*XWh3KZx#!_&W2cyv-x(j*>CSPB;|~)jSDQTu0Po7pD^>K-4OHo1Gz3y7$7rgT>kT z6qjvN515ddV&MWT~~56C0Ia@&*gb>TTnv8`rS{OS00?+M?DNbqa)tq$4M^rEfj z*;K;}e3v%an->s|(X(fQYSi)kKsHxmf4_SsUfiKuD{PM`C; z%#yn(8K&lj*4lPi8KEND&b$E<39YVRoC|8&jP-})RL`pRBv|wt76L-V!|rEC`D9wQQXr(361!0;SH01)h>BZ`(4@$m5n4o? z4w*+hs)5T?6>FJcZPjvXYL0f5dL^y$9~dfxNkNK5$z@d7WFNU5^C|v`Px0mf?ncQo z>S#}W5JzA6b_YaZ%vvaqiEAfAfKb38Q=Vo-s?cjUcxiv-#|O%%-*N76`5^dFV^7(r z{j74!_U0fbT4~zD*H|C2EprL8LMXpYQd#;cs|QRt>`cp26(rp9Z~-vmJEFXr+9jE{ zb#UryGbGlh*bsYx{VDjnnZ2$*^fRs01MHut%#dIszG1a-r7mJ)H(ue6V!7EtDnDB8 z)LvDNb|3Fw2$PX33`)h~lzlmhp_{*?9L2AB1b2}QOx~|~1Q($KQ~7h{5x8QE`0PPN z8?QV?t!D|U_rx$1*n~V!W5ykHUxgklENcBf_5S8MBA%U}ou@5nN#qqC3nB=l^H%&XQec8yRKP zxR<>GR&ghG6tJjNlxI)Pb|e!tZ;PCEX1Dw``71L1x&}J<=a2N~#l(G(FvLnKEXW{8qJgGmBrsDfyFW|R?BQUO+0&m*s|sZb{os#r zY+FuMI-i#P?J|!XYcqA@FppZ`v>f<)h^K<*bB)Ieug3sq^E7GIW#zOA9b%g(5HGvF zYpB9goSjtBYd!>#%c=`(oKk?@3a@+8ltt-1ydz7TVqUB!=tZJs>Pq~vWLk>3?@YDL zP2kN#3N6EDx>6?;{_sByE=>R7^LtDItxy#vcRy0wnlhk@dHcG|wo+%bIMyq%2zZkDE5up7RKmE_4Zs#dek=s0Xy-#*Zc zf)efa7MPJay+-IY+6U7trjkLxddD7cPijTi<5?GmZ+ZTM*n=Htw%(nU@gA`G#n9BK z1q-dMBXjn#Qw-tp1u`-GKIBFT;6r2rmL`W&hE9xBWennVFdBdj5A111ka{x8 zUpUQq_9H;=s!TrAE-QYdvL7cdf|xi%+kRYq=hz~v*NDm66j4eHFD8?9&;#?zP=~G_ zj=S)1a5bj4=8bkOjcfh2Hb`h|2}Jw|eGbguAbydd32ruahyLp(@U zchtbB#kc3EcgcNXEGWVUXe9Y0^TVC|`Hs-B)`P&afMYUzOE{2AlvruBVB2>%mlFs%wbu0l z%RV~w#go>H!Nt2UMoh>rTrox~0`QKVq#al7%c`i2&zD1#Cnn(jhCF&6@j;NelcL*S z438~_sMqCd4NAq>vFQ?`2qY#E!cj#+78-4jrAKia0lnfL^xPy_!qQi(_(5se;pq*0uoS|Ja0Yc;t%ZD`Ol^rxk7!Xz=hwFc8;dozSw7Q=P|QtXG{6LyQ9Ubo$8r# zeHHoBRw#bqih^h=$-U`CY>+Km4a-whs3*zIjF%DBePCZUyG&0o8_wE%!B-_F&Ly># z@=FakND0+qJzF&xD{^~KqwUrARbz!PjBfLGiVRA}?9Mo@|5h(mk~A`tb_qc!0?3@P zq6E?=3D4Q04rtJ9%gY&SB@crT^_7P!i8QZOhfa=foE?+H)JZ4g#AJ9JLwDzHhqc94 zzC@o<$b8PMiY6+XiCPLu!;~n^y+PxG)Tqmk!_1}9UT!r^TM%wt*sH?!n(t^)wi@5V zxjAAzMJyWi`6`wVJX1Qx#G>{z8lTfb>aE(;*Z5s>uBPK);r^-v>42=jY2_$qV<)L z)JE)wcOJ1StUK=p8`Qp)+6JNeVDJR+tz$c=wKT z_Hxh|fp@~4L!B7>gWW`nVi#TF#m92$4rLM7Dvrw;927e8FiC#=G_Vy6BRnBpoTDwN z#+)CGKWGzvacARrH!>HFT<0mdC(VwDAElj7iBtYx;Nj@e^V|uf9sbxWgY-e2_@xM_ z-6*8rt>roj2`=br2kVR_to23_2Mvw8coQ{(SH(T2Q<3!Jr;T7{iW>76#IN$09pP>7Z;YTAJs{ZdaXc|vZXZI_wGs8 z))x*@%3`iTl`huOmXd8Dzjbd@9DI=C?H-hBaB#e~llskcM5dnW(7uVoLH~A7$`*Dh z;GkosYu-f+>5fWFnMTjxYg)tch#Si zqdl6xAETq}r}Zlg6EQ39v=*LWW}03wS3aQAfz7nZcqHSvB1AG{yVP+yj59wU?&y?j z?QD{PTOPXud`r3~9bf6h%dX< z%2UFIv!nlD<^iOjhT7Li1a`t1R z-6bOk3Ocvep-f5z(L-GY7w|V*&;&)z0IcI1Na>wG(Yv0%4-5%Aw}(V5j)wl zBJl`%F;{5clS(sHRIPz7ovdqU?-rF}zj4!Fja*nj=X~QkRo#1G>?39b&c27}p6bz* zSCStFelP5F@8w!`i3*?kNV4OM8||5Vw#do5_SAu`>QI-sc~M{S zF?$v+28$0rES}VVOV!2vM+Q6U$h3BbYP`+ONNUR-?oz}x{3+edfw1(U{QV?K6;=78HQ!*$s-Sszsr$O?vcMFv}XSWHMn( zL~m>m(`DG^u1lTh3klOuu7NX12KG^-^6mx`s3cMj8dQ_B)qm`8lYDK))98l`yc!`QiS3nsEwIKJ>Z<0}p9jQTl<%Vj~-|nwE8%V4xRbo zyQQ>pmNZiY8-pTSQrlRouU$svsMA6BRRE2N zu&peNc*^_=(J(XoW$=$w&}$$2(Px3K0}J^Ny3)}qWsdWNmfXRP0_A`m`RO6>DGVV1 zWxL~oNzG@+obeu0awE{GQ<8roc*NbM%yr@ijJZ6ML&mi zSeupuFYIZxOtydRbLf|@2u}6>@N{ckh2C(8w+bd=U)$yF19V(2%b2@aLsmIcU%$F} zO-9@mx)4?Z8(rYbDnsj{U3TIca!;2tu31AE|Ah6$>5HgV`Cgbd1rHA!0f`qzc6%`E zaCsKyf4(}#%1Lb{np3j3SFmyOI58=ey?w? zkTkvw1t6dFtXd+Zwamx8(^<{7@Z5CaMDKKR_i|X31Xdx=FDO7cGSS!ScyUT1XH^+> z*yS`2ILIme-s)L4KdXeHosXG)$<;mOu?asoV$gy9Uzy%lxr&Jx0kal9ePo? z01aSogW=XL=G&Ax+`E#Y`Z9Q)#KQPHnSqOo8Q3@{mC3fdn(KA<(6+edPucfq~2jp*e<&(Fhc@UMo)UJmL9k^`C* zR%IkqsI=udPnI^Iq4i=YmU$8GqXgAu>M<>Ct-C#YG@WhLZY;H%tE8`PuK)FL`lVyd zn@6beb0K_nBz}C!z@3W_#B3f$_1@Jm9F&{6b&u1-L7uIVV$i|x&ND`4G zbFW{pQGt6L$Ydb_KTf1<6UNO|q_US82bF}QQldo`dufS!SM{YO1$CI%WJ@EEBABE_ z!l4I2K)JHIP5K?Ot}1Xrf+^i)V`sDCOT`piOkrLcE7%?>#;jaB4mCXnhIE4@YI%B= zM<1n}L~ZraN0BwCnp!@2<%(O90nXXmM zSb@xXwJ6JVlv(k1V_n%();Ez!Uq}~G&l0pNQ-E#(!m*UVd0Dz7 z-)k3YH?QFXNG2Iu8;*wW@XKI-08z&z2pu_#6@Q%sS6ma?y{xYsK*0wfTbRyOW8EJ4 z*XBa5cRVR`7=31AYjab)DP3a3&ez$hn+rcMqjm}oXy3zl5jC>#mEmUwz=5Enc(!eC zjt>>QHaC})ooj7t4cy;sp%`a~&R44KAGhVyknO~Lnl zUs8E!caddLn6Sm+Ryh{x`(o_cnj^7%_e4x%=Nw;#z2KJxCYk+2Wa?=tRnNsRu^$>n zTOk!g4DNYS99tyQl`HbIU_lXNL6iaqLKdh^trpn;(PMpidnqFkPV|Tprw*O;8|_c( z(1y=C-1E+9o?dw>87jY!`bx7sX7{w`l#t(2D4ki0@OP2xq6N;lsJ6UnDcq4KY!jSJ zY3KE>K>RT~#hPt|?Lr`3hY#CS0o%#c*AG(LX<_-S$!C8uWb_4^MsO!a%|t{G9?>{-$8JN3!g1iZCl5cPGdeI28&J^qeW3M3!y`=Y7=$u?&X~=V#`Uus;-*3AoNGnW7SjqH)`7eoZ}ya^sQC zr^APLq&)bf-$^6PUk{J&i3^%3a5JUSh4ib#3Dt(;{(p5iEnR@F8^V3Glpcyy$w)Xq zpb}mu;jk5cNWR)9jqBnw7*&sxCydMbLbzNHzAH(NrW4xG_QAg$CIzg2e(WFf&+q(~ z{PUrI&p$u@U-{>ErKRlMKfE{pJoiBU`H4sLdD6$4Jy>`+_+;VXvD1ZzcU~+!9I6!_ z9$zawylb0>MDri|yWxaCs^6`pUms5ROYV9+O|+b$e;Q8sOG;yF>9>aY%-p} zPWVgi`sd-~pNGc|wKtY(EgUgX&Nh~(5%rh2A=a<9Cl>0hivk$sAXDJ1j{?omzYZt- zS-;;`zu)I!Smg~FK=2y+kKu$rYw(|H@SkeH|J6W19Qw&{!k;zxZ#DRDHPDi1Ajl4l zP%x8!HT8Q+G`NQctCdItfqUpa%43EG_p8DEYM=^=G|(OlJxF29(BL68ct{OYSCIzV zn4$gD!wd}$sKEg>P_;!GXtRbMXWgN}6Ke2;8mI;%4YYwn^Ax-c4Nj`TNi|SqMjB{S zht5*jGBkKr4W3m4)oY}IHhSm<3R;E+m(<{r8mNjR4Qgsor;cT4&`^Vh8mP7-4c64) z1C%Ze4Yt%^OAS=C;E@@zUPN#z1ifORf`Y zqC$)+q?3Ux$1jpkl!|pFp(@=eIX((>s4MwNLGDwfgg@1l{4}*p`+;gQFlnW!j6>sP zl4w}E(>{xgGkh>jKcb|})7g77Qbl<*LnLR>jE03wN+qsR~cgEqs$aH{&iHdK? zgf)pBIg50(YPV8knBi)_jm5R2gOw)k0OD*d;S-PpDAC`9B@q_aY!MT+rIJQVSbB*c zY+fm)lgK02xY`G9XIlQ|S=bk!o%jYh6P#WFsFEsyG;FSQCzWqC^u`2{M8yYni9ybV z0aycZCemLpes0P5K5al`{?!VQ1=*5On^#^Fn4)Uj^H~j;!J%`CoDCjwS8y1#grkzw zU9lq(EXXHTstV+o`Q`zeL)E3Ws;nmbEUBt!;xIiQnxQj z?a<+EVp^TW@%NLS0J2mwv)m8Uu5iyuy+-zw@pMAT-%qb3$@EFN7*jRI;uO6flP_w%Ln z#bbO6WpCArSzk;+cQVy)njF7Yz4DOny8C%V6gMKNl?$#CMzcCp%rGkjx7w7S$LSRJ z^H9t^ppel^rO&ZmgIk`uqv|1k2({Jdh*>zd$WB)>E!t-Q%NB{LOzRdd0l?17@2h63 zQ&{VhwjfCzwxlq=^vnvW1y(4Knu_6Gjur?;(KP@x&2SrU7|yf`ArXObfl;bCV3#bK zhw~lKzxzc|xX{G$pI9`t(OYKo61PWbdQT`6_l=%

XnOTLuC7B4H6 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 z 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 mf@b(~XmsgVn-X&emFf-xaoe3gt&4*DOjz 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 aV*b?|HWQZe*hQ_=dac!uoPYIE^Z#GuNc^n; diff --git a/src/client.rs b/src/client.rs index 98464e0fe..f78131317 100644 --- a/src/client.rs +++ b/src/client.rs @@ -9,8 +9,6 @@ pub struct Client { rpc: RpcClient, /// Access to chain APIs such as storage, events etc. chain_api: ChainClient, - /// Raw RPC client. - raw_rpc: RawRpcClient, } impl Client { @@ -38,7 +36,7 @@ impl Client { }; let chain_api = ChainClient::from_rpc_client(rpc.clone()).await?; - Ok(Self { rpc: RpcClient::new(rpc.clone()), raw_rpc: rpc, chain_api }) + Ok(Self { rpc: RpcClient::new(rpc), chain_api }) } /// Get a reference to the RPC interface exposed by subxt. @@ -50,9 +48,4 @@ impl Client { pub fn chain_api(&self) -> &ChainClient { &self.chain_api } - - /// Get a reference to the raw rpc client API. - pub fn raw_rpc(&self) -> &RawRpcClient { - &self.raw_rpc - } } diff --git a/src/commands/dry_run.rs b/src/commands/dry_run.rs index b82bdf229..f2a72bb09 100644 --- a/src/commands/dry_run.rs +++ b/src/commands/dry_run.rs @@ -17,6 +17,7 @@ //! The dry-run command. use pallet_election_provider_multi_phase::RawSolution; +use subxt::config::DefaultExtrinsicParamsBuilder; use crate::{ client::Client, epm, error::Error, helpers::storage_at, opt::Solver, prelude::*, @@ -115,12 +116,8 @@ where let nonce = client.rpc().system_account_next_index(signer.account_id()).await?; let tx = epm::signed_solution(raw_solution)?; - let xt = client.chain_api().tx().create_signed_with_nonce( - &tx, - &*signer, - nonce, - Default::default(), - )?; + let params = DefaultExtrinsicParamsBuilder::new().nonce(nonce).build(); + let xt = client.chain_api().tx().create_signed(&tx, &*signer, params).await?; let dry_run_bytes = client.rpc().dry_run(xt.encoded(), config.at).await?; let dry_run_result = dry_run_bytes.into_dry_run_result(&client.chain_api().metadata())?; diff --git a/src/commands/monitor.rs b/src/commands/monitor.rs index 0134454bd..1d7fda934 100644 --- a/src/commands/monitor.rs +++ b/src/commands/monitor.rs @@ -29,7 +29,7 @@ use clap::Parser; use codec::{Decode, Encode}; use frame_election_provider_support::NposSolution; use futures::future::TryFutureExt; -use jsonrpsee::core::Error as JsonRpseeError; +use jsonrpsee::core::ClientError as JsonRpseeError; use pallet_election_provider_multi_phase::{RawSolution, SolutionOf}; use sp_runtime::Perbill; use std::{str::FromStr, sync::Arc}; @@ -533,23 +533,21 @@ async fn submit_and_watch_solution( ) -> Result<(), Error> { let tx = epm::signed_solution(RawSolution { solution, score, round })?; - // TODO: https://github.com/paritytech/polkadot-staking-miner/issues/730 - // - // The extrinsic mortality length is static and doesn't know when the - // signed phase ends. - let signed_phase_len = client + // session == epoch + let session_len = client .chain_api() .constants() - .at(&runtime::constants().election_provider_multi_phase().signed_phase())?; + .at(&runtime::constants().babe().epoch_duration())?; + + // TODO: https://github.com/paritytech/polkadot-staking-miner/issues/730 + // + // The extrinsic mortality length is static and it doesn't know when the signed phase ends. let xt_cfg = DefaultExtrinsicParamsBuilder::default() - .mortal(at, signed_phase_len as u64) + .nonce(nonce) + .mortal(at, session_len) .build(); - let xt = - client - .chain_api() - .tx() - .create_signed_with_nonce(&tx, &*signer, nonce as u64, xt_cfg)?; + let xt = client.chain_api().tx().create_signed(&tx, &*signer, xt_cfg).await?; if dry_run { let dry_run_bytes = client.rpc().dry_run(xt.encoded(), None).await?; diff --git a/src/epm.rs b/src/epm.rs index 5f31663a1..d74ce57b8 100644 --- a/src/epm.rs +++ b/src/epm.rs @@ -37,12 +37,13 @@ use pallet_election_provider_multi_phase::{ unsigned::TrimmingStatus, RawSolution, ReadySolution, SolutionOf, SolutionOrSnapshotSize, }; use scale_info::{PortableRegistry, TypeInfo}; -use scale_value::scale::{decode_as_type, TypeId}; +use scale_value::scale::decode_as_type; use sp_npos_elections::{ElectionScore, VoteWeight}; use subxt::{dynamic::Value, tx::DynamicPayload}; const EPM_PALLET_NAME: &str = "ElectionProviderMultiPhase"; +type TypeId = u32; type MinerVoterOf = frame_election_provider_support::Voter; type RoundSnapshot = pallet_election_provider_multi_phase::RoundSnapshot; @@ -512,7 +513,7 @@ fn to_scale_value(val: T) -> Result< let bytes = val.encode(); - decode_as_type(&mut bytes.as_ref(), ty_id, &types) + decode_as_type(&mut bytes.as_ref(), &ty_id, &types) .map(|v| v.remove_context()) .map_err(|e| { Error::DynamicTransaction(format!( diff --git a/src/error.rs b/src/error.rs index 0ec98aa93..cedcd8c3c 100644 --- a/src/error.rs +++ b/src/error.rs @@ -23,7 +23,7 @@ pub enum Error { #[error("I/O error: `{0}`")] Io(#[from] std::io::Error), #[error("RPC error: `{0}`")] - RpcError(#[from] jsonrpsee::core::Error), + RpcError(#[from] jsonrpsee::core::ClientError), #[error("subxt error: `{0}`")] Subxt(#[from] subxt::Error), #[error("Crypto error: `{0:?}`")] diff --git a/src/helpers.rs b/src/helpers.rs index 50a29b955..76d0f69eb 100644 --- a/src/helpers.rs +++ b/src/helpers.rs @@ -17,7 +17,7 @@ use crate::{error::Error, prelude::*}; use codec::Decode; use frame_support::weights::Weight; -use jsonrpsee::core::Error as JsonRpseeError; +use jsonrpsee::core::ClientError as JsonRpseeError; use pin_project_lite::pin_project; use serde::Deserialize; use std::{ diff --git a/src/main.rs b/src/main.rs index 2dde7e52e..5a4c4f16c 100644 --- a/src/main.rs +++ b/src/main.rs @@ -40,12 +40,10 @@ mod signer; mod static_types; use clap::Parser; -use codec::Decode; use error::Error; use futures::future::{BoxFuture, FutureExt}; use prelude::*; use std::str::FromStr; -use subxt::backend::rpc::RpcSubscription; use tokio::sync::oneshot; use tracing_subscriber::EnvFilter; @@ -130,7 +128,7 @@ async fn main() -> Result<(), Error> { // Start a new tokio task to perform the runtime updates in the background. // if this fails then the miner will be stopped and has to be re-started. let (tx_upgrade, rx_upgrade) = oneshot::channel::(); - tokio::spawn(runtime_upgrade_task(client.clone(), tx_upgrade, runtime_version.spec_version)); + tokio::spawn(runtime_upgrade_task(client.chain_api().clone(), tx_upgrade)); let res = any_runtime!(chain, { let fut = match command { @@ -209,85 +207,49 @@ async fn run_command( } /// Runs until the RPC connection fails or updating the metadata failed. -async fn runtime_upgrade_task(client: Client, tx: oneshot::Sender, mut spec_version: u32) { - use sp_core::storage::StorageChangeSet; - - async fn new_update_stream( - client: &Client, - ) -> Result>, subxt::Error> { - use sp_core::Bytes; - use subxt::rpc_params; - - let storage_key = Bytes(runtime::storage().system().last_runtime_upgrade().to_root_bytes()); - - client - .raw_rpc() - .subscribe( - "state_subscribeStorage", - rpc_params![vec![storage_key]], - "state_unsubscribeStorage", - ) - .await - } +async fn runtime_upgrade_task(client: ChainClient, tx: oneshot::Sender) { + let updater = client.updater(); - let mut update_stream = match new_update_stream(&client).await { - Ok(s) => s, + let mut update_stream = match updater.runtime_updates().await { + Ok(u) => u, Err(e) => { - _ = tx.send(e.into()); - return; + let _ = tx.send(e.into()); + return }, }; - let close_err = loop { - let change_set = match update_stream.next().await { - Some(Ok(changes)) => changes, - Some(Err(err)) => break err.into(), - None => { - update_stream = match new_update_stream(&client).await { - Ok(sub) => sub, - Err(err) => break err.into(), + loop { + // if the runtime upgrade subscription fails then try establish a new one and if it fails quit. + let update = match update_stream.next().await { + Some(Ok(update)) => update, + _ => { + log::warn!(target: LOG_TARGET, "Runtime upgrade subscription failed"); + update_stream = match updater.runtime_updates().await { + Ok(u) => u, + Err(e) => { + let _ = tx.send(e.into()); + return + }, }; - continue; + continue }, }; - let at = change_set.block; - assert!(change_set.changes.len() < 2, "Only one storage change per runtime upgrade"); - let Some(bytes) = change_set.changes.get(0).and_then(|v| v.1.clone()) else { continue }; - let next: runtime::runtime_types::frame_system::LastRuntimeUpgradeInfo = - match Decode::decode(&mut bytes.0.as_ref()) { - Ok(n) => n, - Err(e) => break e.into(), - }; - - if next.spec_version > spec_version { - let metadata = match client.rpc().state_get_metadata(Some(at)).await { - Ok(m) => m, - Err(err) => break err.into(), - }; - - let runtime_version = match client.rpc().state_get_runtime_version(Some(at)).await { - Ok(r) => r, - Err(err) => break err.into(), - }; - - client.chain_api().set_metadata(metadata); - client.chain_api().set_runtime_version(subxt::backend::RuntimeVersion { - spec_version: runtime_version.spec_version, - transaction_version: runtime_version.transaction_version, - }); - - spec_version = next.spec_version; - prometheus::on_runtime_upgrade(); - - log::info!(target: LOG_TARGET, "Runtime upgraded to v{spec_version}"); - if let Err(e) = epm::update_metadata_constants(client.chain_api()) { - break e; - } + let version = update.runtime_version().spec_version; + match updater.apply_update(update) { + Ok(()) => { + if let Err(e) = epm::update_metadata_constants(&client) { + let _ = tx.send(e); + return + } + prometheus::on_runtime_upgrade(); + log::info!(target: LOG_TARGET, "upgrade to version: {} successful", version); + }, + Err(e) => { + log::debug!(target: LOG_TARGET, "upgrade to version: {} failed: {:?}", version, e); + }, } - }; - - let _ = tx.send(close_err.into()); + } } #[cfg(test)] diff --git a/src/static_types.rs b/src/static_types.rs index a21f5fc6d..3be783996 100644 --- a/src/static_types.rs +++ b/src/static_types.rs @@ -145,8 +145,6 @@ pub mod westend { pub mod polkadot { use super::*; - use frame_support::traits::ConstU32; - use pallet_election_provider_multi_phase::{RawSolution, SolutionOrSnapshotSize}; // SYNC frame_election_provider_support::generate_solution_type!(