From 30a4c91916b360f71f376be8bb0b033acb075dcc Mon Sep 17 00:00:00 2001 From: Ivan Frolov Date: Sat, 11 Jan 2025 21:39:22 -0500 Subject: [PATCH 01/73] feat: added mpc getter and updated near-plugins --- near/Cargo.lock | 1862 +++++++++++++++++++++++------------ near/omni-bridge/src/lib.rs | 3 + 2 files changed, 1234 insertions(+), 631 deletions(-) diff --git a/near/Cargo.lock b/near/Cargo.lock index 0c59d9a2..d9469665 100644 --- a/near/Cargo.lock +++ b/near/Cargo.lock @@ -1,6 +1,6 @@ # This file is automatically @generated by Cargo. # It is not intended for manual editing. -version = 3 +version = 4 [[package]] name = "Inflector" @@ -21,7 +21,7 @@ dependencies = [ "actix-macros", "actix-rt", "actix_derive", - "bitflags 2.6.0", + "bitflags 2.7.0", "bytes", "crossbeam-channel", "futures-core", @@ -44,7 +44,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e01ed3140b2f8d422c68afa1ed2e85d996ea619c988ac834d255db32138655cb" dependencies = [ "quote", - "syn 2.0.75", + "syn 2.0.96", ] [[package]] @@ -59,13 +59,13 @@ dependencies = [ [[package]] name = "actix_derive" -version = "0.6.1" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c7db3d5a9718568e4cf4a537cfd7070e6e6ff7481510d0237fb529ac850f6d3" +checksum = "b6ac1e58cded18cb28ddc17143c4dea5345b3ad575e14f32f66e4054a56eb271" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.96", ] [[package]] @@ -132,11 +132,17 @@ dependencies = [ "memchr", ] +[[package]] +name = "allocator-api2" +version = "0.2.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" + [[package]] name = "alloy-json-abi" -version = "0.8.0" +version = "0.8.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "299d2a937b6c60968df3dad2a988b0f0e03277b344639a4f7a31bd68e6285e59" +checksum = "731ea743b3d843bc657e120fb1d1e9cc94f5dab8107e35a82125a63e6420a102" dependencies = [ "alloy-primitives", "alloy-sol-type-parser", @@ -146,31 +152,36 @@ dependencies = [ [[package]] name = "alloy-primitives" -version = "0.8.0" +version = "0.8.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a767e59c86900dd7c3ce3ecef04f3ace5ac9631ee150beb8b7d22f7fa3bbb2d7" +checksum = "788bb18e8f61d5d9340b52143f27771daf7e1dccbaf2741621d2493f9debf52e" dependencies = [ "alloy-rlp", "bytes", "cfg-if 1.0.0", "const-hex", - "derive_more", - "hex-literal", + "derive_more 1.0.0", + "foldhash", + "hashbrown 0.15.2", + "indexmap 2.7.0", "itoa", "k256", "keccak-asm", + "paste", "proptest", "rand", "ruint", + "rustc-hash", "serde", + "sha3", "tiny-keccak", ] [[package]] name = "alloy-rlp" -version = "0.3.8" +version = "0.3.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26154390b1d205a4a7ac7352aa2eb4f81f391399d4e2f546fb81a2f8bb383f62" +checksum = "f542548a609dca89fcd72b3b9f355928cf844d4363c5eed9c5273a3dd225e097" dependencies = [ "arrayvec", "bytes", @@ -178,66 +189,66 @@ dependencies = [ [[package]] name = "alloy-sol-macro" -version = "0.8.0" +version = "0.8.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "183bcfc0f3291d9c41a3774172ee582fb2ce6eb6569085471d8f225de7bb86fc" +checksum = "a07b74d48661ab2e4b50bb5950d74dbff5e61dd8ed03bb822281b706d54ebacb" dependencies = [ "alloy-sol-macro-expander", "alloy-sol-macro-input", - "proc-macro-error", + "proc-macro-error2", "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.96", ] [[package]] name = "alloy-sol-macro-expander" -version = "0.8.0" +version = "0.8.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71c4d842beb7a6686d04125603bc57614d5ed78bf95e4753274db3db4ba95214" +checksum = "19cc9c7f20b90f9be1a8f71a3d8e283a43745137b0837b1a1cb13159d37cad72" dependencies = [ "alloy-sol-macro-input", "const-hex", "heck 0.5.0", - "indexmap 2.4.0", - "proc-macro-error", + "indexmap 2.7.0", + "proc-macro-error2", "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.96", "syn-solidity", "tiny-keccak", ] [[package]] name = "alloy-sol-macro-input" -version = "0.8.0" +version = "0.8.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1306e8d3c9e6e6ecf7a39ffaf7291e73a5f655a2defd366ee92c2efebcdf7fee" +checksum = "713b7e6dfe1cb2f55c80fb05fd22ed085a1b4e48217611365ed0ae598a74c6ac" dependencies = [ "const-hex", "dunce", "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.96", "syn-solidity", ] [[package]] name = "alloy-sol-type-parser" -version = "0.8.0" +version = "0.8.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4691da83dce9c9b4c775dd701c87759f173bd3021cbf2e60cde00c5fe6d7241" +checksum = "1eda2711ab2e1fb517fc6e2ffa9728c9a232e296d16810810e6957b781a1b8bc" dependencies = [ "serde", - "winnow 0.6.18", + "winnow", ] [[package]] name = "alloy-sol-types" -version = "0.8.0" +version = "0.8.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "577e262966e92112edbd15b1b2c0947cc434d6e8311df96d3329793fe8047da9" +checksum = "e3b478bc9c0c4737a04cd976accde4df7eba0bdc0d90ad6ff43d58bc93cf79c1" dependencies = [ "alloy-json-abi", "alloy-primitives", @@ -263,9 +274,9 @@ dependencies = [ [[package]] name = "anstream" -version = "0.6.15" +version = "0.6.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64e15c1ab1f89faffbf04a634d5e1962e9074f2741eef6d97f3c4e322426d526" +checksum = "8acc5369981196006228e28809f761875c0327210a891e941f4c683b3a99529b" dependencies = [ "anstyle", "anstyle-parse", @@ -278,49 +289,49 @@ dependencies = [ [[package]] name = "anstyle" -version = "1.0.8" +version = "1.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bec1de6f59aedf83baf9ff929c98f2ad654b97c9510f4e70cf6f661d49fd5b1" +checksum = "55cc3b69f167a1ef2e161439aa98aed94e6028e5f9a59be9a6ffb47aef1651f9" [[package]] name = "anstyle-parse" -version = "0.2.5" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb47de1e80c2b463c735db5b217a0ddc39d612e7ac9e2e96a5aed1f57616c1cb" +checksum = "3b2d16507662817a6a20a9ea92df6652ee4f94f914589377d69f3b21bc5798a9" dependencies = [ "utf8parse", ] [[package]] name = "anstyle-query" -version = "1.1.1" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d36fc52c7f6c869915e99412912f22093507da8d9e942ceaf66fe4b7c14422a" +checksum = "79947af37f4177cfead1110013d678905c37501914fba0efea834c3fe9a8d60c" dependencies = [ - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] name = "anstyle-wincon" -version = "3.0.4" +version = "3.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5bf74e1b6e971609db8ca7a9ce79fd5768ab6ae46441c572e46cf596f59e57f8" +checksum = "2109dbce0e72be3ec00bed26e6a7479ca384ad226efdd66db8fa2e3a38c83125" dependencies = [ "anstyle", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] name = "anyhow" -version = "1.0.87" +version = "1.0.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10f00e1f6e58a40e807377c75c6a7f97bf9044fab57816f2414e6f5f4499d7b8" +checksum = "34ac096ce696dc2fcabef30516bb13c0a68a11d30131d3df6f04711467681b04" [[package]] name = "arbitrary" -version = "1.3.2" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d5a26814d8dcb93b0e5a0ff3c6d80a8843bafb21b39e8e18a6f05471870e110" +checksum = "dde20b3d026af13f561bdd0f15edf01fc734f0dafcedbaf42bba506a9517f223" dependencies = [ "derive_arbitrary", ] @@ -355,7 +366,7 @@ dependencies = [ "ark-std 0.4.0", "derivative", "digest 0.10.7", - "itertools", + "itertools 0.10.5", "num-bigint 0.4.6", "num-traits", "paste", @@ -457,9 +468,9 @@ checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" [[package]] name = "async-stream" -version = "0.3.5" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd56dd203fef61ac097dd65721a419ddccb106b2d2b70ba60a6b529f03961a51" +checksum = "0b5a71a6f37880a80d1d7f19efd781e4b5de42c88f0722cc13bcb6cc2cfe8476" dependencies = [ "async-stream-impl", "futures-core", @@ -468,24 +479,24 @@ dependencies = [ [[package]] name = "async-stream-impl" -version = "0.3.5" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" +checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.96", ] [[package]] name = "async-trait" -version = "0.1.82" +version = "0.1.85" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a27b8a3a6e1a44fa4c8baf1f653e4172e81486d4941f2237e20dc2d0cf4ddff1" +checksum = "3f934833b4b7233644e5848f235df3f57ed8c80f1528a26c3dfa13d2147fa056" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.96", ] [[package]] @@ -502,14 +513,14 @@ checksum = "3c87f3f15e7794432337fc718554eaa4dc8f04c9677a950ffe366f20a162ae42" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.96", ] [[package]] name = "autocfg" -version = "1.3.0" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" +checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" [[package]] name = "axum" @@ -524,7 +535,7 @@ dependencies = [ "futures-util", "http 0.2.12", "http-body 0.4.6", - "hyper 0.14.30", + "hyper 0.14.32", "itoa", "matchit", "memchr", @@ -534,7 +545,7 @@ dependencies = [ "rustversion", "serde", "sync_wrapper 0.1.2", - "tower", + "tower 0.4.13", "tower-layer", "tower-service", ] @@ -615,9 +626,9 @@ dependencies = [ [[package]] name = "bip39" -version = "2.0.0" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93f2635620bf0b9d4576eb7bb9a38a55df78bd1205d26fa994b25911a69f212f" +checksum = "33415e24172c1b7d6066f6d999545375ab8e1d95421d6784bdfff9496f292387" dependencies = [ "bitcoin_hashes", "rand", @@ -641,11 +652,21 @@ version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" +[[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" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90064b8dee6815a6470d60bad07bbbaee885c0e12d04177138fa3291a01b7bc4" +checksum = "1930a4dabfebb8d7d9992db18ebe3ae2876f0a305fab206fd168df931ede293b" +dependencies = [ + "bitcoin-internals", + "hex-conservative", +] [[package]] name = "bitflags" @@ -655,9 +676,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.6.0" +version = "2.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" +checksum = "1be3f42a67d6d345ecd59f675f3f012d6974981560836e938c22b424b85ce1be" [[package]] name = "bitvec" @@ -698,11 +719,23 @@ dependencies = [ "generic-array", ] +[[package]] +name = "blst" +version = "0.3.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4378725facc195f1a538864863f6de233b500a8862747e7f165078a419d5e874" +dependencies = [ + "cc", + "glob", + "threadpool", + "zeroize", +] + [[package]] name = "borsh" -version = "1.5.1" +version = "1.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6362ed55def622cddc70a4746a68554d7b687713770de539e59a739b249f8ed" +checksum = "2506947f73ad44e344215ccd6403ac2ae18cd8e046e581a441bf8d199f257f03" dependencies = [ "borsh-derive", "cfg_aliases", @@ -710,16 +743,15 @@ dependencies = [ [[package]] name = "borsh-derive" -version = "1.5.1" +version = "1.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3ef8005764f53cd4dca619f5bf64cafd4664dada50ece25e4d81de54c80cc0b" +checksum = "c2593a3b8b938bd68373196c9832f516be11fa487ef4ae745eb282e6a56a7244" dependencies = [ "once_cell", - "proc-macro-crate 3.1.0", + "proc-macro-crate 3.2.0", "proc-macro2", "quote", - "syn 2.0.75", - "syn_derive", + "syn 2.0.96", ] [[package]] @@ -748,9 +780,9 @@ dependencies = [ [[package]] name = "bstr" -version = "1.10.0" +version = "1.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40723b8fb387abc38f4f4a37c09073622e41dd12327033091ef8950659e6dc0c" +checksum = "531a9155a481e2ee699d4f98f43c0ca4ff8ee1bfd55c31e9e98fb29d2b176fe0" dependencies = [ "memchr", "serde", @@ -798,9 +830,9 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" -version = "1.7.1" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8318a53db07bb3f8dca91a600466bdb3f2eaadeedfdbcf02e1accbad9271ba50" +checksum = "325918d6fe32f23b19878fe4b34794ae41fc19ddbe53b10571a4874d44ffd39b" dependencies = [ "serde", ] @@ -856,7 +888,7 @@ dependencies = [ "clap", "color-eyre", "colored", - "derive_more", + "derive_more 0.99.18", "dunce", "env_logger", "git2", @@ -891,21 +923,21 @@ dependencies = [ [[package]] name = "cargo-platform" -version = "0.1.8" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24b1f0365a6c6bb4020cd05806fd0d33c44d38046b8bd7f0e40814b9763cabfc" +checksum = "e35af189006b9c0f00a064685c727031e3ed2d8020f7ba284d78cc2671bd36ea" dependencies = [ "serde", ] [[package]] name = "cargo-util" -version = "0.2.14" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc680c90073156fb5280c0c0127b779eef1f6292e41f7d6621acba3041e81c7d" +checksum = "7cccd15f96a29696e13e1d5fa10dd1dbed2e172f58b6e6124a9a4fa695363fdd" dependencies = [ "anyhow", - "core-foundation", + "core-foundation 0.10.0", "filetime", "hex", "ignore", @@ -918,7 +950,7 @@ dependencies = [ "tempfile", "tracing", "walkdir", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -929,17 +961,17 @@ checksum = "2d886547e41f740c616ae73108f6eb70afe6d940c7bc697cb30f13daec073037" dependencies = [ "camino", "cargo-platform", - "semver 1.0.23", + "semver 1.0.24", "serde", "serde_json", - "thiserror", + "thiserror 1.0.69", ] [[package]] name = "cc" -version = "1.1.16" +version = "1.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9d013ecb737093c0e86b151a7b837993cf9ec6c502946cfb44bedc392421e0b" +checksum = "ad0cf6e91fde44c773c6ee7ec6bba798504641a8bc2eb7e37a04ffbf4dfaa55a" dependencies = [ "jobserver", "libc", @@ -966,9 +998,9 @@ checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" [[package]] name = "chrono" -version = "0.4.38" +version = "0.4.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401" +checksum = "7e36cc9d416881d2e24f9a963be5fb1cd90966419ac844274161d10488b3e825" dependencies = [ "android-tzdata", "iana-time-zone", @@ -991,9 +1023,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.17" +version = "4.5.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e5a21b8495e732f1b3c364c9949b201ca7bae518c502c80256c96ad79eaf6ac" +checksum = "a8eb5e908ef3a6efbe1ed62520fb7287959888c88485abe072543190ecc66783" dependencies = [ "clap_builder", "clap_derive", @@ -1001,9 +1033,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.17" +version = "4.5.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8cf2dd12af7a047ad9d6da2b6b249759a22a7abc0f474c1dae1777afa4b21a73" +checksum = "96b01801b5fc6a0a232407abc821660c9c6d25a1cafc0d4f85f29fb8d9afc121" dependencies = [ "anstream", "anstyle", @@ -1013,21 +1045,21 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.5.13" +version = "4.5.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "501d359d5f3dcaf6ecdeee48833ae73ec6e42723a1e52419c79abf9507eec0a0" +checksum = "54b755194d6389280185988721fffba69495eed5ee9feeee9a599b53db80318c" dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.96", ] [[package]] name = "clap_lex" -version = "0.7.2" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1462739cb27611015575c0c11df5df7601141071f07518d56fcc1be504cbec97" +checksum = "f46ad14479a25103f283c0f10005961cf086d8dc42205bb44c46ac563475dca6" [[package]] name = "color-eyre" @@ -1058,38 +1090,38 @@ dependencies = [ [[package]] name = "colorchoice" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3fd119d74b830634cea2a0f58bbd0d54540518a14397557951e79340abc28c0" +checksum = "5b63caa9aa9397e2d9480a9b13673856c78d8ac123288526c37d7839f2a86990" [[package]] name = "colored" -version = "2.1.0" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbf2150cce219b664a8a70df7a1f933836724b503f8a413af9365b4dcc4d90b8" +checksum = "117725a109d387c937a1533ce01b450cbde6b88abceea8473c4d7a85853cda3c" dependencies = [ "lazy_static", - "windows-sys 0.48.0", + "windows-sys 0.59.0", ] [[package]] name = "console" -version = "0.15.8" +version = "0.15.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e1f83fc076bd6dd27517eacdf25fef6c4dfe5f1d7448bafaaf3a26f13b5e4eb" +checksum = "ea3c6ecd8059b57859df5c69830340ed3c41d30e3da0c1cbed90a96ac853041b" dependencies = [ - "encode_unicode 0.3.6", - "lazy_static", + "encode_unicode", "libc", - "unicode-width", - "windows-sys 0.52.0", + "once_cell", + "unicode-width 0.2.0", + "windows-sys 0.59.0", ] [[package]] name = "const-hex" -version = "1.12.0" +version = "1.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94fb8a24a26d37e1ffd45343323dc9fe6654ceea44c12f2fcb3d7ac29e610bc6" +checksum = "4b0485bab839b018a8f1723fc5391819fea5f8f0f32288ef8a735fd096b6160c" dependencies = [ "cfg-if 1.0.0", "cpufeatures", @@ -1132,6 +1164,16 @@ dependencies = [ "libc", ] +[[package]] +name = "core-foundation" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b55271e5c8c478ad3f38ad24ef34923091e0548492a266d19b3c0b4d82574c63" +dependencies = [ + "core-foundation-sys", + "libc", +] + [[package]] name = "core-foundation-sys" version = "0.8.7" @@ -1140,9 +1182,9 @@ checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" [[package]] name = "cpufeatures" -version = "0.2.13" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51e852e6dc9a5bed1fae92dd2375037bf2b768725bf3be87811edee3249d09ad" +checksum = "16b80225097f2e5ae4e7179dd2266824648f3e2f49d9134d584b76389d31c4c3" dependencies = [ "libc", ] @@ -1158,18 +1200,18 @@ dependencies = [ [[package]] name = "crossbeam-channel" -version = "0.5.13" +version = "0.5.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33480d6946193aa8033910124896ca395333cae7e2d1113d1fef6c3272217df2" +checksum = "06ba6d68e24814cb8de6bb986db8222d3a027d15872cabc0d18817bc3c0e4471" dependencies = [ "crossbeam-utils", ] [[package]] name = "crossbeam-deque" -version = "0.8.5" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d" +checksum = "9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51" dependencies = [ "crossbeam-epoch", "crossbeam-utils", @@ -1186,9 +1228,9 @@ dependencies = [ [[package]] name = "crossbeam-utils" -version = "0.8.20" +version = "0.8.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80" +checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" [[package]] name = "crossterm" @@ -1255,9 +1297,9 @@ dependencies = [ [[package]] name = "csv" -version = "1.3.0" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac574ff4d437a7b5ad237ef331c17ccca63c46479e5b5453eb8e10bb99a759fe" +checksum = "acdc4883a9c96732e4733212c01447ebd805833b7275a73ca3ee080fd77afdaf" dependencies = [ "csv-core", "itoa", @@ -1299,7 +1341,7 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.96", ] [[package]] @@ -1347,7 +1389,7 @@ dependencies = [ "proc-macro2", "quote", "strsim 0.11.1", - "syn 2.0.75", + "syn 2.0.96", ] [[package]] @@ -1369,7 +1411,7 @@ checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" dependencies = [ "darling_core 0.20.10", "quote", - "syn 2.0.75", + "syn 2.0.96", ] [[package]] @@ -1385,9 +1427,9 @@ dependencies = [ [[package]] name = "dbus-secret-service" -version = "4.0.2" +version = "4.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1caa0c241c01ad8d99a78d553567d38f873dd3ac16eca33a5370d650ab25584e" +checksum = "b42a16374481d92aed73ae45b1f120207d8e71d24fb89f357fadbd8f946fd84b" dependencies = [ "dbus", "futures-util", @@ -1439,13 +1481,13 @@ dependencies = [ [[package]] name = "derive_arbitrary" -version = "1.3.2" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67e77553c4162a157adbf834ebae5b415acbecbeafc7a74b0e886657506a7611" +checksum = "30542c1ad912e0e3d22a1935c290e12e8a29d704a420177a31faad4a601a0800" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.96", ] [[package]] @@ -1458,7 +1500,28 @@ dependencies = [ "proc-macro2", "quote", "rustc_version 0.4.1", - "syn 2.0.75", + "syn 2.0.96", +] + +[[package]] +name = "derive_more" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a9b99b9cbbe49445b21764dc0625032a89b145a2642e67603e1c936f5458d05" +dependencies = [ + "derive_more-impl", +] + +[[package]] +name = "derive_more-impl" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb7330aeadfbe296029522e6c40f315320aba36fc43a5b3632f3795348f3bd22" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.96", + "unicode-xid", ] [[package]] @@ -1524,6 +1587,17 @@ dependencies = [ "winapi", ] +[[package]] +name = "displaydoc" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.96", +] + [[package]] name = "dmsort" version = "1.0.2" @@ -1625,12 +1699,6 @@ dependencies = [ "zeroize", ] -[[package]] -name = "encode_unicode" -version = "0.3.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f" - [[package]] name = "encode_unicode" version = "1.0.0" @@ -1639,9 +1707,9 @@ checksum = "34aa73646ffb006b8f5147f3dc182bd4bcb190227ce861fc4a4844bf8e3cb2c0" [[package]] name = "encoding_rs" -version = "0.8.34" +version = "0.8.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b45de904aa0b010bce2ab45264d0631681847fa7b6f2eaa7dab7619943bc4f59" +checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3" dependencies = [ "cfg-if 1.0.0", ] @@ -1663,14 +1731,14 @@ checksum = "f282cfdfe92516eb26c2af8589c274c7c17681f5ecc03c18255fe741c6aa64eb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.96", ] [[package]] name = "env_filter" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f2c92ceda6ceec50f43169f9ee8424fe2db276791afde7b2cd8bc084cb376ab" +checksum = "186e05a59d4c50738528153b83b0b0194d3a29507dfec16eccd4b342903397d0" dependencies = [ "log", "regex", @@ -1678,9 +1746,9 @@ dependencies = [ [[package]] name = "env_logger" -version = "0.11.5" +version = "0.11.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e13fa619b91fb2381732789fc5de83b45675e882f66623b7d8cb4f643017018d" +checksum = "dcaee3d8e3cfc3fd92428d477bc97fc29ec8716d180c0d74c643bb26166660e0" dependencies = [ "anstream", "anstyle", @@ -1697,12 +1765,12 @@ checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" [[package]] name = "errno" -version = "0.3.9" +version = "0.3.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba" +checksum = "33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d" dependencies = [ "libc", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -1760,9 +1828,9 @@ checksum = "4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7" [[package]] name = "fastrand" -version = "2.1.1" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8c02a5121d4ea3eb16a80748c74f5549a5665e4c21333c6098f283870fbdea6" +checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" [[package]] name = "fastrlp" @@ -1775,6 +1843,17 @@ dependencies = [ "bytes", ] +[[package]] +name = "fastrlp" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce8dba4714ef14b8274c371879b175aa55b16b30f269663f19d576f380018dc4" +dependencies = [ + "arrayvec", + "auto_impl", + "bytes", +] + [[package]] name = "ff" version = "0.13.0" @@ -1826,12 +1905,12 @@ dependencies = [ [[package]] name = "flate2" -version = "1.0.33" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "324a1be68054ef05ad64b861cc9eaf1d623d2d8cb25b4bf2cb9cdd902b4bf253" +checksum = "c936bfdafb507ebbf50b8074c54fa31c5be9a1e7e5f467dd659697041407d07c" dependencies = [ "crc32fast", - "miniz_oxide 0.8.0", + "miniz_oxide 0.8.2", ] [[package]] @@ -1849,6 +1928,12 @@ version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" +[[package]] +name = "foldhash" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0d2fde1f7b3d48b8395d5f2de76c18a528bd6a9cdde438df747bfcba3e05d6f" + [[package]] name = "foreign-types" version = "0.3.2" @@ -1891,9 +1976,9 @@ checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" [[package]] name = "futures" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0" +checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876" dependencies = [ "futures-channel", "futures-core", @@ -1906,9 +1991,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" +checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" dependencies = [ "futures-core", "futures-sink", @@ -1916,15 +2001,15 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" +checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" [[package]] name = "futures-executor" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d" +checksum = "1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f" dependencies = [ "futures-core", "futures-task", @@ -1933,32 +2018,32 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" +checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" [[package]] name = "futures-macro" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" +checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.96", ] [[package]] name = "futures-sink" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5" +checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" [[package]] name = "futures-task" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" +checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" [[package]] name = "futures-timer" @@ -1968,9 +2053,9 @@ checksum = "f288b0a4f20f9a56b5d1da57e2227c661b7b16168e2f72365f57b63326e29b24" [[package]] name = "futures-util" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" +checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" dependencies = [ "futures-channel", "futures-core", @@ -2046,7 +2131,7 @@ version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b903b73e45dc0c6c596f2d37eccece7c1c8bb6e4407b001096387c63d0d93724" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.7.0", "libc", "libgit2-sys", "log", @@ -2057,21 +2142,21 @@ dependencies = [ [[package]] name = "glob" -version = "0.3.1" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" +checksum = "a8d1add55171497b4705a648c6b583acafb01d58050a51727785f0b2c8e0a2b2" [[package]] name = "globset" -version = "0.4.14" +version = "0.4.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57da3b9b5b85bd66f31093f8c408b90a74431672542466497dcbdfdc02034be1" +checksum = "15f1ce686646e7f1e19bf7d5533fe443a45dbfb990e00629110797578b42fb19" dependencies = [ "aho-corasick", "bstr", "log", - "regex-automata 0.4.7", - "regex-syntax 0.8.4", + "regex-automata 0.4.9", + "regex-syntax 0.8.5", ] [[package]] @@ -2108,7 +2193,7 @@ dependencies = [ "futures-sink", "futures-util", "http 0.2.12", - "indexmap 2.4.0", + "indexmap 2.7.0", "slab", "tokio", "tokio-util", @@ -2117,17 +2202,17 @@ dependencies = [ [[package]] name = "h2" -version = "0.4.6" +version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "524e8ac6999421f49a846c2d4411f337e53497d8ec55d67753beffa43c5d9205" +checksum = "ccae279728d634d083c00f6099cb58f01cc99c145b84b8be2f6c74618d79922e" dependencies = [ "atomic-waker", "bytes", "fnv", "futures-core", "futures-sink", - "http 1.1.0", - "indexmap 2.4.0", + "http 1.2.0", + "indexmap 2.7.0", "slab", "tokio", "tokio-util", @@ -2153,6 +2238,18 @@ dependencies = [ "serde", ] +[[package]] +name = "hashbrown" +version = "0.15.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" +dependencies = [ + "allocator-api2", + "equivalent", + "foldhash", + "serde", +] + [[package]] name = "heck" version = "0.4.1" @@ -2187,10 +2284,10 @@ dependencies = [ ] [[package]] -name = "hex-literal" -version = "0.4.1" +name = "hex-conservative" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" +checksum = "212ab92002354b4819390025006c897e8140934349e8635c9b077f47b4dcbd20" [[package]] name = "hmac" @@ -2213,11 +2310,11 @@ dependencies = [ [[package]] name = "home" -version = "0.5.9" +version = "0.5.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5" +checksum = "589533453244b0995c858700322199b2becb13b627df2851f64a2775d024abcf" dependencies = [ - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -2233,9 +2330,9 @@ dependencies = [ [[package]] name = "http" -version = "1.1.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258" +checksum = "f16ca2af56261c99fba8bac40a10251ce8188205a4c448fbb745a2e4daa76fea" dependencies = [ "bytes", "fnv", @@ -2260,7 +2357,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" dependencies = [ "bytes", - "http 1.1.0", + "http 1.2.0", ] [[package]] @@ -2271,16 +2368,16 @@ checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f" dependencies = [ "bytes", "futures-util", - "http 1.1.0", + "http 1.2.0", "http-body 1.0.1", "pin-project-lite", ] [[package]] name = "httparse" -version = "1.9.4" +version = "1.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fcc0b4a115bf80b728eb8ea024ad5bd707b615bfed49e0665b6e0f86fd082d9" +checksum = "7d71d3574edd2771538b901e6549113b4006ece66150fb69c0fb6d9a2adae946" [[package]] name = "httpdate" @@ -2296,9 +2393,9 @@ checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" [[package]] name = "hyper" -version = "0.14.30" +version = "0.14.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a152ddd61dfaec7273fe8419ab357f33aee0d914c5f4efbf0d96fa749eea5ec9" +checksum = "41dfc780fdec9373c01bae43289ea34c972e40ee3c9f6b3c8801a35f35586ce7" dependencies = [ "bytes", "futures-channel", @@ -2320,15 +2417,15 @@ dependencies = [ [[package]] name = "hyper" -version = "1.4.1" +version = "1.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50dfd22e0e76d0f662d429a5f80fcaf3855009297eab6a0a9f8543834744ba05" +checksum = "256fb8d4bd6413123cc9d91832d78325c48ff41677595be797d90f42969beae0" dependencies = [ "bytes", "futures-channel", "futures-util", - "h2 0.4.6", - "http 1.1.0", + "h2 0.4.7", + "http 1.2.0", "http-body 1.0.1", "httparse", "itoa", @@ -2340,13 +2437,13 @@ dependencies = [ [[package]] name = "hyper-rustls" -version = "0.27.3" +version = "0.27.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08afdbb5c31130e3034af566421053ab03787c640246a446327f550d11bcb333" +checksum = "2d191583f3da1305256f22463b9bb0471acad48a4e534a5218b9963e9c1f59b2" dependencies = [ "futures-util", - "http 1.1.0", - "hyper 1.4.1", + "http 1.2.0", + "hyper 1.5.2", "hyper-util", "rustls", "rustls-pki-types", @@ -2361,7 +2458,7 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bbb958482e8c7be4bc3cf272a766a2b0bf1a6755e7a6ae777f017a31d11b13b1" dependencies = [ - "hyper 0.14.30", + "hyper 0.14.32", "pin-project-lite", "tokio", "tokio-io-timeout", @@ -2375,7 +2472,7 @@ checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" dependencies = [ "bytes", "http-body-util", - "hyper 1.4.1", + "hyper 1.5.2", "hyper-util", "native-tls", "tokio", @@ -2385,29 +2482,28 @@ dependencies = [ [[package]] name = "hyper-util" -version = "0.1.7" +version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cde7055719c54e36e95e8719f95883f22072a48ede39db7fc17a4e1d5281e9b9" +checksum = "df2dcfbe0677734ab2f3ffa7fa7bfd4706bfdc1ef393f2ee30184aed67e631b4" dependencies = [ "bytes", "futures-channel", "futures-util", - "http 1.1.0", + "http 1.2.0", "http-body 1.0.1", - "hyper 1.4.1", + "hyper 1.5.2", "pin-project-lite", "socket2", "tokio", - "tower", "tower-service", "tracing", ] [[package]] name = "iana-time-zone" -version = "0.1.60" +version = "0.1.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141" +checksum = "235e081f3925a06703c2d0117ea8b91f042756fd6e7a6e5d901e8ca1a996b220" dependencies = [ "android_system_properties", "core-foundation-sys", @@ -2426,6 +2522,124 @@ dependencies = [ "cc", ] +[[package]] +name = "icu_collections" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" +dependencies = [ + "displaydoc", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_locid" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" +dependencies = [ + "displaydoc", + "litemap", + "tinystr", + "writeable", + "zerovec", +] + +[[package]] +name = "icu_locid_transform" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e" +dependencies = [ + "displaydoc", + "icu_locid", + "icu_locid_transform_data", + "icu_provider", + "tinystr", + "zerovec", +] + +[[package]] +name = "icu_locid_transform_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e" + +[[package]] +name = "icu_normalizer" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_normalizer_data", + "icu_properties", + "icu_provider", + "smallvec", + "utf16_iter", + "utf8_iter", + "write16", + "zerovec", +] + +[[package]] +name = "icu_normalizer_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516" + +[[package]] +name = "icu_properties" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_locid_transform", + "icu_properties_data", + "icu_provider", + "tinystr", + "zerovec", +] + +[[package]] +name = "icu_properties_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569" + +[[package]] +name = "icu_provider" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9" +dependencies = [ + "displaydoc", + "icu_locid", + "icu_provider_macros", + "stable_deref_trait", + "tinystr", + "writeable", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_provider_macros" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.96", +] + [[package]] name = "ident_case" version = "1.0.1" @@ -2434,25 +2648,36 @@ checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" [[package]] name = "idna" -version = "0.5.0" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" +checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" dependencies = [ - "unicode-bidi", - "unicode-normalization", + "idna_adapter", + "smallvec", + "utf8_iter", +] + +[[package]] +name = "idna_adapter" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71" +dependencies = [ + "icu_normalizer", + "icu_properties", ] [[package]] name = "ignore" -version = "0.4.22" +version = "0.4.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b46810df39e66e925525d6e38ce1e7f6e1d208f72dc39757880fcb66e2c58af1" +checksum = "6d89fd380afde86567dfba715db065673989d6253f42b88179abd3eae47bda4b" dependencies = [ "crossbeam-deque", "globset", "log", "memchr", - "regex-automata 0.4.7", + "regex-automata 0.4.9", "same-file", "walkdir", "winapi-util", @@ -2487,13 +2712,13 @@ dependencies = [ [[package]] name = "impl-trait-for-tuples" -version = "0.2.2" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11d7a9f6330b71fea57921c9b61c47ee6e84f72d394754eff6163ae67e7395eb" +checksum = "a0eb5a3343abf848c0984fe4604b2b105da9539376e24fc0a3b0007411ae4fd9" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.96", ] [[package]] @@ -2521,27 +2746,27 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.4.0" +version = "2.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93ead53efc7ea8ed3cfb0c79fc8023fbb782a5432b52830b6518941cebe6505c" +checksum = "62f822373a4fe84d4bb149bf54e584a7f4abec90e072ed49cda0edea5b95471f" dependencies = [ "equivalent", - "hashbrown 0.14.5", + "hashbrown 0.15.2", "serde", ] [[package]] name = "indicatif" -version = "0.17.8" +version = "0.17.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "763a5a8f45087d6bcea4222e7b72c291a054edf80e4ef6efd2a4979878c7bea3" +checksum = "cbf675b85ed934d3c67b5c5469701eec7db22689d0a2139d856e0925fa28b281" dependencies = [ "console", - "instant", "number_prefix", "portable-atomic", - "unicode-width", + "unicode-width 0.2.0", "vt100", + "web-time", ] [[package]] @@ -2559,7 +2784,7 @@ version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0fddf93031af70e75410a2511ec04d49e758ed2f26dad3404a934e0fb45cc12a" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.7.0", "crossterm", "dyn-clone", "fuzzy-matcher", @@ -2567,7 +2792,7 @@ dependencies = [ "newline-converter", "once_cell", "unicode-segmentation", - "unicode-width", + "unicode-width 0.1.14", ] [[package]] @@ -2581,9 +2806,9 @@ dependencies = [ [[package]] name = "interactive-clap" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b1e6acfe2ceaaa893a54c57d445a820d3b0fa4c6187b67b3f69fd07473c726e" +checksum = "3b0f7ba4a74027eb091780d5f44c60ab8d7d7bcb0770af33ef024d4e7d1c8cf3" dependencies = [ "interactive-clap-derive", "strum 0.24.1", @@ -2592,9 +2817,9 @@ dependencies = [ [[package]] name = "interactive-clap-derive" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab1ce8e6ef82771b125341b0a6bd5eb45888b01235aa61125ecc72cc22be4738" +checksum = "bdced66b21ea0b5ce63c96e34ebfdadf05cf74594a5659d2bdd5d2c8cf586fa0" dependencies = [ "proc-macro-error", "proc-macro2", @@ -2604,9 +2829,9 @@ dependencies = [ [[package]] name = "ipnet" -version = "2.10.0" +version = "2.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "187674a687eed5fe42285b40c6291f9a01517d415fad1c3cbc6a9f778af7fcd4" +checksum = "ddc24109865250148c2e0f3d25d4f0f479571723792d3802153c60922a4fb708" [[package]] name = "is-docker" @@ -2662,11 +2887,20 @@ dependencies = [ "either", ] +[[package]] +name = "itertools" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" +dependencies = [ + "either", +] + [[package]] name = "itoa" -version = "1.0.11" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" +checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674" [[package]] name = "jobserver" @@ -2685,10 +2919,11 @@ checksum = "72167d68f5fce3b8655487b8038691a3c9984ee769590f93f2a631f4ad64e4f5" [[package]] name = "js-sys" -version = "0.3.70" +version = "0.3.76" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1868808506b929d7b0cfa8f75951347aa71bb21144b7791bae35d9bccfcfe37a" +checksum = "6717b6b5b077764fb5966237269cb3c64edddde4b14ce42647430a78ced9e7b7" dependencies = [ + "once_cell", "wasm-bindgen", ] @@ -2701,7 +2936,7 @@ dependencies = [ "jsonptr", "serde", "serde_json", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -2723,9 +2958,9 @@ dependencies = [ [[package]] name = "k256" -version = "0.13.3" +version = "0.13.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "956ff9b67e26e1a6a866cb758f12c6f8746208489e3e4a4b5580802f2f0a587b" +checksum = "f6e3919bbaa2945715f0bb6d3934a173d1e9a59ac23767fbaaef277265a7411b" dependencies = [ "cfg-if 1.0.0", "ecdsa", @@ -2745,9 +2980,9 @@ dependencies = [ [[package]] name = "keccak-asm" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "422fbc7ff2f2f5bdffeb07718e5a5324dca72b0c9293d50df4026652385e3314" +checksum = "505d1856a39b200489082f90d897c3f07c455563880bc5952e38eabf731c83b6" dependencies = [ "digest 0.10.7", "sha3-asm", @@ -2755,14 +2990,16 @@ dependencies = [ [[package]] name = "keyring" -version = "3.2.1" +version = "3.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "030a9b84bb2a2f3673d4c8b8236091ed5d8f6b66a56d8085471d8abd5f3c6a80" +checksum = "2f8fe839464d4e4b37d756d7e910063696af79a7e877282cb1825e4ec5f10833" dependencies = [ "byteorder", "dbus-secret-service", + "log", "openssl", - "security-framework", + "security-framework 2.11.1", + "security-framework 3.2.0", "windows-sys 0.59.0", ] @@ -2783,9 +3020,9 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" [[package]] name = "libc" -version = "0.2.158" +version = "0.2.169" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8adc4bb1803a324070e64a98ae98f38934d91957a99cfb3a43dcbc01bc56439" +checksum = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a" [[package]] name = "libdbus-sys" @@ -2813,9 +3050,9 @@ dependencies = [ [[package]] name = "libloading" -version = "0.8.5" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4979f22fdb869068da03c9f7528f8297c6fd2606bc3a4affe42e6a823fdb8da4" +checksum = "fc2f4eb4bc735547cfed7c0a4922cbd04a4655978c09b54f1f7b228750664c34" dependencies = [ "cfg-if 1.0.0", "windows-targets 0.52.6", @@ -2823,9 +3060,9 @@ dependencies = [ [[package]] name = "libm" -version = "0.2.8" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" +checksum = "8355be11b20d696c8f18f6cc018c4e372165b1fa8126cef092399c9951984ffa" [[package]] name = "libredox" @@ -2833,9 +3070,9 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.7.0", "libc", - "redox_syscall 0.5.3", + "redox_syscall 0.5.8", ] [[package]] @@ -2854,9 +3091,9 @@ dependencies = [ [[package]] name = "libz-sys" -version = "1.1.20" +version = "1.1.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2d16453e800a8cf6dd2fc3eb4bc99b786a9b90c663b8559a5b1a041bf89e472" +checksum = "df9b68e50e6e0b26f672573834882eb57759f6db9b3be2ea3c35c91188bb4eaa" dependencies = [ "cc", "libc", @@ -2875,9 +3112,15 @@ dependencies = [ [[package]] name = "linux-raw-sys" -version = "0.4.14" +version = "0.4.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" + +[[package]] +name = "litemap" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" +checksum = "4ee93343901ab17bd981295f2cf0026d4ad018c7c31ba84549a4ddbb47a45104" [[package]] name = "lock_api" @@ -2904,6 +3147,15 @@ dependencies = [ "hashbrown 0.12.3", ] +[[package]] +name = "lru" +version = "0.12.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "234cf4f4a04dc1f57e24b96cc0cd600cf2af460d4161ac5ecdd0af8e1f3b2a38" +dependencies = [ + "hashbrown 0.15.2", +] + [[package]] name = "matchers" version = "0.1.0" @@ -2963,9 +3215,9 @@ dependencies = [ [[package]] name = "miniz_oxide" -version = "0.8.0" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2d80299ef12ff69b16a84bb182e3b9df68b5a91574d3d4fa6e41b65deec4df1" +checksum = "4ffbe83022cedc1d264172192511ae958937694cd57ce297164951b8b3568394" dependencies = [ "adler2", ] @@ -2984,11 +3236,10 @@ dependencies = [ [[package]] name = "mio" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80e04d1dcff3aae0704555fe5fee3bcfaf3d1fdf8a7e521d5b9d2b42acb52cec" +checksum = "2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd" dependencies = [ - "hermit-abi 0.3.9", "libc", "wasi", "windows-sys 0.52.0", @@ -3041,7 +3292,7 @@ dependencies = [ "openssl-probe", "openssl-sys", "schannel", - "security-framework", + "security-framework 2.11.1", "security-framework-sys", "tempfile", ] @@ -3054,7 +3305,7 @@ checksum = "7c49593c9e94454a2368a4c0a511bf4bf1413aff4d23f16e1d8f4e64b5215351" dependencies = [ "borsh", "schemars", - "semver 1.0.23", + "semver 1.0.24", "serde", ] @@ -3115,12 +3366,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f4e11b7dc58cb8371377925ed7df76a384063a228ecba2a4b29e54214ff9416d" dependencies = [ "actix", - "derive_more", + "derive_more 0.99.18", "futures", "near-async-derive", "near-o11y", "near-performance-metrics", - "near-time", + "near-time 0.24.1", "once_cell", "serde", "serde_json", @@ -3137,7 +3388,7 @@ checksum = "05ba6b56963ed6f85d3fa2ad9baf083cbbf1bc9cabcf4818e775f959c29fe948" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.96", ] [[package]] @@ -3149,12 +3400,12 @@ dependencies = [ "anyhow", "bytesize", "chrono", - "derive_more", + "derive_more 0.99.18", "near-async", - "near-config-utils", - "near-crypto", - "near-parameters", - "near-primitives", + "near-config-utils 0.24.1", + "near-crypto 0.24.1", + "near-parameters 0.24.1", + "near-primitives 0.24.1", "num-rational 0.3.2", "once_cell", "serde", @@ -3177,7 +3428,7 @@ dependencies = [ "cargo-util", "clap", "color-eyre", - "derive_more", + "derive_more 0.99.18", "dirs", "easy-ext 1.0.2", "ed25519-dalek", @@ -3191,13 +3442,13 @@ dependencies = [ "keyring", "linked-hash-map", "near-abi", - "near-crypto", - "near-gas 0.3.0", + "near-crypto 0.24.1", + "near-gas", "near-jsonrpc-client", "near-jsonrpc-primitives", - "near-primitives", + "near-primitives 0.24.1", "near-socialdb-client", - "near-token 0.3.0", + "near-token", "open", "openssl", "prettytable", @@ -3212,7 +3463,7 @@ dependencies = [ "strum 0.24.1", "strum_macros 0.24.3", "textwrap", - "thiserror", + "thiserror 1.0.69", "tokio", "toml 0.8.19", "tracing", @@ -3231,15 +3482,27 @@ checksum = "270955a98d49ff56e4e1286ab5a2e78aa131585eba92bd3c56a8c39f7f1f58e3" dependencies = [ "anyhow", "json_comments", - "thiserror", + "thiserror 1.0.69", + "tracing", +] + +[[package]] +name = "near-config-utils" +version = "0.28.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bedc768765dd8229a1d960c94f517317f40771a003e78916124784c7d6ea9d74" +dependencies = [ + "anyhow", + "json_comments", + "thiserror 2.0.11", "tracing", ] [[package]] name = "near-contract-standards" -version = "5.3.0" +version = "5.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41c8a6923acd33d2cc0e64ba9bc626746f178bca4490e5742ec9c6d2f6f5a0a9" +checksum = "6b8bc68a8c2bac5e44b38e322e41cadeefe33f766993bf067375b63cc860a73b" dependencies = [ "near-sdk", ] @@ -3254,19 +3517,44 @@ dependencies = [ "borsh", "bs58 0.4.0", "curve25519-dalek", - "derive_more", + "derive_more 0.99.18", "ed25519-dalek", "hex", "near-account-id", - "near-config-utils", - "near-stdx", + "near-config-utils 0.24.1", + "near-stdx 0.24.1", "once_cell", "primitive-types 0.10.1", "secp256k1", "serde", "serde_json", "subtle", - "thiserror", + "thiserror 1.0.69", +] + +[[package]] +name = "near-crypto" +version = "0.28.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4374804fdd45ac84c9e7cc3183312c98560c5518d81e6d8e2d92b77587e5a9f3" +dependencies = [ + "blake2", + "borsh", + "bs58 0.4.0", + "curve25519-dalek", + "derive_more 0.99.18", + "ed25519-dalek", + "hex", + "near-account-id", + "near-config-utils 0.28.0", + "near-schema-checker-lib", + "near-stdx 0.28.0", + "primitive-types 0.10.1", + "secp256k1", + "serde", + "serde_json", + "subtle", + "thiserror 2.0.11", ] [[package]] @@ -3275,17 +3563,16 @@ version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "015244b8faaeb1affb40b26018266bb5dd189a27d6c98998466895023fb9af32" dependencies = [ - "near-primitives-core", + "near-primitives-core 0.24.1", ] [[package]] -name = "near-gas" -version = "0.2.5" +name = "near-fmt" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14e75c875026229902d065e4435804497337b631ec69ba746b102954273e9ad1" +checksum = "f14f36eee2dcb0ecd8febb9f198e0e1fa768c834db9e1982ad2acfcd04b45acf" dependencies = [ - "borsh", - "serde", + "near-primitives-core 0.28.0", ] [[package]] @@ -3310,13 +3597,13 @@ dependencies = [ "lazy_static", "log", "near-chain-configs", - "near-crypto", + "near-crypto 0.24.1", "near-jsonrpc-primitives", - "near-primitives", + "near-primitives 0.24.1", "reqwest", "serde", "serde_json", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -3327,12 +3614,12 @@ checksum = "2164dcfa3a28b833109242d2e7d57979d983414076ca745014669f5a8171de2e" dependencies = [ "arbitrary", "near-chain-configs", - "near-crypto", - "near-primitives", + "near-crypto 0.24.1", + "near-primitives 0.24.1", "near-rpc-error-macro", "serde", "serde_json", - "thiserror", + "thiserror 1.0.69", "time", ] @@ -3345,8 +3632,8 @@ dependencies = [ "actix", "base64 0.21.7", "clap", - "near-crypto", - "near-primitives-core", + "near-crypto 0.24.1", + "near-primitives-core 0.24.1", "once_cell", "opentelemetry", "opentelemetry-otlp", @@ -3355,7 +3642,7 @@ dependencies = [ "prometheus", "serde", "serde_json", - "thiserror", + "thiserror 1.0.69", "tokio", "tracing", "tracing-appender", @@ -3372,13 +3659,32 @@ dependencies = [ "borsh", "enum-map", "near-account-id", - "near-primitives-core", + "near-primitives-core 0.24.1", "num-rational 0.3.2", "serde", "serde_repr", "serde_yaml", "strum 0.24.1", - "thiserror", + "thiserror 1.0.69", +] + +[[package]] +name = "near-parameters" +version = "0.28.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1279baa276725971d5e2b80c524d1aa42d5ad8bccf8901466fd579374cf58a14" +dependencies = [ + "borsh", + "enum-map", + "near-account-id", + "near-primitives-core 0.28.0", + "near-schema-checker-lib", + "num-rational 0.3.2", + "serde", + "serde_repr", + "serde_yaml", + "strum 0.24.1", + "thiserror 2.0.11", ] [[package]] @@ -3434,18 +3740,18 @@ dependencies = [ "bytesize", "cfg-if 1.0.0", "chrono", - "derive_more", + "derive_more 0.99.18", "easy-ext 0.2.9", "enum-map", "hex", - "itertools", - "near-crypto", - "near-fmt", - "near-parameters", - "near-primitives-core", + "itertools 0.10.5", + "near-crypto 0.24.1", + "near-fmt 0.24.1", + "near-parameters 0.24.1", + "near-primitives-core 0.24.1", "near-rpc-error-macro", - "near-stdx", - "near-time", + "near-stdx 0.24.1", + "near-time 0.24.1", "num-rational 0.3.2", "once_cell", "ordered-float", @@ -3459,7 +3765,47 @@ dependencies = [ "sha3", "smart-default 0.6.0", "strum 0.24.1", - "thiserror", + "thiserror 1.0.69", + "tracing", + "zstd 0.13.2", +] + +[[package]] +name = "near-primitives" +version = "0.28.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ab6ecc354e61c40b044c8b553c187383a587a1679d2e594f0b98ca58dbfb6e3" +dependencies = [ + "arbitrary", + "base64 0.21.7", + "bitvec", + "borsh", + "bytes", + "bytesize", + "cfg-if 1.0.0", + "chrono", + "derive_more 0.99.18", + "easy-ext 0.2.9", + "enum-map", + "hex", + "itertools 0.10.5", + "near-crypto 0.28.0", + "near-fmt 0.28.0", + "near-parameters 0.28.0", + "near-primitives-core 0.28.0", + "near-schema-checker-lib", + "near-stdx 0.28.0", + "near-time 0.28.0", + "num-rational 0.3.2", + "ordered-float", + "primitive-types 0.10.1", + "serde", + "serde_json", + "serde_with", + "sha3", + "smart-default 0.6.0", + "strum 0.24.1", + "thiserror 2.0.11", "tracing", "zstd 0.13.2", ] @@ -3474,14 +3820,35 @@ dependencies = [ "base64 0.21.7", "borsh", "bs58 0.4.0", - "derive_more", + "derive_more 0.99.18", + "enum-map", + "near-account-id", + "num-rational 0.3.2", + "serde", + "serde_repr", + "sha2 0.10.8", + "thiserror 1.0.69", +] + +[[package]] +name = "near-primitives-core" +version = "0.28.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d597af103bb7881d1fb9031fb126cfe6c1acb9c9a6c8296dca45b5b3beb0893d" +dependencies = [ + "arbitrary", + "base64 0.21.7", + "borsh", + "bs58 0.4.0", + "derive_more 0.99.18", "enum-map", "near-account-id", + "near-schema-checker-lib", "num-rational 0.3.2", "serde", "serde_repr", "sha2 0.10.8", - "thiserror", + "thiserror 2.0.11", ] [[package]] @@ -3492,7 +3859,7 @@ checksum = "072735e35cccb9cde9827793bf08bd9192c23167cf840c287bf65afc968c31e8" dependencies = [ "quote", "serde", - "syn 2.0.75", + "syn 2.0.96", ] [[package]] @@ -3503,7 +3870,7 @@ checksum = "caa5a967de9f1480140de15620926b4f5292384e8a3672683e73478594107fa0" dependencies = [ "near-rpc-error-core", "serde", - "syn 2.0.75", + "syn 2.0.96", ] [[package]] @@ -3519,24 +3886,46 @@ dependencies = [ "tokio", ] +[[package]] +name = "near-schema-checker-core" +version = "0.28.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a48405425eca34de98e680416310df33fdb75768a78481cc75b43172b2748613" + +[[package]] +name = "near-schema-checker-lib" +version = "0.28.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfb720bf5cc256af687a9eb7a6e05baf3668dc75cfd43098e83ba1b3d3900f08" +dependencies = [ + "near-schema-checker-core", + "near-schema-checker-macro", +] + +[[package]] +name = "near-schema-checker-macro" +version = "0.28.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b41a159cbf732acc0279febdde046d9036330a32a951796bce42f9529bce799d" + [[package]] name = "near-sdk" -version = "5.3.0" +version = "5.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d817ec6e678b52ad82d2e05886fb0c379b44beaedf5df6141b2365aadcd7a482" +checksum = "befb9df6da1a6a0b6656388c0db76084867062a87f1cbc066c188a8e360b6463" dependencies = [ - "base64 0.21.7", + "base64 0.22.1", "borsh", "bs58 0.5.1", "near-account-id", - "near-crypto", - "near-gas 0.2.5", - "near-parameters", - "near-primitives", - "near-primitives-core", + "near-crypto 0.28.0", + "near-gas", + "near-parameters 0.28.0", + "near-primitives 0.28.0", + "near-primitives-core 0.28.0", "near-sdk-macros", "near-sys", - "near-token 0.2.1", + "near-token", "near-vm-runner", "once_cell", "serde", @@ -3546,9 +3935,9 @@ dependencies = [ [[package]] name = "near-sdk-macros" -version = "5.3.0" +version = "5.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2046b1c44f866e46c2ed6944a43c8caab125cc216322ab1f552a02e9c2bcda8a" +checksum = "1268c4fc56bf53d70c200261fb8d57c6c1c6692243660f5f889c7fa4cf5771d2" dependencies = [ "Inflector", "darling 0.20.10", @@ -3558,7 +3947,7 @@ dependencies = [ "serde_json", "strum 0.26.3", "strum_macros 0.26.4", - "syn 2.0.75", + "syn 2.0.96", ] [[package]] @@ -3568,11 +3957,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cfb11a7c0fdd8b22ec806cf1703a0aa65550a7d0dc2237125b7e8436a5e9fcd2" dependencies = [ "color-eyre", - "near-crypto", + "near-crypto 0.24.1", "near-jsonrpc-client", "near-jsonrpc-primitives", - "near-primitives", - "near-token 0.3.0", + "near-primitives 0.24.1", + "near-token", "serde", "serde_json", "url", @@ -3580,9 +3969,15 @@ dependencies = [ [[package]] name = "near-stdx" -version = "0.24.1" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac1c4937647390c254e530ba8d3e296c192e67ea0364e3d7d4aef64563ffcf6a" + +[[package]] +name = "near-stdx" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac1c4937647390c254e530ba8d3e296c192e67ea0364e3d7d4aef64563ffcf6a" +checksum = "7a91674768828a593f4bac4aeca9334c4b56fe19344a2ccf7bd795b2325f0b5e" [[package]] name = "near-sys" @@ -3603,13 +3998,13 @@ dependencies = [ ] [[package]] -name = "near-token" -version = "0.2.1" +name = "near-time" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3b497804ec8f603fd11edc3d3b7b19f07c0beb9fe47c8a536eea1867097fd40" +checksum = "c92bf9dffb11126e8db9a6a51bcb330c8584d0bab0d6d14c20cf2ff1f16d684d" dependencies = [ - "borsh", "serde", + "time", ] [[package]] @@ -3625,21 +4020,23 @@ dependencies = [ [[package]] name = "near-vm-runner" -version = "0.24.1" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48e94f68dde77aa3c94e659edab4c98b14f6dbbeba2aded72ebb6c6456631164" +checksum = "f311723579af3d3cd8e9b5b25efade1b8f5b5e0dd2819ed8ee581e7c7855a76d" dependencies = [ + "blst", "borsh", "bytesize", "ed25519-dalek", "enum-map", - "lru", - "near-crypto", - "near-parameters", - "near-primitives-core", - "near-stdx", + "lru 0.12.5", + "near-crypto 0.28.0", + "near-parameters 0.28.0", + "near-primitives-core 0.28.0", + "near-schema-checker-lib", + "near-stdx 0.28.0", "num-rational 0.3.2", - "once_cell", + "rayon", "ripemd", "rustix", "serde", @@ -3648,7 +4045,7 @@ dependencies = [ "sha3", "strum 0.24.1", "tempfile", - "thiserror", + "thiserror 2.0.11", "tracing", "zeropool-bn", ] @@ -3669,20 +4066,20 @@ dependencies = [ "libc", "near-abi-client", "near-account-id", - "near-crypto", - "near-gas 0.3.0", + "near-crypto 0.24.1", + "near-gas", "near-jsonrpc-client", "near-jsonrpc-primitives", - "near-primitives", + "near-primitives 0.24.1", "near-sandbox-utils", - "near-token 0.3.0", + "near-token", "rand", "reqwest", "serde", "serde_json", "sha2 0.10.8", "tempfile", - "thiserror", + "thiserror 1.0.69", "tokio", "tokio-retry", "tracing", @@ -3737,7 +4134,7 @@ version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.7.0", "cfg-if 1.0.0", "cfg_aliases", "libc", @@ -3880,6 +4277,16 @@ dependencies = [ "libm", ] +[[package]] +name = "num_cpus" +version = "1.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" +dependencies = [ + "hermit-abi 0.3.9", + "libc", +] + [[package]] name = "number_prefix" version = "0.4.0" @@ -3960,9 +4367,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.19.0" +version = "1.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" +checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775" [[package]] name = "opaque-debug" @@ -3972,9 +4379,9 @@ checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" [[package]] name = "open" -version = "5.3.0" +version = "5.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61a877bf6abd716642a53ef1b89fb498923a4afca5c754f9050b4d081c05c4b3" +checksum = "e2483562e62ea94312f3576a7aca397306df7990b8d89033e18766744377ef95" dependencies = [ "is-wsl", "libc", @@ -3983,11 +4390,11 @@ dependencies = [ [[package]] name = "openssl" -version = "0.10.66" +version = "0.10.68" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9529f4786b70a3e8c61e11179af17ab6188ad8d0ded78c5529441ed39d4bd9c1" +checksum = "6174bc48f102d208783c2c84bf931bb75927a617866870de8a4ea85597f871f5" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.7.0", "cfg-if 1.0.0", "foreign-types", "libc", @@ -4004,7 +4411,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.96", ] [[package]] @@ -4015,18 +4422,18 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" [[package]] name = "openssl-src" -version = "300.3.2+3.3.2" +version = "300.4.1+3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a211a18d945ef7e648cc6e0058f4c548ee46aab922ea203e0d30e966ea23647b" +checksum = "faa4eac4138c62414b5622d1b31c5c304f34b406b013c079c2bbc652fdd6678c" dependencies = [ "cc", ] [[package]] name = "openssl-sys" -version = "0.9.103" +version = "0.9.104" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f9e8deee91df40a943c71b917e5874b951d32a802526c85721ce3b776c929d6" +checksum = "45abf306cbf99debc8195b66b7346498d7b10c210de50418b5ccd7ceba08c741" dependencies = [ "cc", "libc", @@ -4046,7 +4453,7 @@ dependencies = [ "js-sys", "once_cell", "pin-project-lite", - "thiserror", + "thiserror 1.0.69", "urlencoding", ] @@ -4064,7 +4471,7 @@ dependencies = [ "opentelemetry-semantic-conventions", "opentelemetry_sdk", "prost", - "thiserror", + "thiserror 1.0.69", "tokio", "tonic", ] @@ -4104,7 +4511,7 @@ dependencies = [ "ordered-float", "percent-encoding", "rand", - "thiserror", + "thiserror 1.0.69", "tokio", "tokio-stream", ] @@ -4117,9 +4524,9 @@ checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" [[package]] name = "ordered-float" -version = "4.2.2" +version = "4.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a91171844676f8c7990ce64959210cd2eaef32c2612c50f9fae9f8aaa6065a6" +checksum = "7bb71e1b3fa6ca1c61f383464aaf2bb0e2f8e772a1f01d486832464de363b951" dependencies = [ "borsh", "num-traits", @@ -4159,7 +4566,7 @@ version = "3.6.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d830939c76d294956402033aee57a6da7b438f2294eb94864c37b0569053a42c" dependencies = [ - "proc-macro-crate 3.1.0", + "proc-macro-crate 3.2.0", "proc-macro2", "quote", "syn 1.0.109", @@ -4208,7 +4615,7 @@ checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" dependencies = [ "cfg-if 1.0.0", "libc", - "redox_syscall 0.5.3", + "redox_syscall 0.5.8", "smallvec", "windows-targets 0.52.6", ] @@ -4232,9 +4639,9 @@ checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" [[package]] name = "pathdiff" -version = "0.2.1" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8835116a5c179084a830efb3adc117ab007512b535bc1a21c991d3b32a6b44dd" +checksum = "df94ce210e5bc13cb6651479fa48d14f601d9858cfe0467f43ae157023b938d3" dependencies = [ "camino", ] @@ -4270,12 +4677,12 @@ checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] name = "pest" -version = "2.7.11" +version = "2.7.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd53dff83f26735fdc1ca837098ccf133605d794cdae66acfc2bfac3ec809d95" +checksum = "8b7cafe60d6cf8e62e1b9b2ea516a089c008945bb5a275416789e7db0bc199dc" dependencies = [ "memchr", - "thiserror", + "thiserror 2.0.11", "ucd-trie", ] @@ -4290,29 +4697,29 @@ dependencies = [ [[package]] name = "pin-project" -version = "1.1.5" +version = "1.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3" +checksum = "1e2ec53ad785f4d35dac0adea7f7dc6f1bb277ad84a680c7afefeae05d1f5916" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.1.5" +version = "1.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" +checksum = "d56a66c0c55993aa927429d0f8a0abfd74f084e4d9c192cffed01e418d83eefb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.96", ] [[package]] name = "pin-project-lite" -version = "0.2.14" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" +checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" [[package]] name = "pin-utils" @@ -4332,9 +4739,9 @@ dependencies = [ [[package]] name = "pkg-config" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" +checksum = "953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2" [[package]] name = "plain" @@ -4344,9 +4751,9 @@ checksum = "b4596b6d070b27117e987119b4dac604f3c58cfb0b191112e24771b2faeac1a6" [[package]] name = "portable-atomic" -version = "1.7.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da544ee218f0d287a911e9c99a39a8c9bc8fcad3cb8db5959940044ecfc67265" +checksum = "280dc24453071f1b63954171985a0b0d30058d287960968b9b2aca264c8d4ee6" [[package]] name = "powerfmt" @@ -4386,11 +4793,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "46480520d1b77c9a3482d39939fcf96831537a250ec62d4fd8fbdf8e0302e781" dependencies = [ "csv", - "encode_unicode 1.0.0", + "encode_unicode", "is-terminal", "lazy_static", "term", - "unicode-width", + "unicode-width 0.1.14", ] [[package]] @@ -4437,11 +4844,11 @@ dependencies = [ [[package]] name = "proc-macro-crate" -version = "3.1.0" +version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284" +checksum = "8ecf48c7ca261d60b74ab1a7b20da18bede46776b2e55535cb958eb595c5fa7b" dependencies = [ - "toml_edit 0.21.1", + "toml_edit", ] [[package]] @@ -4468,11 +4875,33 @@ dependencies = [ "version_check", ] +[[package]] +name = "proc-macro-error-attr2" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96de42df36bb9bba5542fe9f1a054b8cc87e172759a1868aa05c1f3acc89dfc5" +dependencies = [ + "proc-macro2", + "quote", +] + +[[package]] +name = "proc-macro-error2" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11ec05c52be0a07b08061f7dd003e7d7092e0472bc731b4af7bb1ef876109802" +dependencies = [ + "proc-macro-error-attr2", + "proc-macro2", + "quote", + "syn 2.0.96", +] + [[package]] name = "proc-macro2" -version = "1.0.86" +version = "1.0.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77" +checksum = "60946a68e5f9d28b0dc1c21bb8a97ee7d018a8b322fa57838ba31cc878e22d99" dependencies = [ "unicode-ident", ] @@ -4489,7 +4918,7 @@ dependencies = [ "memchr", "parking_lot 0.12.3", "protobuf", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -4500,13 +4929,13 @@ checksum = "b4c2511913b88df1637da85cc8d96ec8e43a3f8bb8ccb71ee1ac240d6f3df58d" dependencies = [ "bit-set", "bit-vec", - "bitflags 2.6.0", + "bitflags 2.7.0", "lazy_static", "num-traits", "rand", "rand_chacha", "rand_xorshift", - "regex-syntax 0.8.4", + "regex-syntax 0.8.5", "rusty-fork", "tempfile", "unarray", @@ -4529,10 +4958,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "81bddcdb20abf9501610992b6759a4c888aef7d1a7247ef75e2404275ac24af1" dependencies = [ "anyhow", - "itertools", + "itertools 0.12.1", "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.96", ] [[package]] @@ -4569,9 +4998,9 @@ checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" [[package]] name = "quote" -version = "1.0.36" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" +checksum = "0e4dccaaaf89514f546c693ddc140f729f958c247918a13380cccc6078391acc" dependencies = [ "proc-macro2", ] @@ -4623,6 +5052,26 @@ dependencies = [ "rand_core", ] +[[package]] +name = "rayon" +version = "1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa" +dependencies = [ + "either", + "rayon-core", +] + +[[package]] +name = "rayon-core" +version = "1.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" +dependencies = [ + "crossbeam-deque", + "crossbeam-utils", +] + [[package]] name = "redox_syscall" version = "0.2.16" @@ -4634,11 +5083,11 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.5.3" +version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a908a6e00f1fdd0dfd9c0eb08ce85126f6d8bbda50017e74bc4a4b7d4a926a4" +checksum = "03a862b389f93e68874fbf580b9de08dd02facb9a788ebadaf4a3fd33cf58834" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.7.0", ] [[package]] @@ -4649,7 +5098,7 @@ checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43" dependencies = [ "getrandom", "libredox", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -4659,7 +5108,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7263373d500d4d4f505d43a2a662d475a894aa94503a1ee28e9188b5f3960d4f" dependencies = [ "libm", - "lru", + "lru 0.7.8", "parking_lot 0.11.2", "smallvec", "spin", @@ -4667,14 +5116,14 @@ dependencies = [ [[package]] name = "regex" -version = "1.10.6" +version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4219d74c6b67a3654a9fbebc4b419e22126d13d2f3c4a07ee0cb61ff79a79619" +checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" dependencies = [ "aho-corasick", "memchr", - "regex-automata 0.4.7", - "regex-syntax 0.8.4", + "regex-automata 0.4.9", + "regex-syntax 0.8.5", ] [[package]] @@ -4688,13 +5137,13 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.7" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38caf58cc5ef2fed281f89292ef23f6365465ed9a41b7a7754eb4e26496c92df" +checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" dependencies = [ "aho-corasick", "memchr", - "regex-syntax 0.8.4", + "regex-syntax 0.8.5", ] [[package]] @@ -4705,9 +5154,9 @@ checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" [[package]] name = "regex-syntax" -version = "0.8.4" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b" +checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" [[package]] name = "relative-path" @@ -4726,9 +5175,9 @@ dependencies = [ [[package]] name = "reqwest" -version = "0.12.7" +version = "0.12.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8f4955649ef5c38cc7f9e8aa41761d48fb9677197daea9984dc54f56aad5e63" +checksum = "43e734407157c3c2034e0258f5e4473ddb361b1e85f95a66690d67264d7cd1da" dependencies = [ "base64 0.22.1", "bytes", @@ -4736,11 +5185,11 @@ dependencies = [ "futures-channel", "futures-core", "futures-util", - "h2 0.4.6", - "http 1.1.0", + "h2 0.4.7", + "http 1.2.0", "http-body 1.0.1", "http-body-util", - "hyper 1.4.1", + "hyper 1.5.2", "hyper-rustls", "hyper-tls", "hyper-util", @@ -4756,10 +5205,11 @@ dependencies = [ "serde", "serde_json", "serde_urlencoded", - "sync_wrapper 1.0.1", + "sync_wrapper 1.0.2", "system-configuration", "tokio", "tokio-native-tls", + "tower 0.5.2", "tower-service", "url", "wasm-bindgen", @@ -4817,7 +5267,7 @@ dependencies = [ "rkyv_derive", "seahash", "tinyvec", - "uuid 1.10.0", + "uuid 1.11.1", ] [[package]] @@ -4876,22 +5326,24 @@ dependencies = [ "regex", "relative-path", "rustc_version 0.4.1", - "syn 2.0.75", + "syn 2.0.96", "unicode-ident", ] [[package]] name = "ruint" -version = "1.12.3" +version = "1.12.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c3cc4c2511671f327125da14133d0c5c5d137f006a1017a16f557bc85b16286" +checksum = "f5ef8fb1dd8de3870cb8400d51b4c2023854bbafd5431a3ac7e7317243e22d2f" dependencies = [ "alloy-rlp", "ark-ff 0.3.0", "ark-ff 0.4.2", "bytes", - "fastrlp", + "fastrlp 0.3.1", + "fastrlp 0.4.0", "num-bigint 0.4.6", + "num-integer", "num-traits", "parity-scale-codec", "primitive-types 0.12.2", @@ -4932,6 +5384,12 @@ version = "0.1.24" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" +[[package]] +name = "rustc-hash" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7fb8039b3032c191086b10f11f319a6e99e1e82889c5cc6046f515c9db1d497" + [[package]] name = "rustc-hex" version = "2.1.0" @@ -4953,27 +5411,27 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" dependencies = [ - "semver 1.0.23", + "semver 1.0.24", ] [[package]] name = "rustix" -version = "0.38.36" +version = "0.38.43" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f55e80d50763938498dd5ebb18647174e0c76dc38c5505294bb224624f30f36" +checksum = "a78891ee6bf2340288408954ac787aa063d8e8817e9f53abb37c695c6d834ef6" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.7.0", "errno", "libc", "linux-raw-sys", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] name = "rustls" -version = "0.23.12" +version = "0.23.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c58f8c84392efc0a126acce10fa59ff7b3d2ac06ab451a33f2741989b806b044" +checksum = "8f287924602bf649d949c63dc8ac8b235fa5387d394020705b80c4eb597ce5b8" dependencies = [ "log", "once_cell", @@ -4986,25 +5444,24 @@ dependencies = [ [[package]] name = "rustls-pemfile" -version = "2.1.3" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "196fe16b00e106300d3e45ecfcb764fa292a535d7326a29a5875c579c7417425" +checksum = "dce314e5fee3f39953d46bb63bb8a46d40c2f8fb7cc5a3b6cab2bde9721d6e50" dependencies = [ - "base64 0.22.1", "rustls-pki-types", ] [[package]] name = "rustls-pki-types" -version = "1.8.0" +version = "1.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc0a2ce646f8655401bb81e7927b812614bd5d91dbc968696be50603510fcaf0" +checksum = "d2bf47e6ff922db3825eb750c4e2ff784c6ff8fb9e13046ef6a1d1c5401b0b37" [[package]] name = "rustls-webpki" -version = "0.102.7" +version = "0.102.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84678086bd54edf2b415183ed7a94d0efb049f1b646a33e22a36f3794be6ae56" +checksum = "64ca1bc8749bd4cf37b5ce386cc146580777b4e8572c7b97baf22c83f444bee9" dependencies = [ "ring", "rustls-pki-types", @@ -5013,9 +5470,9 @@ dependencies = [ [[package]] name = "rustversion" -version = "1.0.17" +version = "1.0.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "955d28af4278de8121b7ebeb796b6a45735dc01436d898801014aced2773a3d6" +checksum = "f7c45b9784283f1b2e7fb61b42047c2fd678ef0960d4f6f1eba131594cc369d4" [[package]] name = "rusty-fork" @@ -5046,9 +5503,9 @@ dependencies = [ [[package]] name = "schannel" -version = "0.1.24" +version = "0.1.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9aaafd5a2b6e3d657ff009d82fbd630b6bd54dd4eb06f21693925cdf80f9b8b" +checksum = "1f29ebaa345f945cec9fbbc532eb307f0fdad8161f281b6369539c8d84876b3d" dependencies = [ "windows-sys 0.59.0", ] @@ -5074,7 +5531,7 @@ dependencies = [ "proc-macro2", "quote", "serde_derive_internals", - "syn 2.0.75", + "syn 2.0.96", ] [[package]] @@ -5106,7 +5563,7 @@ checksum = "1db149f81d46d2deba7cd3c50772474707729550221e69588478ebf9ada425ae" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.96", ] [[package]] @@ -5154,8 +5611,21 @@ version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" dependencies = [ - "bitflags 2.6.0", - "core-foundation", + "bitflags 2.7.0", + "core-foundation 0.9.4", + "core-foundation-sys", + "libc", + "security-framework-sys", +] + +[[package]] +name = "security-framework" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "271720403f46ca04f7ba6f55d438f8bd878d6b8ca0a1046e8228c4145bcbb316" +dependencies = [ + "bitflags 2.7.0", + "core-foundation 0.10.0", "core-foundation-sys", "libc", "security-framework-sys", @@ -5163,9 +5633,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.11.1" +version = "2.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75da29fe9b9b08fe9d6b22b5b4bcbc75d8db3aa31e639aa56bb62e9d46bfceaf" +checksum = "49db231d56a190491cb4aeda9527f1ad45345af50b0851622a7adb8c03b01c32" dependencies = [ "core-foundation-sys", "libc", @@ -5182,40 +5652,40 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.23" +version = "1.0.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" +checksum = "3cb6eb87a131f756572d7fb904f6e7b68633f09cca868c5df1c4b8d1a694bbba" dependencies = [ "serde", ] [[package]] name = "semver-parser" -version = "0.10.2" +version = "0.10.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00b0bef5b7f9e0df16536d3961cfb6e84331c065b4066afb39768d0e319411f7" +checksum = "9900206b54a3527fdc7b8a938bffd94a568bac4f4aa8113b209df75a09c0dec2" dependencies = [ "pest", ] [[package]] name = "serde" -version = "1.0.208" +version = "1.0.217" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cff085d2cb684faa248efb494c39b68e522822ac0de72ccf08109abde717cfb2" +checksum = "02fc4265df13d6fa1d00ecff087228cc0a2b5f3c0e87e258d8b94a156e984c70" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.208" +version = "1.0.217" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24008e81ff7613ed8e5ba0cfaf24e2c2f1e5b8a0495711e44fcd4882fca62bcf" +checksum = "5a9bf7cf98d04a2b28aead066b7496853d4779c9cc183c440dbac457641e19a0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.96", ] [[package]] @@ -5226,14 +5696,14 @@ checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.96", ] [[package]] name = "serde_json" -version = "1.0.125" +version = "1.0.135" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83c8e735a073ccf5be70aa8066aa984eaf2fa000db6c8d0100ae605b366d31ed" +checksum = "2b0d7ba2887406110130a978386c4e1befb98c674b4fba677954e4db976630d9" dependencies = [ "itoa", "memchr", @@ -5249,14 +5719,14 @@ checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.96", ] [[package]] name = "serde_spanned" -version = "0.6.7" +version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb5b1b31579f3811bf615c144393417496f152e12ac8b7663bf664f4a815306d" +checksum = "87607cb1398ed59d48732e575a4c28a7a8ebf2454b964fe3f224f2afc07909e1" dependencies = [ "serde", ] @@ -5275,15 +5745,15 @@ dependencies = [ [[package]] name = "serde_with" -version = "3.9.0" +version = "3.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69cecfa94848272156ea67b2b1a53f20fc7bc638c4a46d2f8abde08f05f4b857" +checksum = "d6b6f7f2fcb69f747921f79f3926bd1e203fce4fef62c268dd3abfb6d86029aa" dependencies = [ "base64 0.22.1", "chrono", "hex", "indexmap 1.9.3", - "indexmap 2.4.0", + "indexmap 2.7.0", "serde", "serde_derive", "serde_json", @@ -5293,14 +5763,14 @@ dependencies = [ [[package]] name = "serde_with_macros" -version = "3.9.0" +version = "3.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8fee4991ef4f274617a51ad4af30519438dacb2f56ac773b08a1922ff743350" +checksum = "8d00caa5193a3c8362ac2b73be6b9e768aa5a4b2f721d8f4b339600c3cb51f8e" dependencies = [ "darling 0.20.10", "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.96", ] [[package]] @@ -5309,7 +5779,7 @@ version = "0.9.34+deprecated" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47" dependencies = [ - "indexmap 2.4.0", + "indexmap 2.7.0", "itoa", "ryu", "serde", @@ -5363,9 +5833,9 @@ dependencies = [ [[package]] name = "sha3-asm" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57d79b758b7cb2085612b11a235055e485605a5103faccdd633f35bd7aee69dd" +checksum = "c28efc5e327c837aa837c59eae585fc250715ef939ac32881bcc11677cd02d46" dependencies = [ "cc", "cfg-if 1.0.0", @@ -5449,9 +5919,9 @@ dependencies = [ [[package]] name = "simdutf8" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f27f6278552951f1f2b8cf9da965d10969b2efdea95a6ec47987ab46edfe263a" +checksum = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e" [[package]] name = "siphasher" @@ -5504,7 +5974,7 @@ checksum = "0eb01866308440fc64d6c44d9e86c5cc17adfe33c4d6eed55da9145044d0ffc1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.96", ] [[package]] @@ -5515,9 +5985,9 @@ checksum = "b7c388c1b5e93756d0c740965c41e8822f866621d41acbdf6336a6a168f8840c" [[package]] name = "socket2" -version = "0.5.7" +version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c" +checksum = "c970269d99b64e60ec3bd6ad27270092a5394c4e309314b18ae3fe575695fbe8" dependencies = [ "libc", "windows-sys 0.52.0", @@ -5615,7 +6085,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.75", + "syn 2.0.96", ] [[package]] @@ -5661,7 +6131,7 @@ dependencies = [ "serde_json", "smallvec", "symbolic-common", - "thiserror", + "thiserror 1.0.69", "wasmparser 0.83.0", "zip 0.5.13", ] @@ -5679,9 +6149,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.75" +version = "2.0.96" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6af063034fc1935ede7be0122941bafa9bacb949334d090b77ca98b5817c7d9" +checksum = "d5d0adab1ae378d7f53bdebc67a39f1f151407ef230f0ce2883572f5d8985c80" dependencies = [ "proc-macro2", "quote", @@ -5690,26 +6160,14 @@ dependencies = [ [[package]] name = "syn-solidity" -version = "0.8.0" +version = "0.8.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "284c41c2919303438fcf8dede4036fd1e82d4fc0fbb2b279bd2a1442c909ca92" +checksum = "31e89d8bf2768d277f40573c83a02a099e96d96dd3104e13ea676194e61ac4b0" dependencies = [ "paste", "proc-macro2", "quote", - "syn 2.0.75", -] - -[[package]] -name = "syn_derive" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1329189c02ff984e9736652b1631330da25eaa6bc639089ed4915d25446cbe7b" -dependencies = [ - "proc-macro-error", - "proc-macro2", - "quote", - "syn 2.0.75", + "syn 2.0.96", ] [[package]] @@ -5720,21 +6178,32 @@ checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" [[package]] name = "sync_wrapper" -version = "1.0.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7065abeca94b6a8a577f9bd45aa0867a2238b74e8eb67cf10d492bc39351394" +checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" dependencies = [ "futures-core", ] +[[package]] +name = "synstructure" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.96", +] + [[package]] name = "system-configuration" version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" dependencies = [ - "bitflags 2.6.0", - "core-foundation", + "bitflags 2.7.0", + "core-foundation 0.9.4", "system-configuration-sys", ] @@ -5756,9 +6225,9 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" [[package]] name = "tar" -version = "0.4.41" +version = "0.4.43" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb797dad5fb5b76fcf519e702f4a589483b5ef06567f160c392832c1f5e44909" +checksum = "c65998313f8e17d0d553d28f91a0df93e4dbbbf770279c7bc21ca0f09ea1a1f6" dependencies = [ "filetime", "libc", @@ -5767,12 +6236,13 @@ dependencies = [ [[package]] name = "tempfile" -version = "3.12.0" +version = "3.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04cbcdd0c794ebb0d4cf35e88edd2f7d2c4c3e9a5a6dab322839b321c6a87a64" +checksum = "9a8a559c81686f576e8cd0290cd2a24a2a9ad80c98b3478856500fcbd7acd704" dependencies = [ "cfg-if 1.0.0", "fastrand", + "getrandom", "once_cell", "rustix", "windows-sys 0.59.0", @@ -5797,27 +6267,47 @@ checksum = "23d434d3f8967a09480fb04132ebe0a3e088c173e6d0ee7897abbdf4eab0f8b9" dependencies = [ "smawk", "unicode-linebreak", - "unicode-width", + "unicode-width 0.1.14", +] + +[[package]] +name = "thiserror" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" +dependencies = [ + "thiserror-impl 1.0.69", ] [[package]] name = "thiserror" -version = "1.0.63" +version = "2.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d452f284b73e6d76dd36758a0c8684b1d5be31f92b89d07fd5822175732206fc" +dependencies = [ + "thiserror-impl 2.0.11", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0342370b38b6a11b6cc11d6a805569958d54cfa061a29969c3b5ce2ea405724" +checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ - "thiserror-impl", + "proc-macro2", + "quote", + "syn 2.0.96", ] [[package]] name = "thiserror-impl" -version = "1.0.63" +version = "2.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4558b58466b9ad7ca0f102865eccc95938dca1a74a856f2b57b6629050da261" +checksum = "26afc1baea8a989337eeb52b6e72a039780ce45c3edfcc9c5b9d112feeb173c2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.96", ] [[package]] @@ -5830,11 +6320,20 @@ dependencies = [ "once_cell", ] +[[package]] +name = "threadpool" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d050e60b33d41c19108b32cea32164033a9013fe3b46cbd4457559bfbf77afaa" +dependencies = [ + "num_cpus", +] + [[package]] name = "time" -version = "0.3.36" +version = "0.3.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885" +checksum = "35e7868883861bd0e56d9ac6efcaaca0d6d5d82a2a7ec8209ff492c07cf37b21" dependencies = [ "deranged", "itoa", @@ -5853,9 +6352,9 @@ checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" [[package]] name = "time-macros" -version = "0.2.18" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf" +checksum = "2834e6017e3e5e4b9834939793b282bc03b37a3336245fa820e35e233e2a85de" dependencies = [ "num-conv", "time-core", @@ -5870,11 +6369,21 @@ dependencies = [ "crunchy", ] +[[package]] +name = "tinystr" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" +dependencies = [ + "displaydoc", + "zerovec", +] + [[package]] name = "tinyvec" -version = "1.8.0" +version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "445e881f4f6d382d5f27c034e25eb92edd7c784ceab92a0937db7f2e9471b938" +checksum = "022db8904dfa342efe721985167e9fcd16c29b226db4397ed752a761cfce81e8" dependencies = [ "tinyvec_macros", ] @@ -5910,14 +6419,14 @@ dependencies = [ [[package]] name = "tokio" -version = "1.40.0" +version = "1.43.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2b070231665d27ad9ec9b8df639893f46727666c6767db40317fbe920a5d998" +checksum = "3d61fa4ffa3de412bfea335c6ecff681de2b609ba3c77ef3e00e521813a9ed9e" dependencies = [ "backtrace", "bytes", "libc", - "mio 1.0.2", + "mio 1.0.3", "parking_lot 0.12.3", "pin-project-lite", "signal-hook-registry", @@ -5938,13 +6447,13 @@ dependencies = [ [[package]] name = "tokio-macros" -version = "2.4.0" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" +checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.96", ] [[package]] @@ -5970,20 +6479,19 @@ dependencies = [ [[package]] name = "tokio-rustls" -version = "0.26.0" +version = "0.26.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c7bc40d0e5a97695bb96e27995cd3a08538541b0a846f65bba7a359f36700d4" +checksum = "5f6d0975eaace0cf0fcadee4e4aaa5da15b5c079146f2cffb67c113be122bf37" dependencies = [ "rustls", - "rustls-pki-types", "tokio", ] [[package]] name = "tokio-stream" -version = "0.1.16" +version = "0.1.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f4e6ce100d0eb49a2734f8c0812bcd324cf357d21810932c5df6b96ef2b86f1" +checksum = "eca58d7bba4a75707817a2c44174253f9236b2d5fbd055602e9d5c07c139a047" dependencies = [ "futures-core", "pin-project-lite", @@ -5992,9 +6500,9 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.12" +version = "0.7.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61e7c3654c13bcd040d4a03abee2c75b1d14a37b423cf5a813ceae1cc903ec6a" +checksum = "d7fcaa8d55a2bdd6b83ace262b016eca0d79ee02818c5c1bcdf0305114081078" dependencies = [ "bytes", "futures-core", @@ -6021,7 +6529,7 @@ dependencies = [ "serde", "serde_spanned", "toml_datetime", - "toml_edit 0.22.20", + "toml_edit", ] [[package]] @@ -6035,26 +6543,15 @@ dependencies = [ [[package]] name = "toml_edit" -version = "0.21.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1" -dependencies = [ - "indexmap 2.4.0", - "toml_datetime", - "winnow 0.5.40", -] - -[[package]] -name = "toml_edit" -version = "0.22.20" +version = "0.22.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "583c44c02ad26b0c3f3066fe629275e50627026c51ac2e595cca4c230ce1ce1d" +checksum = "4ae48d6208a266e853d946088ed816055e556cc6028c5e8e2b84d9fa5dd7c7f5" dependencies = [ - "indexmap 2.4.0", + "indexmap 2.7.0", "serde", "serde_spanned", "toml_datetime", - "winnow 0.6.18", + "winnow", ] [[package]] @@ -6071,14 +6568,14 @@ dependencies = [ "h2 0.3.26", "http 0.2.12", "http-body 0.4.6", - "hyper 0.14.30", + "hyper 0.14.32", "hyper-timeout", "percent-encoding", "pin-project", "prost", "tokio", "tokio-stream", - "tower", + "tower 0.4.13", "tower-layer", "tower-service", "tracing", @@ -6104,6 +6601,21 @@ dependencies = [ "tracing", ] +[[package]] +name = "tower" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d039ad9159c98b70ecfd540b2573b97f7f52c3e8d9f8ad57a24b916a536975f9" +dependencies = [ + "futures-core", + "futures-util", + "pin-project-lite", + "sync_wrapper 1.0.2", + "tokio", + "tower-layer", + "tower-service", +] + [[package]] name = "tower-layer" version = "0.3.3" @@ -6118,9 +6630,9 @@ checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" [[package]] name = "tracing" -version = "0.1.40" +version = "0.1.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" +checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" dependencies = [ "pin-project-lite", "tracing-attributes", @@ -6134,27 +6646,27 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3566e8ce28cc0a3fe42519fc80e6b4c943cc4c8cef275620eb8dac2d3d4e06cf" dependencies = [ "crossbeam-channel", - "thiserror", + "thiserror 1.0.69", "time", "tracing-subscriber", ] [[package]] name = "tracing-attributes" -version = "0.1.27" +version = "0.1.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" +checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.96", ] [[package]] name = "tracing-core" -version = "0.1.32" +version = "0.1.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" +checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c" dependencies = [ "once_cell", "valuable", @@ -6162,9 +6674,9 @@ dependencies = [ [[package]] name = "tracing-error" -version = "0.2.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d686ec1c0f384b1277f097b2f279a2ecc11afe8c133c1aabf036a27cb4cd206e" +checksum = "8b1581020d7a273442f5b45074a6a57d5757ad0a47dac0e9f0bd57b81936f3db" dependencies = [ "tracing", "tracing-subscriber", @@ -6172,9 +6684,9 @@ dependencies = [ [[package]] name = "tracing-indicatif" -version = "0.3.6" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "069580424efe11d97c3fef4197fa98c004fa26672cc71ad8770d224e23b1951d" +checksum = "74ba258e9de86447f75edf6455fded8e5242704c6fccffe7bf8d7fb6daef1180" dependencies = [ "indicatif", "tracing", @@ -6213,9 +6725,9 @@ dependencies = [ [[package]] name = "tracing-subscriber" -version = "0.3.18" +version = "0.3.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b" +checksum = "e8189decb5ac0fa7bc8b96b7cb9b2701d60d48805aca84a238004d665fcc4008" dependencies = [ "matchers", "nu-ansi-term", @@ -6243,9 +6755,9 @@ checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" [[package]] name = "ucd-trie" -version = "0.1.6" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9" +checksum = "2896d95c02a80c6d6a5d6e953d479f5ddf2dfdb6a244441010e373ac0fb88971" [[package]] name = "uint" @@ -6277,17 +6789,11 @@ version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94" -[[package]] -name = "unicode-bidi" -version = "0.3.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75" - [[package]] name = "unicode-ident" -version = "1.0.12" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" +checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83" [[package]] name = "unicode-linebreak" @@ -6306,15 +6812,27 @@ dependencies = [ [[package]] name = "unicode-segmentation" -version = "1.11.0" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202" +checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" [[package]] name = "unicode-width" -version = "0.1.13" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" + +[[package]] +name = "unicode-width" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fc81956842c57dac11422a97c3b8195a1ff727f06e85c84ed2e8aa277c9a0fd" + +[[package]] +name = "unicode-xid" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0336d538f7abc86d282a4189614dfaa90810dfc2c6f6427eaf88e16311dd225d" +checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" [[package]] name = "unix_path" @@ -6345,9 +6863,9 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" [[package]] name = "ureq" -version = "2.10.1" +version = "2.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b74fc6b57825be3373f7054754755f03ac3a8f5d70015ccad699ba2029956f4a" +checksum = "02d1a66277ed75f640d608235660df48c8e3c19f3b4edb6a263315626cc3c01d" dependencies = [ "base64 0.22.1", "flate2", @@ -6371,9 +6889,9 @@ dependencies = [ [[package]] name = "url" -version = "2.5.2" +version = "2.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22784dbdf76fdde8af1aeda5622b546b422b6fc585325248a2bf9f5e41e94d6c" +checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" dependencies = [ "form_urlencoded", "idna", @@ -6387,6 +6905,18 @@ version = "2.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da" +[[package]] +name = "utf16_iter" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" + +[[package]] +name = "utf8_iter" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" + [[package]] name = "utf8parse" version = "0.2.2" @@ -6401,9 +6931,9 @@ checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7" [[package]] name = "uuid" -version = "1.10.0" +version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81dfa00651efa65069b0b6b651f4aaa31ba9e3c3ce0137aaad053604ee7e0314" +checksum = "b913a3b5fe84142e269d63cc62b64319ccaf89b748fc31fe025177f767a756c4" [[package]] name = "valuable" @@ -6431,7 +6961,7 @@ checksum = "84cd863bf0db7e392ba3bd04994be3473491b31e66340672af5d11943c6274de" dependencies = [ "itoa", "log", - "unicode-width", + "unicode-width 0.1.14", "vte", ] @@ -6492,9 +7022,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.93" +version = "0.2.99" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a82edfc16a6c469f5f44dc7b571814045d60404b55a0ee849f9bcfa2e63dd9b5" +checksum = "a474f6281d1d70c17ae7aa6a613c87fce69a127e2624002df63dcb39d6cf6396" dependencies = [ "cfg-if 1.0.0", "once_cell", @@ -6503,36 +7033,36 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.93" +version = "0.2.99" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9de396da306523044d3302746f1208fa71d7532227f15e347e2d93e4145dd77b" +checksum = "5f89bb38646b4f81674e8f5c3fb81b562be1fd936d84320f3264486418519c79" dependencies = [ "bumpalo", "log", - "once_cell", "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.96", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.43" +version = "0.4.49" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61e9300f63a621e96ed275155c108eb6f843b6a26d053f122ab69724559dc8ed" +checksum = "38176d9b44ea84e9184eff0bc34cc167ed044f816accfe5922e54d84cf48eca2" dependencies = [ "cfg-if 1.0.0", "js-sys", + "once_cell", "wasm-bindgen", "web-sys", ] [[package]] name = "wasm-bindgen-macro" -version = "0.2.93" +version = "0.2.99" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "585c4c91a46b072c92e908d99cb1dcdf95c5218eeb6f3bf1efa991ee7a68cccf" +checksum = "2cc6181fd9a7492eef6fef1f33961e3695e4579b9872a6f7c83aee556666d4fe" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -6540,22 +7070,22 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.93" +version = "0.2.99" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "afc340c74d9005395cf9dd098506f7f44e38f2b4a21c6aaacf9a105ea5e1e836" +checksum = "30d7a95b763d3c45903ed6c81f156801839e5ee968bb07e534c44df0fcd330c2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.96", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.93" +version = "0.2.99" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c62a0a307cb4a311d3a07867860911ca130c3494e8c2719593806c08bc5d0484" +checksum = "943aab3fdaaa029a6e0271b35ea10b72b943135afe9bffca82384098ad0e06a6" [[package]] name = "wasmparser" @@ -6570,18 +7100,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3189cc8a91f547390e2f043ca3b3e3fe0892f7d581767fd4e4b7f3dc3fe8e561" dependencies = [ "ahash 0.8.11", - "bitflags 2.6.0", + "bitflags 2.7.0", "hashbrown 0.14.5", - "indexmap 2.4.0", - "semver 1.0.23", + "indexmap 2.7.0", + "semver 1.0.24", "serde", ] [[package]] name = "web-sys" -version = "0.3.70" +version = "0.3.76" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26fdeaafd9bd129f65e7c031593c24d62186301e0c72c8978fa1678be7d532c0" +checksum = "04dd7223427d52553d3702c004d3b2fe07c148165faa56313cb00211e31c12bc" dependencies = [ "js-sys", "wasm-bindgen", @@ -6599,9 +7129,9 @@ dependencies = [ [[package]] name = "webpki-roots" -version = "0.26.5" +version = "0.26.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bd24728e5af82c6c4ec1b66ac4844bdf8156257fccda846ec58b42cd0cdbe6a" +checksum = "5d642ff16b7e79272ae451b7322067cdc17cadf68c23264be9d94a32319efe7e" dependencies = [ "rustls-pki-types", ] @@ -6838,18 +7368,9 @@ checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" [[package]] name = "winnow" -version = "0.5.40" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" -dependencies = [ - "memchr", -] - -[[package]] -name = "winnow" -version = "0.6.18" +version = "0.6.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68a9bda4691f099d435ad181000724da8e5899daa10713c2d432552b9ccd3a6f" +checksum = "c8d71a593cc5c42ad7876e2c1fda56f314f3754c084128833e64f1345ff8a03a" dependencies = [ "memchr", ] @@ -6866,6 +7387,18 @@ dependencies = [ "omni-types", ] +[[package]] +name = "write16" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" + +[[package]] +name = "writeable" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" + [[package]] name = "wyz" version = "0.5.1" @@ -6877,9 +7410,9 @@ dependencies = [ [[package]] name = "xattr" -version = "1.3.1" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8da84f1a25939b27f6820d92aed108f83ff920fdf11a7b19366c27c4cda81d4f" +checksum = "e105d177a3871454f754b33bb0ee637ecaaac997446375fd3e5d43a2ed00c909" dependencies = [ "libc", "linux-raw-sys", @@ -6888,9 +7421,33 @@ dependencies = [ [[package]] name = "xml-rs" -version = "0.8.21" +version = "0.8.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c5b940ebc25896e71dd073bad2dbaa2abfe97b0a391415e22ad1326d9c54e3c4" + +[[package]] +name = "yoke" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40" +dependencies = [ + "serde", + "stable_deref_trait", + "yoke-derive", + "zerofrom", +] + +[[package]] +name = "yoke-derive" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "539a77ee7c0de333dcc6da69b177380a0b81e0dacfa4f7344c465a36871ee601" +checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.96", + "synstructure", +] [[package]] name = "zerocopy" @@ -6910,7 +7467,28 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.96", +] + +[[package]] +name = "zerofrom" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cff3ee08c995dee1859d998dea82f7374f2826091dd9cd47def953cae446cd2e" +dependencies = [ + "zerofrom-derive", +] + +[[package]] +name = "zerofrom-derive" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "595eed982f7d355beb85837f651fa22e90b3c044842dc7f2c2842c086f295808" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.96", + "synstructure", ] [[package]] @@ -6930,7 +7508,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.96", ] [[package]] @@ -6946,6 +7524,28 @@ dependencies = [ "rustc-hex", ] +[[package]] +name = "zerovec" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079" +dependencies = [ + "yoke", + "zerofrom", + "zerovec-derive", +] + +[[package]] +name = "zerovec-derive" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.96", +] + [[package]] name = "zip" version = "0.5.13" @@ -6955,7 +7555,7 @@ dependencies = [ "byteorder", "crc32fast", "flate2", - "thiserror", + "thiserror 1.0.69", ] [[package]] diff --git a/near/omni-bridge/src/lib.rs b/near/omni-bridge/src/lib.rs index 6cc933f8..01ccee23 100644 --- a/near/omni-bridge/src/lib.rs +++ b/near/omni-bridge/src/lib.rs @@ -394,6 +394,9 @@ impl Contract { fee: &Option, ) -> Promise { let transfer_message = self.get_transfer_message(transfer_id); + + require!(transfer_message.amount.0 > 0, "Invalid amount"); + if let Some(fee) = &fee { require!(&transfer_message.fee == fee, "Invalid fee"); } From 60ee6c22eccc6afec0185ef0aef6603c9057f01c Mon Sep 17 00:00:00 2001 From: Ivan Frolov Date: Sat, 11 Jan 2025 21:57:59 -0500 Subject: [PATCH 02/73] fix: check amount after normalization --- near/omni-bridge/src/lib.rs | 2 -- 1 file changed, 2 deletions(-) diff --git a/near/omni-bridge/src/lib.rs b/near/omni-bridge/src/lib.rs index 01ccee23..b9121658 100644 --- a/near/omni-bridge/src/lib.rs +++ b/near/omni-bridge/src/lib.rs @@ -395,8 +395,6 @@ impl Contract { ) -> Promise { let transfer_message = self.get_transfer_message(transfer_id); - require!(transfer_message.amount.0 > 0, "Invalid amount"); - if let Some(fee) = &fee { require!(&transfer_message.fee == fee, "Invalid fee"); } From 473b29c727a64732c13bea52dbb03a89205e6ddc Mon Sep 17 00:00:00 2001 From: Ivan Frolov Date: Sat, 11 Jan 2025 22:02:44 -0500 Subject: [PATCH 03/73] chore: elided lifetimes cargo clippy had warning here --- near/omni-types/src/lib.rs | 4 ++-- near/omni-types/src/sol_address.rs | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/near/omni-types/src/lib.rs b/near/omni-types/src/lib.rs index 22836bfb..ffaf80d1 100644 --- a/near/omni-types/src/lib.rs +++ b/near/omni-types/src/lib.rs @@ -95,7 +95,7 @@ impl<'de> Deserialize<'de> for H160 { { struct HexVisitor; - impl<'de> Visitor<'de> for HexVisitor { + impl Visitor<'_> for HexVisitor { type Value = H160; fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result { @@ -357,7 +357,7 @@ impl<'de> Deserialize<'de> for OmniAddress { { struct OmniAddressVisitor; - impl<'de> serde::de::Visitor<'de> for OmniAddressVisitor { + impl serde::de::Visitor<'_> for OmniAddressVisitor { type Value = OmniAddress; fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result { diff --git a/near/omni-types/src/sol_address.rs b/near/omni-types/src/sol_address.rs index 77d4a30b..91e7af27 100644 --- a/near/omni-types/src/sol_address.rs +++ b/near/omni-types/src/sol_address.rs @@ -43,7 +43,7 @@ impl<'de> Deserialize<'de> for SolAddress { { struct Base58Visitor; - impl<'de> Visitor<'de> for Base58Visitor { + impl Visitor<'_> for Base58Visitor { type Value = SolAddress; fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result { From 5b581f99d92295f0de177dade1727a79f40dbd25 Mon Sep 17 00:00:00 2001 From: Ivan Frolov Date: Sat, 11 Jan 2025 23:51:51 -0500 Subject: [PATCH 04/73] chore: downgrade to rustc v1.81.0 only when building wasm files --- near/build.sh | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/near/build.sh b/near/build.sh index a7c89ad2..e939dd31 100755 --- a/near/build.sh +++ b/near/build.sh @@ -86,7 +86,12 @@ docker run \ -w /host \ -e RUSTFLAGS='-C link-arg=-s' \ nearprotocol/contract-builder$tag \ - /bin/bash -c "rustup target add wasm32-unknown-unknown && $BUILD_CMD" + /bin/bash -c " + rustup install 1.81.0 && \ + rustup default 1.81.0 && \ + rustup target add wasm32-unknown-unknown && \ + $BUILD_CMD + " mkdir -p $RES_DIR From 5dc97af082ab37b24330e1709888685ca22bc019 Mon Sep 17 00:00:00 2001 From: Ivan Frolov Date: Sun, 12 Jan 2025 00:22:07 -0500 Subject: [PATCH 05/73] chore: downgraded to 1.81.0 and bumped near-workspaces to v0.16 --- near/Cargo.lock | 3064 +++-------------------------------------------- near/Cargo.toml | 4 +- near/build.sh | 7 +- 3 files changed, 186 insertions(+), 2889 deletions(-) diff --git a/near/Cargo.lock b/near/Cargo.lock index d9469665..7b587d44 100644 --- a/near/Cargo.lock +++ b/near/Cargo.lock @@ -12,77 +12,15 @@ dependencies = [ "regex", ] -[[package]] -name = "actix" -version = "0.13.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de7fa236829ba0841304542f7614c42b80fca007455315c45c785ccfa873a85b" -dependencies = [ - "actix-macros", - "actix-rt", - "actix_derive", - "bitflags 2.7.0", - "bytes", - "crossbeam-channel", - "futures-core", - "futures-sink", - "futures-task", - "futures-util", - "log", - "once_cell", - "parking_lot 0.12.3", - "pin-project-lite", - "smallvec", - "tokio", - "tokio-util", -] - -[[package]] -name = "actix-macros" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e01ed3140b2f8d422c68afa1ed2e85d996ea619c988ac834d255db32138655cb" -dependencies = [ - "quote", - "syn 2.0.96", -] - -[[package]] -name = "actix-rt" -version = "2.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24eda4e2a6e042aa4e55ac438a2ae052d3b5da0ecf83d7411e1a368946925208" -dependencies = [ - "futures-core", - "tokio", -] - -[[package]] -name = "actix_derive" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6ac1e58cded18cb28ddc17143c4dea5345b3ad575e14f32f66e4054a56eb271" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.96", -] - [[package]] name = "addr2line" -version = "0.21.0" +version = "0.24.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb" +checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" dependencies = [ - "gimli 0.28.1", + "gimli", ] -[[package]] -name = "adler" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" - [[package]] name = "adler2" version = "2.0.0" @@ -100,29 +38,6 @@ dependencies = [ "cpufeatures", ] -[[package]] -name = "ahash" -version = "0.7.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "891477e0c6a8957309ee5c45a6368af3ae14bb510732d2684ffa19af310920f9" -dependencies = [ - "getrandom", - "once_cell", - "version_check", -] - -[[package]] -name = "ahash" -version = "0.8.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" -dependencies = [ - "cfg-if 1.0.0", - "once_cell", - "version_check", - "zerocopy", -] - [[package]] name = "aho-corasick" version = "1.1.3" @@ -272,55 +187,6 @@ dependencies = [ "libc", ] -[[package]] -name = "anstream" -version = "0.6.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8acc5369981196006228e28809f761875c0327210a891e941f4c683b3a99529b" -dependencies = [ - "anstyle", - "anstyle-parse", - "anstyle-query", - "anstyle-wincon", - "colorchoice", - "is_terminal_polyfill", - "utf8parse", -] - -[[package]] -name = "anstyle" -version = "1.0.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55cc3b69f167a1ef2e161439aa98aed94e6028e5f9a59be9a6ffb47aef1651f9" - -[[package]] -name = "anstyle-parse" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b2d16507662817a6a20a9ea92df6652ee4f94f914589377d69f3b21bc5798a9" -dependencies = [ - "utf8parse", -] - -[[package]] -name = "anstyle-query" -version = "1.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79947af37f4177cfead1110013d678905c37501914fba0efea834c3fe9a8d60c" -dependencies = [ - "windows-sys 0.59.0", -] - -[[package]] -name = "anstyle-wincon" -version = "3.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2109dbce0e72be3ec00bed26e6a7479ca384ad226efdd66db8fa2e3a38c83125" -dependencies = [ - "anstyle", - "windows-sys 0.59.0", -] - [[package]] name = "anyhow" version = "1.0.95" @@ -366,7 +232,7 @@ dependencies = [ "ark-std 0.4.0", "derivative", "digest 0.10.7", - "itertools 0.10.5", + "itertools", "num-bigint 0.4.6", "num-traits", "paste", @@ -466,28 +332,6 @@ version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" -[[package]] -name = "async-stream" -version = "0.3.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b5a71a6f37880a80d1d7f19efd781e4b5de42c88f0722cc13bcb6cc2cfe8476" -dependencies = [ - "async-stream-impl", - "futures-core", - "pin-project-lite", -] - -[[package]] -name = "async-stream-impl" -version = "0.3.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.96", -] - [[package]] name = "async-trait" version = "0.1.85" @@ -522,64 +366,19 @@ version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" -[[package]] -name = "axum" -version = "0.6.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b829e4e32b91e643de6eafe82b1d90675f5874230191a4ffbc1b336dec4d6bf" -dependencies = [ - "async-trait", - "axum-core", - "bitflags 1.3.2", - "bytes", - "futures-util", - "http 0.2.12", - "http-body 0.4.6", - "hyper 0.14.32", - "itoa", - "matchit", - "memchr", - "mime", - "percent-encoding", - "pin-project-lite", - "rustversion", - "serde", - "sync_wrapper 0.1.2", - "tower 0.4.13", - "tower-layer", - "tower-service", -] - -[[package]] -name = "axum-core" -version = "0.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "759fa577a247914fd3f7f76d62972792636412fbfd634cd452f6a385a74d2d2c" -dependencies = [ - "async-trait", - "bytes", - "futures-util", - "http 0.2.12", - "http-body 0.4.6", - "mime", - "rustversion", - "tower-layer", - "tower-service", -] - [[package]] name = "backtrace" -version = "0.3.71" +version = "0.3.74" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26b05800d2e817c8b3b4b54abd461726265fa9789ae34330622f2db9ee696f9d" +checksum = "8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a" dependencies = [ "addr2line", - "cc", "cfg-if 1.0.0", "libc", - "miniz_oxide 0.7.4", + "miniz_oxide", "object", "rustc-demangle", + "windows-targets", ] [[package]] @@ -621,20 +420,7 @@ dependencies = [ "siphasher", "tar", "ureq", - "zip 0.6.6", -] - -[[package]] -name = "bip39" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33415e24172c1b7d6066f6d999545375ab8e1d95421d6784bdfff9496f292387" -dependencies = [ - "bitcoin_hashes", - "rand", - "rand_core", - "serde", - "unicode-normalization", + "zip", ] [[package]] @@ -652,22 +438,6 @@ version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" -[[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.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" @@ -701,15 +471,6 @@ dependencies = [ "digest 0.10.7", ] -[[package]] -name = "block-buffer" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" -dependencies = [ - "generic-array", -] - [[package]] name = "block-buffer" version = "0.10.4" @@ -754,15 +515,6 @@ dependencies = [ "syn 2.0.96", ] -[[package]] -name = "brownstone" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "030ea61398f34f1395ccbeb046fb68c87b631d1f34567fed0f0f11fa35d18d8d" -dependencies = [ - "arrayvec", -] - [[package]] name = "bs58" version = "0.4.0" @@ -778,16 +530,6 @@ dependencies = [ "tinyvec", ] -[[package]] -name = "bstr" -version = "1.11.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "531a9155a481e2ee699d4f98f43c0ca4ff8ee1bfd55c31e9e98fb29d2b176fe0" -dependencies = [ - "memchr", - "serde", -] - [[package]] name = "bumpalo" version = "3.16.0" @@ -800,28 +542,6 @@ version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3ac9f8b63eca6fd385229b3675f6cc0dc5c8a5c8a54a59d4f52ffd670d87b0c" -[[package]] -name = "bytecheck" -version = "0.6.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23cdc57ce23ac53c931e88a43d06d070a6fd142f2617be5855eb75efc9beb1c2" -dependencies = [ - "bytecheck_derive", - "ptr_meta", - "simdutf8", -] - -[[package]] -name = "bytecheck_derive" -version = "0.6.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3db406d29fbcd95542e92559bed4d8ad92636d1ca8b3b72ede10b4bcc010e659" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - [[package]] name = "byteorder" version = "1.5.0" @@ -867,106 +587,6 @@ dependencies = [ "pkg-config", ] -[[package]] -name = "camino" -version = "1.1.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b96ec4966b5813e2c0507c1f86115c8c5abaadc3980879c3424042a02fd1ad3" -dependencies = [ - "serde", -] - -[[package]] -name = "cargo-near" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63b7d99422c06c754d57a42c301f0d3d8a1c8e8d6d62799107bccf83f32e6571" -dependencies = [ - "bs58 0.5.1", - "camino", - "cargo_metadata", - "clap", - "color-eyre", - "colored", - "derive_more 0.99.18", - "dunce", - "env_logger", - "git2", - "hex", - "home", - "inquire", - "interactive-clap", - "interactive-clap-derive", - "libloading", - "linked-hash-map", - "log", - "names", - "near-abi", - "near-cli-rs", - "nix", - "pathdiff", - "rustc_version 0.4.1", - "schemars", - "serde", - "serde_json", - "sha2 0.10.8", - "shell-words", - "strum 0.24.1", - "strum_macros 0.24.3", - "symbolic-debuginfo", - "tempfile", - "tmp_env", - "unix_path", - "url", - "zstd 0.13.2", -] - -[[package]] -name = "cargo-platform" -version = "0.1.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e35af189006b9c0f00a064685c727031e3ed2d8020f7ba284d78cc2671bd36ea" -dependencies = [ - "serde", -] - -[[package]] -name = "cargo-util" -version = "0.2.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cccd15f96a29696e13e1d5fa10dd1dbed2e172f58b6e6124a9a4fa695363fdd" -dependencies = [ - "anyhow", - "core-foundation 0.10.0", - "filetime", - "hex", - "ignore", - "jobserver", - "libc", - "miow", - "same-file", - "sha2 0.10.8", - "shell-escape", - "tempfile", - "tracing", - "walkdir", - "windows-sys 0.59.0", -] - -[[package]] -name = "cargo_metadata" -version = "0.18.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d886547e41f740c616ae73108f6eb70afe6d940c7bc697cb30f13daec073037" -dependencies = [ - "camino", - "cargo-platform", - "semver 1.0.24", - "serde", - "serde_json", - "thiserror 1.0.69", -] - [[package]] name = "cc" version = "1.2.8" @@ -1008,7 +628,7 @@ dependencies = [ "num-traits", "serde", "wasm-bindgen", - "windows-targets 0.52.6", + "windows-targets", ] [[package]] @@ -1022,117 +642,21 @@ dependencies = [ ] [[package]] -name = "clap" -version = "4.5.26" +name = "const-hex" +version = "1.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8eb5e908ef3a6efbe1ed62520fb7287959888c88485abe072543190ecc66783" +checksum = "4b0485bab839b018a8f1723fc5391819fea5f8f0f32288ef8a735fd096b6160c" dependencies = [ - "clap_builder", - "clap_derive", + "cfg-if 1.0.0", + "cpufeatures", + "hex", + "proptest", + "serde", ] [[package]] -name = "clap_builder" -version = "4.5.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96b01801b5fc6a0a232407abc821660c9c6d25a1cafc0d4f85f29fb8d9afc121" -dependencies = [ - "anstream", - "anstyle", - "clap_lex", - "strsim 0.11.1", -] - -[[package]] -name = "clap_derive" -version = "4.5.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54b755194d6389280185988721fffba69495eed5ee9feeee9a599b53db80318c" -dependencies = [ - "heck 0.5.0", - "proc-macro2", - "quote", - "syn 2.0.96", -] - -[[package]] -name = "clap_lex" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f46ad14479a25103f283c0f10005961cf086d8dc42205bb44c46ac563475dca6" - -[[package]] -name = "color-eyre" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55146f5e46f237f7423d74111267d4597b59b0dad0ffaf7303bce9945d843ad5" -dependencies = [ - "backtrace", - "color-spantrace", - "eyre", - "indenter", - "once_cell", - "owo-colors", - "tracing-error", -] - -[[package]] -name = "color-spantrace" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd6be1b2a7e382e2b98b43b2adcca6bb0e465af0bdd38123873ae61eb17a72c2" -dependencies = [ - "once_cell", - "owo-colors", - "tracing-core", - "tracing-error", -] - -[[package]] -name = "colorchoice" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b63caa9aa9397e2d9480a9b13673856c78d8ac123288526c37d7839f2a86990" - -[[package]] -name = "colored" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "117725a109d387c937a1533ce01b450cbde6b88abceea8473c4d7a85853cda3c" -dependencies = [ - "lazy_static", - "windows-sys 0.59.0", -] - -[[package]] -name = "console" -version = "0.15.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea3c6ecd8059b57859df5c69830340ed3c41d30e3da0c1cbed90a96ac853041b" -dependencies = [ - "encode_unicode", - "libc", - "once_cell", - "unicode-width 0.2.0", - "windows-sys 0.59.0", -] - -[[package]] -name = "const-hex" -version = "1.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b0485bab839b018a8f1723fc5391819fea5f8f0f32288ef8a735fd096b6160c" -dependencies = [ - "cfg-if 1.0.0", - "cpufeatures", - "hex", - "proptest", - "serde", -] - -[[package]] -name = "const-oid" -version = "0.9.6" +name = "const-oid" +version = "0.9.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" @@ -1164,16 +688,6 @@ dependencies = [ "libc", ] -[[package]] -name = "core-foundation" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b55271e5c8c478ad3f38ad24ef34923091e0548492a266d19b3c0b4d82574c63" -dependencies = [ - "core-foundation-sys", - "libc", -] - [[package]] name = "core-foundation-sys" version = "0.8.7" @@ -1198,15 +712,6 @@ dependencies = [ "cfg-if 1.0.0", ] -[[package]] -name = "crossbeam-channel" -version = "0.5.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06ba6d68e24814cb8de6bb986db8222d3a027d15872cabc0d18817bc3c0e4471" -dependencies = [ - "crossbeam-utils", -] - [[package]] name = "crossbeam-deque" version = "0.8.6" @@ -1232,31 +737,6 @@ version = "0.8.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" -[[package]] -name = "crossterm" -version = "0.25.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e64e6c0fbe2c17357405f7c758c1ef960fce08bdfb2c03d88d2a18d7e09c4b67" -dependencies = [ - "bitflags 1.3.2", - "crossterm_winapi", - "libc", - "mio 0.8.11", - "parking_lot 0.12.3", - "signal-hook", - "signal-hook-mio", - "winapi", -] - -[[package]] -name = "crossterm_winapi" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acdd7c62a3665c7f6830a51635d9ac9b23ed385797f70a83bb8bafe9c572ab2b" -dependencies = [ - "winapi", -] - [[package]] name = "crunchy" version = "0.2.2" @@ -1285,37 +765,6 @@ dependencies = [ "typenum", ] -[[package]] -name = "crypto-mac" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58bcd97a54c7ca5ce2f6eb16f6bede5b0ab5f0055fedc17d2f0b4466e21671ca" -dependencies = [ - "generic-array", - "subtle", -] - -[[package]] -name = "csv" -version = "1.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acdc4883a9c96732e4733212c01447ebd805833b7275a73ca3ee080fd77afdaf" -dependencies = [ - "csv-core", - "itoa", - "ryu", - "serde", -] - -[[package]] -name = "csv-core" -version = "0.1.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5efa2b3d7902f4b634a20cae3c9c4e6209dc4779feb6863329607560143efa70" -dependencies = [ - "memchr", -] - [[package]] name = "curve25519-dalek" version = "4.1.3" @@ -1327,7 +776,6 @@ dependencies = [ "curve25519-dalek-derive", "digest 0.10.7", "fiat-crypto", - "rand_core", "rustc_version 0.4.1", "subtle", "zeroize", @@ -1414,40 +862,6 @@ dependencies = [ "syn 2.0.96", ] -[[package]] -name = "dbus" -version = "0.9.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bb21987b9fb1613058ba3843121dd18b163b254d8a6e797e144cbac14d96d1b" -dependencies = [ - "libc", - "libdbus-sys", - "winapi", -] - -[[package]] -name = "dbus-secret-service" -version = "4.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b42a16374481d92aed73ae45b1f120207d8e71d24fb89f357fadbd8f946fd84b" -dependencies = [ - "dbus", - "futures-util", - "num", - "once_cell", - "openssl", - "rand", -] - -[[package]] -name = "debugid" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6ee87af31d84ef885378aebca32be3d682b0e0dc119d5b4860a2c5bb5046730" -dependencies = [ - "uuid 0.8.2", -] - [[package]] name = "der" version = "0.7.9" @@ -1539,21 +953,12 @@ version = "0.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" dependencies = [ - "block-buffer 0.10.4", + "block-buffer", "const-oid", "crypto-common", "subtle", ] -[[package]] -name = "dirs" -version = "5.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44c45a9d03d6676652bcb5e724c7e988de1acad23a711b5217ab9cbecbec2225" -dependencies = [ - "dirs-sys", -] - [[package]] name = "dirs-next" version = "2.0.0" @@ -1564,18 +969,6 @@ dependencies = [ "dirs-sys-next", ] -[[package]] -name = "dirs-sys" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c" -dependencies = [ - "libc", - "option-ext", - "redox_users", - "windows-sys 0.48.0", -] - [[package]] name = "dirs-sys-next" version = "0.1.2" @@ -1598,12 +991,6 @@ dependencies = [ "syn 2.0.96", ] -[[package]] -name = "dmsort" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0bc8fbe9441c17c9f46f75dfe27fa1ddb6c68a461ccaed0481419219d4f10d3" - [[package]] name = "dunce" version = "1.0.5" @@ -1622,12 +1009,6 @@ version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "53aff6fdc1b181225acdcb5b14c47106726fd8e486707315b1b138baed68ee31" -[[package]] -name = "easy-ext" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc5d6d6a8504f8caedd7de14576464383900cd3840b7033a7a3dce5ac00121ca" - [[package]] name = "ecdsa" version = "0.16.9" @@ -1660,7 +1041,7 @@ dependencies = [ "curve25519-dalek", "ed25519", "rand_core", - "sha2 0.10.8", + "sha2", "subtle", ] @@ -1670,16 +1051,6 @@ version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" -[[package]] -name = "elementtree" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f6319c9433cf1e95c60c8533978bccf0614f27f03bb4e514253468eeeaa7fe3" -dependencies = [ - "string_cache", - "xml-rs", -] - [[package]] name = "elliptic-curve" version = "0.13.8" @@ -1699,12 +1070,6 @@ dependencies = [ "zeroize", ] -[[package]] -name = "encode_unicode" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34aa73646ffb006b8f5147f3dc182bd4bcb190227ce861fc4a4844bf8e3cb2c0" - [[package]] name = "encoding_rs" version = "0.8.35" @@ -1734,29 +1099,6 @@ dependencies = [ "syn 2.0.96", ] -[[package]] -name = "env_filter" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "186e05a59d4c50738528153b83b0b0194d3a29507dfec16eccd4b342903397d0" -dependencies = [ - "log", - "regex", -] - -[[package]] -name = "env_logger" -version = "0.11.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcaee3d8e3cfc3fd92428d477bc97fc29ec8716d180c0d74c643bb26166660e0" -dependencies = [ - "anstream", - "anstyle", - "env_filter", - "humantime", - "log", -] - [[package]] name = "equivalent" version = "1.0.1" @@ -1810,22 +1152,6 @@ dependencies = [ "rlp 0.6.1", ] -[[package]] -name = "eyre" -version = "0.6.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cd915d99f24784cdc19fd37ef22b97e3ff0ae756c7e492e9fbfe897d61e2aec" -dependencies = [ - "indenter", - "once_cell", -] - -[[package]] -name = "fallible-iterator" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7" - [[package]] name = "fastrand" version = "2.3.0" @@ -1910,7 +1236,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c936bfdafb507ebbf50b8074c54fa31c5be9a1e7e5f467dd659697041407d07c" dependencies = [ "crc32fast", - "miniz_oxide 0.8.2", + "miniz_oxide", ] [[package]] @@ -1974,21 +1300,6 @@ version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" -[[package]] -name = "futures" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876" -dependencies = [ - "futures-channel", - "futures-core", - "futures-executor", - "futures-io", - "futures-sink", - "futures-task", - "futures-util", -] - [[package]] name = "futures-channel" version = "0.3.31" @@ -1996,7 +1307,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" dependencies = [ "futures-core", - "futures-sink", ] [[package]] @@ -2005,23 +1315,6 @@ version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" -[[package]] -name = "futures-executor" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f" -dependencies = [ - "futures-core", - "futures-task", - "futures-util", -] - -[[package]] -name = "futures-io" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" - [[package]] name = "futures-macro" version = "0.3.31" @@ -2057,36 +1350,14 @@ version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" dependencies = [ - "futures-channel", "futures-core", - "futures-io", "futures-macro", - "futures-sink", "futures-task", - "memchr", "pin-project-lite", "pin-utils", "slab", ] -[[package]] -name = "fuzzy-matcher" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54614a3312934d066701a80f20f15fa3b56d67ac7722b39eea5b4c9dd1d66c94" -dependencies = [ - "thread_local", -] - -[[package]] -name = "fxhash" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" -dependencies = [ - "byteorder", -] - [[package]] name = "generic-array" version = "0.14.7" @@ -2111,93 +1382,25 @@ dependencies = [ [[package]] name = "gimli" -version = "0.26.2" +version = "0.31.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22030e2c5a68ec659fde1e949a745124b48e6fa8b045b7ed5bd1fe4ccc5c4e5d" -dependencies = [ - "fallible-iterator", - "stable_deref_trait", -] +checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" [[package]] -name = "gimli" -version = "0.28.1" +name = "glob" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" +checksum = "a8d1add55171497b4705a648c6b583acafb01d58050a51727785f0b2c8e0a2b2" [[package]] -name = "git2" -version = "0.19.0" +name = "group" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b903b73e45dc0c6c596f2d37eccece7c1c8bb6e4407b001096387c63d0d93724" +checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" dependencies = [ - "bitflags 2.7.0", - "libc", - "libgit2-sys", - "log", - "openssl-probe", - "openssl-sys", - "url", -] - -[[package]] -name = "glob" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8d1add55171497b4705a648c6b583acafb01d58050a51727785f0b2c8e0a2b2" - -[[package]] -name = "globset" -version = "0.4.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15f1ce686646e7f1e19bf7d5533fe443a45dbfb990e00629110797578b42fb19" -dependencies = [ - "aho-corasick", - "bstr", - "log", - "regex-automata 0.4.9", - "regex-syntax 0.8.5", -] - -[[package]] -name = "goblin" -version = "0.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7666983ed0dd8d21a6f6576ee00053ca0926fb281a5522577a4dbd0f1b54143" -dependencies = [ - "log", - "plain", - "scroll 0.11.0", -] - -[[package]] -name = "group" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" -dependencies = [ - "ff", - "rand_core", - "subtle", -] - -[[package]] -name = "h2" -version = "0.3.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" -dependencies = [ - "bytes", - "fnv", - "futures-core", - "futures-sink", - "futures-util", - "http 0.2.12", - "indexmap 2.7.0", - "slab", - "tokio", - "tokio-util", - "tracing", + "ff", + "rand_core", + "subtle", ] [[package]] @@ -2211,7 +1414,7 @@ dependencies = [ "fnv", "futures-core", "futures-sink", - "http 1.2.0", + "http", "indexmap 2.7.0", "slab", "tokio", @@ -2224,19 +1427,6 @@ name = "hashbrown" version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" -dependencies = [ - "ahash 0.7.8", -] - -[[package]] -name = "hashbrown" -version = "0.14.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" -dependencies = [ - "ahash 0.8.11", - "serde", -] [[package]] name = "hashbrown" @@ -2268,12 +1458,6 @@ version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" -[[package]] -name = "hermit-abi" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbf6a919d6cf397374f7dfeeea91d974c7c0a7221d0d0f4f20d859d329e53fcc" - [[package]] name = "hex" version = "0.4.3" @@ -2283,22 +1467,6 @@ dependencies = [ "serde", ] -[[package]] -name = "hex-conservative" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "212ab92002354b4819390025006c897e8140934349e8635c9b077f47b4dcbd20" - -[[package]] -name = "hmac" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "deae6d9dbb35ec2c502d62b8f7b1c000a0822c3b0794ba36b3149c0a1c840dff" -dependencies = [ - "crypto-mac", - "digest 0.9.0", -] - [[package]] name = "hmac" version = "0.12.1" @@ -2317,17 +1485,6 @@ dependencies = [ "windows-sys 0.59.0", ] -[[package]] -name = "http" -version = "0.2.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" -dependencies = [ - "bytes", - "fnv", - "itoa", -] - [[package]] name = "http" version = "1.2.0" @@ -2339,17 +1496,6 @@ dependencies = [ "itoa", ] -[[package]] -name = "http-body" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" -dependencies = [ - "bytes", - "http 0.2.12", - "pin-project-lite", -] - [[package]] name = "http-body" version = "1.0.1" @@ -2357,7 +1503,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" dependencies = [ "bytes", - "http 1.2.0", + "http", ] [[package]] @@ -2368,8 +1514,8 @@ checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f" dependencies = [ "bytes", "futures-util", - "http 1.2.0", - "http-body 1.0.1", + "http", + "http-body", "pin-project-lite", ] @@ -2379,42 +1525,6 @@ version = "1.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7d71d3574edd2771538b901e6549113b4006ece66150fb69c0fb6d9a2adae946" -[[package]] -name = "httpdate" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" - -[[package]] -name = "humantime" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" - -[[package]] -name = "hyper" -version = "0.14.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41dfc780fdec9373c01bae43289ea34c972e40ee3c9f6b3c8801a35f35586ce7" -dependencies = [ - "bytes", - "futures-channel", - "futures-core", - "futures-util", - "h2 0.3.26", - "http 0.2.12", - "http-body 0.4.6", - "httparse", - "httpdate", - "itoa", - "pin-project-lite", - "socket2", - "tokio", - "tower-service", - "tracing", - "want", -] - [[package]] name = "hyper" version = "1.5.2" @@ -2424,9 +1534,9 @@ dependencies = [ "bytes", "futures-channel", "futures-util", - "h2 0.4.7", - "http 1.2.0", - "http-body 1.0.1", + "h2", + "http", + "http-body", "httparse", "itoa", "pin-project-lite", @@ -2442,8 +1552,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2d191583f3da1305256f22463b9bb0471acad48a4e534a5218b9963e9c1f59b2" dependencies = [ "futures-util", - "http 1.2.0", - "hyper 1.5.2", + "http", + "hyper", "hyper-util", "rustls", "rustls-pki-types", @@ -2452,18 +1562,6 @@ dependencies = [ "tower-service", ] -[[package]] -name = "hyper-timeout" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbb958482e8c7be4bc3cf272a766a2b0bf1a6755e7a6ae777f017a31d11b13b1" -dependencies = [ - "hyper 0.14.32", - "pin-project-lite", - "tokio", - "tokio-io-timeout", -] - [[package]] name = "hyper-tls" version = "0.6.0" @@ -2472,7 +1570,7 @@ checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" dependencies = [ "bytes", "http-body-util", - "hyper 1.5.2", + "hyper", "hyper-util", "native-tls", "tokio", @@ -2489,9 +1587,9 @@ dependencies = [ "bytes", "futures-channel", "futures-util", - "http 1.2.0", - "http-body 1.0.1", - "hyper 1.5.2", + "http", + "http-body", + "hyper", "pin-project-lite", "socket2", "tokio", @@ -2667,22 +1765,6 @@ dependencies = [ "icu_properties", ] -[[package]] -name = "ignore" -version = "0.4.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d89fd380afde86567dfba715db065673989d6253f42b88179abd3eae47bda4b" -dependencies = [ - "crossbeam-deque", - "globset", - "log", - "memchr", - "regex-automata 0.4.9", - "same-file", - "walkdir", - "winapi-util", -] - [[package]] name = "impl-codec" version = "0.6.0" @@ -2721,18 +1803,6 @@ dependencies = [ "syn 2.0.96", ] -[[package]] -name = "indent_write" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0cfe9645a18782869361d9c8732246be7b410ad4e919d3609ebabdac00ba12c3" - -[[package]] -name = "indenter" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce23b50ad8242c51a442f3ff322d56b02f08852c77e4c0b4d3fd684abc89c683" - [[package]] name = "indexmap" version = "1.9.3" @@ -2755,20 +1825,6 @@ dependencies = [ "serde", ] -[[package]] -name = "indicatif" -version = "0.17.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbf675b85ed934d3c67b5c5469701eec7db22689d0a2139d856e0925fa28b281" -dependencies = [ - "console", - "number_prefix", - "portable-atomic", - "unicode-width 0.2.0", - "vt100", - "web-time", -] - [[package]] name = "inout" version = "0.1.3" @@ -2778,91 +1834,12 @@ dependencies = [ "generic-array", ] -[[package]] -name = "inquire" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fddf93031af70e75410a2511ec04d49e758ed2f26dad3404a934e0fb45cc12a" -dependencies = [ - "bitflags 2.7.0", - "crossterm", - "dyn-clone", - "fuzzy-matcher", - "fxhash", - "newline-converter", - "once_cell", - "unicode-segmentation", - "unicode-width 0.1.14", -] - -[[package]] -name = "instant" -version = "0.1.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222" -dependencies = [ - "cfg-if 1.0.0", -] - -[[package]] -name = "interactive-clap" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b0f7ba4a74027eb091780d5f44c60ab8d7d7bcb0770af33ef024d4e7d1c8cf3" -dependencies = [ - "interactive-clap-derive", - "strum 0.24.1", - "strum_macros 0.24.3", -] - -[[package]] -name = "interactive-clap-derive" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bdced66b21ea0b5ce63c96e34ebfdadf05cf74594a5659d2bdd5d2c8cf586fa0" -dependencies = [ - "proc-macro-error", - "proc-macro2", - "quote", - "syn 1.0.109", -] - [[package]] name = "ipnet" version = "2.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ddc24109865250148c2e0f3d25d4f0f479571723792d3802153c60922a4fb708" -[[package]] -name = "is-docker" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "928bae27f42bc99b60d9ac7334e3a21d10ad8f1835a4e12ec3ec0464765ed1b3" -dependencies = [ - "once_cell", -] - -[[package]] -name = "is-terminal" -version = "0.4.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "261f68e344040fbd0edea105bef17c66edf46f984ddb1115b775ce31be948f4b" -dependencies = [ - "hermit-abi 0.4.0", - "libc", - "windows-sys 0.52.0", -] - -[[package]] -name = "is-wsl" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "173609498df190136aa7dea1a91db051746d339e18476eed5ca40521f02d7aa5" -dependencies = [ - "is-docker", - "once_cell", -] - [[package]] name = "is_executable" version = "0.1.2" @@ -2872,12 +1849,6 @@ dependencies = [ "winapi", ] -[[package]] -name = "is_terminal_polyfill" -version = "1.70.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" - [[package]] name = "itertools" version = "0.10.5" @@ -2887,15 +1858,6 @@ dependencies = [ "either", ] -[[package]] -name = "itertools" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" -dependencies = [ - "either", -] - [[package]] name = "itoa" version = "1.0.14" @@ -2911,12 +1873,6 @@ dependencies = [ "libc", ] -[[package]] -name = "joinery" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72167d68f5fce3b8655487b8038691a3c9984ee769590f93f2a631f4ad64e4f5" - [[package]] name = "js-sys" version = "0.3.76" @@ -2966,7 +1922,7 @@ dependencies = [ "ecdsa", "elliptic-curve", "once_cell", - "sha2 0.10.8", + "sha2", ] [[package]] @@ -2988,21 +1944,6 @@ dependencies = [ "sha3-asm", ] -[[package]] -name = "keyring" -version = "3.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f8fe839464d4e4b37d756d7e910063696af79a7e877282cb1825e4ec5f10833" -dependencies = [ - "byteorder", - "dbus-secret-service", - "log", - "openssl", - "security-framework 2.11.1", - "security-framework 3.2.0", - "windows-sys 0.59.0", -] - [[package]] name = "lazy_static" version = "1.5.0" @@ -3012,52 +1953,12 @@ dependencies = [ "spin", ] -[[package]] -name = "lazycell" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" - [[package]] name = "libc" version = "0.2.169" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a" -[[package]] -name = "libdbus-sys" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06085512b750d640299b79be4bad3d2fa90a9c00b1fd9e1b46364f66f0485c72" -dependencies = [ - "cc", - "pkg-config", -] - -[[package]] -name = "libgit2-sys" -version = "0.17.0+1.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10472326a8a6477c3c20a64547b0059e4b0d086869eee31e6d7da728a8eb7224" -dependencies = [ - "cc", - "libc", - "libssh2-sys", - "libz-sys", - "openssl-sys", - "pkg-config", -] - -[[package]] -name = "libloading" -version = "0.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc2f4eb4bc735547cfed7c0a4922cbd04a4655978c09b54f1f7b228750664c34" -dependencies = [ - "cfg-if 1.0.0", - "windows-targets 0.52.6", -] - [[package]] name = "libm" version = "0.2.11" @@ -3072,47 +1973,12 @@ checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" dependencies = [ "bitflags 2.7.0", "libc", - "redox_syscall 0.5.8", + "redox_syscall", ] [[package]] -name = "libssh2-sys" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dc8a030b787e2119a731f1951d6a773e2280c660f8ec4b0f5e1505a386e71ee" -dependencies = [ - "cc", - "libc", - "libz-sys", - "openssl-sys", - "pkg-config", - "vcpkg", -] - -[[package]] -name = "libz-sys" -version = "1.1.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df9b68e50e6e0b26f672573834882eb57759f6db9b3be2ea3c35c91188bb4eaa" -dependencies = [ - "cc", - "libc", - "pkg-config", - "vcpkg", -] - -[[package]] -name = "linked-hash-map" -version = "0.5.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" -dependencies = [ - "serde", -] - -[[package]] -name = "linux-raw-sys" -version = "0.4.15" +name = "linux-raw-sys" +version = "0.4.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" @@ -3138,15 +2004,6 @@ version = "0.4.22" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" -[[package]] -name = "lru" -version = "0.7.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e999beba7b6e8345721bd280141ed958096a2e4abdf74f67ff4ce49b4b54e47a" -dependencies = [ - "hashbrown 0.12.3", -] - [[package]] name = "lru" version = "0.12.5" @@ -3156,36 +2013,12 @@ dependencies = [ "hashbrown 0.15.2", ] -[[package]] -name = "matchers" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" -dependencies = [ - "regex-automata 0.1.10", -] - -[[package]] -name = "matchit" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e7465ac9959cc2b1404e8e2367b43684a6d13790fe23056cc8c6c5a6b7bcb94" - [[package]] name = "memchr" version = "2.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" -[[package]] -name = "memmap2" -version = "0.5.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83faa42c0a078c393f6b29d5db232d8be22776a891f8f56e5284faee4a20b327" -dependencies = [ - "libc", -] - [[package]] name = "memory_units" version = "0.4.0" @@ -3198,21 +2031,6 @@ version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" -[[package]] -name = "minimal-lexical" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" - -[[package]] -name = "miniz_oxide" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8a240ddb74feaf34a79a7add65a741f3167852fba007066dcac1ca548d89c08" -dependencies = [ - "adler", -] - [[package]] name = "miniz_oxide" version = "0.8.2" @@ -3222,18 +2040,6 @@ dependencies = [ "adler2", ] -[[package]] -name = "mio" -version = "0.8.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c" -dependencies = [ - "libc", - "log", - "wasi", - "windows-sys 0.48.0", -] - [[package]] name = "mio" version = "1.0.3" @@ -3245,15 +2051,6 @@ dependencies = [ "windows-sys 0.52.0", ] -[[package]] -name = "miow" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "359f76430b20a79f9e20e115b3428614e654f04fab314482fc0fda0ebd3c6044" -dependencies = [ - "windows-sys 0.48.0", -] - [[package]] name = "mock-prover" version = "0.1.0" @@ -3271,15 +2068,6 @@ dependencies = [ "near-sdk", ] -[[package]] -name = "names" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7bddcd3bf5144b6392de80e04c347cd7fab2508f6df16a85fc496ecd5cec39bc" -dependencies = [ - "rand", -] - [[package]] name = "native-tls" version = "0.2.12" @@ -3292,7 +2080,7 @@ dependencies = [ "openssl-probe", "openssl-sys", "schannel", - "security-framework 2.11.1", + "security-framework", "security-framework-sys", "tempfile", ] @@ -3359,133 +2147,30 @@ dependencies = [ "serde", ] -[[package]] -name = "near-async" -version = "0.24.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4e11b7dc58cb8371377925ed7df76a384063a228ecba2a4b29e54214ff9416d" -dependencies = [ - "actix", - "derive_more 0.99.18", - "futures", - "near-async-derive", - "near-o11y", - "near-performance-metrics", - "near-time 0.24.1", - "once_cell", - "serde", - "serde_json", - "time", - "tokio", - "tracing", -] - -[[package]] -name = "near-async-derive" -version = "0.24.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05ba6b56963ed6f85d3fa2ad9baf083cbbf1bc9cabcf4818e775f959c29fe948" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.96", -] - [[package]] name = "near-chain-configs" -version = "0.24.1" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ebf8d7673891f3197daa31ede9e83afed95fe1f7024e4b21527efd73f3c66cf" +checksum = "4c1f312b5e1cdb6d6eb8a753de5798fe70fc2aa048b37d9a08a8d63f5623707d" dependencies = [ "anyhow", "bytesize", "chrono", "derive_more 0.99.18", - "near-async", - "near-config-utils 0.24.1", - "near-crypto 0.24.1", - "near-parameters 0.24.1", - "near-primitives 0.24.1", - "num-rational 0.3.2", - "once_cell", + "near-config-utils", + "near-crypto", + "near-parameters", + "near-primitives", + "near-time", + "num-rational", "serde", "serde_json", - "sha2 0.10.8", - "smart-default 0.6.0", + "sha2", + "smart-default", "time", "tracing", ] -[[package]] -name = "near-cli-rs" -version = "0.14.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7598f2f9b7267848989195a895b590bbc031facfac3286e0d59ac0a14ca3ede0" -dependencies = [ - "bip39", - "bs58 0.5.1", - "bytesize", - "cargo-util", - "clap", - "color-eyre", - "derive_more 0.99.18", - "dirs", - "easy-ext 1.0.2", - "ed25519-dalek", - "futures", - "hex", - "indenter", - "indicatif", - "inquire", - "interactive-clap", - "interactive-clap-derive", - "keyring", - "linked-hash-map", - "near-abi", - "near-crypto 0.24.1", - "near-gas", - "near-jsonrpc-client", - "near-jsonrpc-primitives", - "near-primitives 0.24.1", - "near-socialdb-client", - "near-token", - "open", - "openssl", - "prettytable", - "reqwest", - "rust_decimal", - "serde", - "serde_json", - "shell-words", - "shellexpand", - "slipped10", - "smart-default 0.7.1", - "strum 0.24.1", - "strum_macros 0.24.3", - "textwrap", - "thiserror 1.0.69", - "tokio", - "toml 0.8.19", - "tracing", - "tracing-indicatif", - "tracing-subscriber", - "url", - "wasmparser 0.211.1", - "zstd 0.13.2", -] - -[[package]] -name = "near-config-utils" -version = "0.24.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "270955a98d49ff56e4e1286ab5a2e78aa131585eba92bd3c56a8c39f7f1f58e3" -dependencies = [ - "anyhow", - "json_comments", - "thiserror 1.0.69", - "tracing", -] - [[package]] name = "near-config-utils" version = "0.28.0" @@ -3507,31 +2192,6 @@ dependencies = [ "near-sdk", ] -[[package]] -name = "near-crypto" -version = "0.24.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "969d525d0e1b255f9cfbff071a66406aba2f3a89f413ac6e78e755e171e27dd1" -dependencies = [ - "blake2", - "borsh", - "bs58 0.4.0", - "curve25519-dalek", - "derive_more 0.99.18", - "ed25519-dalek", - "hex", - "near-account-id", - "near-config-utils 0.24.1", - "near-stdx 0.24.1", - "once_cell", - "primitive-types 0.10.1", - "secp256k1", - "serde", - "serde_json", - "subtle", - "thiserror 1.0.69", -] - [[package]] name = "near-crypto" version = "0.28.0" @@ -3546,10 +2206,11 @@ dependencies = [ "ed25519-dalek", "hex", "near-account-id", - "near-config-utils 0.28.0", + "near-config-utils", "near-schema-checker-lib", - "near-stdx 0.28.0", + "near-stdx", "primitive-types 0.10.1", + "rand", "secp256k1", "serde", "serde_json", @@ -3557,22 +2218,13 @@ dependencies = [ "thiserror 2.0.11", ] -[[package]] -name = "near-fmt" -version = "0.24.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "015244b8faaeb1affb40b26018266bb5dd189a27d6c98998466895023fb9af32" -dependencies = [ - "near-primitives-core 0.24.1", -] - [[package]] name = "near-fmt" version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f14f36eee2dcb0ecd8febb9f198e0e1fa768c834db9e1982ad2acfcd04b45acf" dependencies = [ - "near-primitives-core 0.28.0", + "near-primitives-core", ] [[package]] @@ -3582,92 +2234,46 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "180edcc7dc2fac41f93570d0c7b759c1b6d492f6ad093d749d644a40b4310a97" dependencies = [ "borsh", - "interactive-clap", "schemars", "serde", ] [[package]] name = "near-jsonrpc-client" -version = "0.11.0" +version = "0.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e60cee17ae276bfa0d463032231902d866b58ff93f9ff4ff6cd0fdd9efcb9c4" +checksum = "e66a0c4c47f2fbbfa11ea8317fce2288d70d4aa8231e77fd213721ffcc1c334f" dependencies = [ "borsh", "lazy_static", "log", "near-chain-configs", - "near-crypto 0.24.1", + "near-crypto", "near-jsonrpc-primitives", - "near-primitives 0.24.1", + "near-primitives", "reqwest", "serde", "serde_json", - "thiserror 1.0.69", + "thiserror 2.0.11", ] [[package]] name = "near-jsonrpc-primitives" -version = "0.24.1" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2164dcfa3a28b833109242d2e7d57979d983414076ca745014669f5a8171de2e" +checksum = "90f445f809d1f227f0f61f38c14271635c0bc9a28a8f74a803a4fb25292d5ea7" dependencies = [ "arbitrary", "near-chain-configs", - "near-crypto 0.24.1", - "near-primitives 0.24.1", - "near-rpc-error-macro", + "near-crypto", + "near-primitives", + "near-schema-checker-lib", "serde", "serde_json", - "thiserror 1.0.69", + "thiserror 2.0.11", "time", ] -[[package]] -name = "near-o11y" -version = "0.24.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8cb83e6d4cbdef654bc62e1ca27647419deba7787f62f33f34119ab52f347edf" -dependencies = [ - "actix", - "base64 0.21.7", - "clap", - "near-crypto 0.24.1", - "near-primitives-core 0.24.1", - "once_cell", - "opentelemetry", - "opentelemetry-otlp", - "opentelemetry-semantic-conventions", - "opentelemetry_sdk", - "prometheus", - "serde", - "serde_json", - "thiserror 1.0.69", - "tokio", - "tracing", - "tracing-appender", - "tracing-opentelemetry", - "tracing-subscriber", -] - -[[package]] -name = "near-parameters" -version = "0.24.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57794a59e931eeace65eda1560453e4fe1ff1583b62fa906d0cb11731bc3a1d2" -dependencies = [ - "borsh", - "enum-map", - "near-account-id", - "near-primitives-core 0.24.1", - "num-rational 0.3.2", - "serde", - "serde_repr", - "serde_yaml", - "strum 0.24.1", - "thiserror 1.0.69", -] - [[package]] name = "near-parameters" version = "0.28.0" @@ -3677,9 +2283,9 @@ dependencies = [ "borsh", "enum-map", "near-account-id", - "near-primitives-core 0.28.0", + "near-primitives-core", "near-schema-checker-lib", - "num-rational 0.3.2", + "num-rational", "serde", "serde_repr", "serde_yaml", @@ -3687,23 +2293,6 @@ dependencies = [ "thiserror 2.0.11", ] -[[package]] -name = "near-performance-metrics" -version = "0.24.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42f62b33bc0d59782d3cd1af9a7d023393b094f03afb3e83b8d02eee412b8014" -dependencies = [ - "actix", - "bitflags 1.3.2", - "bytes", - "futures", - "libc", - "once_cell", - "tokio", - "tokio-util", - "tracing", -] - [[package]] name = "near-plugins" version = "0.2.0" @@ -3727,49 +2316,6 @@ dependencies = [ "syn 1.0.109", ] -[[package]] -name = "near-primitives" -version = "0.24.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97175c346de2dcad949c4a5351b65377d54e6edfc435373bf09d39da9f8fce40" -dependencies = [ - "arbitrary", - "base64 0.21.7", - "borsh", - "bytes", - "bytesize", - "cfg-if 1.0.0", - "chrono", - "derive_more 0.99.18", - "easy-ext 0.2.9", - "enum-map", - "hex", - "itertools 0.10.5", - "near-crypto 0.24.1", - "near-fmt 0.24.1", - "near-parameters 0.24.1", - "near-primitives-core 0.24.1", - "near-rpc-error-macro", - "near-stdx 0.24.1", - "near-time 0.24.1", - "num-rational 0.3.2", - "once_cell", - "ordered-float", - "primitive-types 0.10.1", - "rand", - "rand_chacha", - "reed-solomon-erasure", - "serde", - "serde_json", - "serde_with", - "sha3", - "smart-default 0.6.0", - "strum 0.24.1", - "thiserror 1.0.69", - "tracing", - "zstd 0.13.2", -] - [[package]] name = "near-primitives" version = "0.28.0" @@ -3785,51 +2331,33 @@ dependencies = [ "cfg-if 1.0.0", "chrono", "derive_more 0.99.18", - "easy-ext 0.2.9", + "easy-ext", "enum-map", "hex", - "itertools 0.10.5", - "near-crypto 0.28.0", - "near-fmt 0.28.0", - "near-parameters 0.28.0", - "near-primitives-core 0.28.0", + "itertools", + "near-crypto", + "near-fmt", + "near-parameters", + "near-primitives-core", "near-schema-checker-lib", - "near-stdx 0.28.0", - "near-time 0.28.0", - "num-rational 0.3.2", + "near-stdx", + "near-time", + "num-rational", "ordered-float", "primitive-types 0.10.1", + "rand", + "rand_chacha", "serde", "serde_json", "serde_with", "sha3", - "smart-default 0.6.0", + "smart-default", "strum 0.24.1", "thiserror 2.0.11", "tracing", "zstd 0.13.2", ] -[[package]] -name = "near-primitives-core" -version = "0.24.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4333e0cb2e98c89b434d700bac701a02b1df91a3b29fa1ab6d879727b22cd82" -dependencies = [ - "arbitrary", - "base64 0.21.7", - "borsh", - "bs58 0.4.0", - "derive_more 0.99.18", - "enum-map", - "near-account-id", - "num-rational 0.3.2", - "serde", - "serde_repr", - "sha2 0.10.8", - "thiserror 1.0.69", -] - [[package]] name = "near-primitives-core" version = "0.28.0" @@ -3844,40 +2372,18 @@ dependencies = [ "enum-map", "near-account-id", "near-schema-checker-lib", - "num-rational 0.3.2", + "num-rational", "serde", "serde_repr", - "sha2 0.10.8", + "sha2", "thiserror 2.0.11", ] -[[package]] -name = "near-rpc-error-core" -version = "0.24.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "072735e35cccb9cde9827793bf08bd9192c23167cf840c287bf65afc968c31e8" -dependencies = [ - "quote", - "serde", - "syn 2.0.96", -] - -[[package]] -name = "near-rpc-error-macro" -version = "0.24.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "caa5a967de9f1480140de15620926b4f5292384e8a3672683e73478594107fa0" -dependencies = [ - "near-rpc-error-core", - "serde", - "syn 2.0.96", -] - [[package]] name = "near-sandbox-utils" -version = "0.10.0" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "000a28599729f4d584eff6a7e8c5919d7938dceeb2752ea9cdaf408444309a2a" +checksum = "51b918c05ec1ac6bf36f5f78e286befa987b17773b9fe4e80958d6350a494c98" dependencies = [ "anyhow", "binary-install", @@ -3918,11 +2424,11 @@ dependencies = [ "borsh", "bs58 0.5.1", "near-account-id", - "near-crypto 0.28.0", + "near-crypto", "near-gas", - "near-parameters 0.28.0", - "near-primitives 0.28.0", - "near-primitives-core 0.28.0", + "near-parameters", + "near-primitives", + "near-primitives-core", "near-sdk-macros", "near-sys", "near-token", @@ -3950,29 +2456,6 @@ dependencies = [ "syn 2.0.96", ] -[[package]] -name = "near-socialdb-client" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfb11a7c0fdd8b22ec806cf1703a0aa65550a7d0dc2237125b7e8436a5e9fcd2" -dependencies = [ - "color-eyre", - "near-crypto 0.24.1", - "near-jsonrpc-client", - "near-jsonrpc-primitives", - "near-primitives 0.24.1", - "near-token", - "serde", - "serde_json", - "url", -] - -[[package]] -name = "near-stdx" -version = "0.24.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac1c4937647390c254e530ba8d3e296c192e67ea0364e3d7d4aef64563ffcf6a" - [[package]] name = "near-stdx" version = "0.28.0" @@ -3985,18 +2468,6 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dbf4ca5c805cb78700e10e43484902d8da05f25788db277999d209568aaf4c8e" -[[package]] -name = "near-time" -version = "0.24.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d66de5e1e2b748aae827bb5dd80c715037ba7cf074f68ad5241b55bf2aaea793" -dependencies = [ - "once_cell", - "serde", - "time", - "tokio", -] - [[package]] name = "near-time" version = "0.28.0" @@ -4014,7 +2485,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cd3e60aa26a74dc514b1b6408fdd06cefe2eb0ff029020956c1c6517594048fd" dependencies = [ "borsh", - "interactive-clap", "serde", ] @@ -4029,19 +2499,19 @@ dependencies = [ "bytesize", "ed25519-dalek", "enum-map", - "lru 0.12.5", - "near-crypto 0.28.0", - "near-parameters 0.28.0", - "near-primitives-core 0.28.0", + "lru", + "near-crypto", + "near-parameters", + "near-primitives-core", "near-schema-checker-lib", - "near-stdx 0.28.0", - "num-rational 0.3.2", + "near-stdx", + "num-rational", "rayon", "ripemd", "rustix", "serde", "serde_repr", - "sha2 0.10.8", + "sha2", "sha3", "strum 0.24.1", "tempfile", @@ -4052,139 +2522,64 @@ dependencies = [ [[package]] name = "near-workspaces" -version = "0.12.0" +version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51b375600c271c3a2e4908bc646bcdb58409f1648dcb345a5d9cb1c69ea1c5eb" +checksum = "7e5804591268264c4e308cc84a54f4c7416da6ad34f8ea5c5a4b1842bc5462de" dependencies = [ "async-trait", "base64 0.22.1", "bs58 0.5.1", - "cargo-near", "chrono", "fs2", "json-patch", "libc", "near-abi-client", "near-account-id", - "near-crypto 0.24.1", + "near-crypto", "near-gas", "near-jsonrpc-client", "near-jsonrpc-primitives", - "near-primitives 0.24.1", + "near-primitives", "near-sandbox-utils", "near-token", "rand", "reqwest", "serde", "serde_json", - "sha2 0.10.8", + "sha2", "tempfile", "thiserror 1.0.69", "tokio", - "tokio-retry", - "tracing", - "url", -] - -[[package]] -name = "near_schemafy_core" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42d7a1f809a319578773329389529dbf8c8f0abfbb05a429b37f437105f7caf6" -dependencies = [ - "serde", - "serde_json", -] - -[[package]] -name = "near_schemafy_lib" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c39ccae55df51adaa1a4e567b7a79ab4380826a695121cebf41f518076d8c3dd" -dependencies = [ - "Inflector", - "near_schemafy_core", - "proc-macro2", - "quote", - "serde", - "serde_derive", - "serde_json", - "syn 1.0.109", - "uriparse", -] - -[[package]] -name = "new_debug_unreachable" -version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086" - -[[package]] -name = "newline-converter" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47b6b097ecb1cbfed438542d16e84fd7ad9b0c76c8a65b7f9039212a3d14dc7f" -dependencies = [ - "unicode-segmentation", -] - -[[package]] -name = "nix" -version = "0.29.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46" -dependencies = [ - "bitflags 2.7.0", - "cfg-if 1.0.0", - "cfg_aliases", - "libc", -] - -[[package]] -name = "nom" -version = "7.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" -dependencies = [ - "memchr", - "minimal-lexical", -] - -[[package]] -name = "nom-supreme" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aadc66631948f6b65da03be4c4cd8bd104d481697ecbb9bbd65719b1ec60bc9f" -dependencies = [ - "brownstone", - "indent_write", - "joinery", - "memchr", - "nom", + "tokio-retry", + "tracing", + "url", ] [[package]] -name = "nu-ansi-term" -version = "0.46.0" +name = "near_schemafy_core" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" +checksum = "42d7a1f809a319578773329389529dbf8c8f0abfbb05a429b37f437105f7caf6" dependencies = [ - "overload", - "winapi", + "serde", + "serde_json", ] [[package]] -name = "num" -version = "0.4.3" +name = "near_schemafy_lib" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35bd024e8b2ff75562e5f34e7f4905839deb4b22955ef5e73d2fea1b9813cb23" +checksum = "c39ccae55df51adaa1a4e567b7a79ab4380826a695121cebf41f518076d8c3dd" dependencies = [ - "num-bigint 0.4.6", - "num-complex", - "num-integer", - "num-iter", - "num-rational 0.4.2", - "num-traits", + "Inflector", + "near_schemafy_core", + "proc-macro2", + "quote", + "serde", + "serde_derive", + "serde_json", + "syn 1.0.109", + "uriparse", ] [[package]] @@ -4208,15 +2603,6 @@ dependencies = [ "num-traits", ] -[[package]] -name = "num-complex" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73f88a1307638156682bada9d7604135552957b7818057dcef22705b4d509495" -dependencies = [ - "num-traits", -] - [[package]] name = "num-conv" version = "0.1.0" @@ -4232,17 +2618,6 @@ dependencies = [ "num-traits", ] -[[package]] -name = "num-iter" -version = "0.1.45" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1429034a0490724d0075ebb2bc9e875d6503c3cf69e235a8941aa757d83ef5bf" -dependencies = [ - "autocfg", - "num-integer", - "num-traits", -] - [[package]] name = "num-rational" version = "0.3.2" @@ -4256,17 +2631,6 @@ dependencies = [ "serde", ] -[[package]] -name = "num-rational" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f83d14da390562dca69fc84082e73e548e1ad308d24accdedd2720017cb37824" -dependencies = [ - "num-bigint 0.4.6", - "num-integer", - "num-traits", -] - [[package]] name = "num-traits" version = "0.2.19" @@ -4283,21 +2647,15 @@ version = "1.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" dependencies = [ - "hermit-abi 0.3.9", + "hermit-abi", "libc", ] -[[package]] -name = "number_prefix" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3" - [[package]] name = "object" -version = "0.32.2" +version = "0.36.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441" +checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87" dependencies = [ "memchr", ] @@ -4371,23 +2729,6 @@ version = "1.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775" -[[package]] -name = "opaque-debug" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" - -[[package]] -name = "open" -version = "5.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2483562e62ea94312f3576a7aca397306df7990b8d89033e18766744377ef95" -dependencies = [ - "is-wsl", - "libc", - "pathdiff", -] - [[package]] name = "openssl" version = "0.10.68" @@ -4420,15 +2761,6 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" -[[package]] -name = "openssl-src" -version = "300.4.1+3.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "faa4eac4138c62414b5622d1b31c5c304f34b406b013c079c2bbc652fdd6678c" -dependencies = [ - "cc", -] - [[package]] name = "openssl-sys" version = "0.9.104" @@ -4437,91 +2769,10 @@ checksum = "45abf306cbf99debc8195b66b7346498d7b10c210de50418b5ccd7ceba08c741" dependencies = [ "cc", "libc", - "openssl-src", "pkg-config", "vcpkg", ] -[[package]] -name = "opentelemetry" -version = "0.22.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "900d57987be3f2aeb70d385fff9b27fb74c5723cc9a52d904d4f9c807a0667bf" -dependencies = [ - "futures-core", - "futures-sink", - "js-sys", - "once_cell", - "pin-project-lite", - "thiserror 1.0.69", - "urlencoding", -] - -[[package]] -name = "opentelemetry-otlp" -version = "0.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a016b8d9495c639af2145ac22387dcb88e44118e45320d9238fbf4e7889abcb" -dependencies = [ - "async-trait", - "futures-core", - "http 0.2.12", - "opentelemetry", - "opentelemetry-proto", - "opentelemetry-semantic-conventions", - "opentelemetry_sdk", - "prost", - "thiserror 1.0.69", - "tokio", - "tonic", -] - -[[package]] -name = "opentelemetry-proto" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a8fddc9b68f5b80dae9d6f510b88e02396f006ad48cac349411fbecc80caae4" -dependencies = [ - "opentelemetry", - "opentelemetry_sdk", - "prost", - "tonic", -] - -[[package]] -name = "opentelemetry-semantic-conventions" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9ab5bd6c42fb9349dcf28af2ba9a0667f697f9bdcca045d39f2cec5543e2910" - -[[package]] -name = "opentelemetry_sdk" -version = "0.22.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e90c7113be649e31e9a0f8b5ee24ed7a16923b322c3c5ab6367469c049d6b7e" -dependencies = [ - "async-trait", - "crossbeam-channel", - "futures-channel", - "futures-executor", - "futures-util", - "glob", - "once_cell", - "opentelemetry", - "ordered-float", - "percent-encoding", - "rand", - "thiserror 1.0.69", - "tokio", - "tokio-stream", -] - -[[package]] -name = "option-ext" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" - [[package]] name = "ordered-float" version = "4.6.0" @@ -4534,18 +2785,6 @@ dependencies = [ "serde", ] -[[package]] -name = "overload" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" - -[[package]] -name = "owo-colors" -version = "3.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1b04fb49957986fdce4d6ee7a65027d55d4b6d2265e5848bbb507b58ccfdb6f" - [[package]] name = "parity-scale-codec" version = "3.6.12" @@ -4572,17 +2811,6 @@ dependencies = [ "syn 1.0.109", ] -[[package]] -name = "parking_lot" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99" -dependencies = [ - "instant", - "lock_api", - "parking_lot_core 0.8.6", -] - [[package]] name = "parking_lot" version = "0.12.3" @@ -4590,21 +2818,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" dependencies = [ "lock_api", - "parking_lot_core 0.9.10", -] - -[[package]] -name = "parking_lot_core" -version = "0.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60a2cfe6f0ad2bfc16aefa463b497d5c7a5ecd44a23efa72aa342d90177356dc" -dependencies = [ - "cfg-if 1.0.0", - "instant", - "libc", - "redox_syscall 0.2.16", - "smallvec", - "winapi", + "parking_lot_core", ] [[package]] @@ -4615,9 +2829,9 @@ checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" dependencies = [ "cfg-if 1.0.0", "libc", - "redox_syscall 0.5.8", + "redox_syscall", "smallvec", - "windows-targets 0.52.6", + "windows-targets", ] [[package]] @@ -4637,15 +2851,6 @@ version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" -[[package]] -name = "pathdiff" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df94ce210e5bc13cb6651479fa48d14f601d9858cfe0467f43ae157023b938d3" -dependencies = [ - "camino", -] - [[package]] name = "pbkdf2" version = "0.11.0" @@ -4653,20 +2858,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "83a0692ec44e4cf1ef28ca317f14f8f07da2d95ec3fa01f86e4467b725e60917" dependencies = [ "digest 0.10.7", - "hmac 0.12.1", + "hmac", "password-hash", - "sha2 0.10.8", -] - -[[package]] -name = "pdb" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13f4d162ecaaa1467de5afbe62d597757b674b51da8bb4e587430c5fdb2af7aa" -dependencies = [ - "fallible-iterator", - "scroll 0.10.2", - "uuid 0.8.2", + "sha2", ] [[package]] @@ -4686,15 +2880,6 @@ dependencies = [ "ucd-trie", ] -[[package]] -name = "phf_shared" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096" -dependencies = [ - "siphasher", -] - [[package]] name = "pin-project" version = "1.1.8" @@ -4743,18 +2928,6 @@ version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2" -[[package]] -name = "plain" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4596b6d070b27117e987119b4dac604f3c58cfb0b191112e24771b2faeac1a6" - -[[package]] -name = "portable-atomic" -version = "1.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "280dc24453071f1b63954171985a0b0d30058d287960968b9b2aca264c8d4ee6" - [[package]] name = "powerfmt" version = "0.2.0" @@ -4770,12 +2943,6 @@ dependencies = [ "zerocopy", ] -[[package]] -name = "precomputed-hash" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" - [[package]] name = "prettyplease" version = "0.1.25" @@ -4786,20 +2953,6 @@ dependencies = [ "syn 1.0.109", ] -[[package]] -name = "prettytable" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46480520d1b77c9a3482d39939fcf96831537a250ec62d4fd8fbdf8e0302e781" -dependencies = [ - "csv", - "encode_unicode", - "is-terminal", - "lazy_static", - "term", - "unicode-width 0.1.14", -] - [[package]] name = "primitive-types" version = "0.10.1" @@ -4839,7 +2992,7 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1d6ea3c4595b96363c13943497db34af4460fb474a95c43f4446ad341b8c9785" dependencies = [ - "toml 0.5.11", + "toml", ] [[package]] @@ -4851,30 +3004,6 @@ dependencies = [ "toml_edit", ] -[[package]] -name = "proc-macro-error" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" -dependencies = [ - "proc-macro-error-attr", - "proc-macro2", - "quote", - "syn 1.0.109", - "version_check", -] - -[[package]] -name = "proc-macro-error-attr" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" -dependencies = [ - "proc-macro2", - "quote", - "version_check", -] - [[package]] name = "proc-macro-error-attr2" version = "2.0.0" @@ -4906,21 +3035,6 @@ dependencies = [ "unicode-ident", ] -[[package]] -name = "prometheus" -version = "0.13.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d33c28a30771f7f96db69893f78b857f7450d7e0237e9c8fc6427a81bae7ed1" -dependencies = [ - "cfg-if 1.0.0", - "fnv", - "lazy_static", - "memchr", - "parking_lot 0.12.3", - "protobuf", - "thiserror 1.0.69", -] - [[package]] name = "proptest" version = "1.5.0" @@ -4935,61 +3049,12 @@ dependencies = [ "rand", "rand_chacha", "rand_xorshift", - "regex-syntax 0.8.5", + "regex-syntax", "rusty-fork", "tempfile", "unarray", ] -[[package]] -name = "prost" -version = "0.12.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "deb1435c188b76130da55f17a466d252ff7b1418b2ad3e037d127b94e3411f29" -dependencies = [ - "bytes", - "prost-derive", -] - -[[package]] -name = "prost-derive" -version = "0.12.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81bddcdb20abf9501610992b6759a4c888aef7d1a7247ef75e2404275ac24af1" -dependencies = [ - "anyhow", - "itertools 0.12.1", - "proc-macro2", - "quote", - "syn 2.0.96", -] - -[[package]] -name = "protobuf" -version = "2.28.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "106dd99e98437432fed6519dedecfade6a06a73bb7b2a1e019fdd2bee5778d94" - -[[package]] -name = "ptr_meta" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0738ccf7ea06b608c10564b31debd4f5bc5e197fc8bfe088f68ae5ce81e7a4f1" -dependencies = [ - "ptr_meta_derive", -] - -[[package]] -name = "ptr_meta_derive" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16b845dbfca988fa33db069c0e230574d15a3088f147a87b64c7589eb662c9ac" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - [[package]] name = "quick-error" version = "1.2.3" @@ -5064,21 +3129,12 @@ dependencies = [ [[package]] name = "rayon-core" -version = "1.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" -dependencies = [ - "crossbeam-deque", - "crossbeam-utils", -] - -[[package]] -name = "redox_syscall" -version = "0.2.16" +version = "1.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" +checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" dependencies = [ - "bitflags 1.3.2", + "crossbeam-deque", + "crossbeam-utils", ] [[package]] @@ -5101,19 +3157,6 @@ dependencies = [ "thiserror 1.0.69", ] -[[package]] -name = "reed-solomon-erasure" -version = "6.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7263373d500d4d4f505d43a2a662d475a894aa94503a1ee28e9188b5f3960d4f" -dependencies = [ - "libm", - "lru 0.7.8", - "parking_lot 0.11.2", - "smallvec", - "spin", -] - [[package]] name = "regex" version = "1.11.1" @@ -5122,17 +3165,8 @@ checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" dependencies = [ "aho-corasick", "memchr", - "regex-automata 0.4.9", - "regex-syntax 0.8.5", -] - -[[package]] -name = "regex-automata" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" -dependencies = [ - "regex-syntax 0.6.29", + "regex-automata", + "regex-syntax", ] [[package]] @@ -5143,15 +3177,9 @@ checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" dependencies = [ "aho-corasick", "memchr", - "regex-syntax 0.8.5", + "regex-syntax", ] -[[package]] -name = "regex-syntax" -version = "0.6.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" - [[package]] name = "regex-syntax" version = "0.8.5" @@ -5164,15 +3192,6 @@ version = "1.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ba39f3699c378cd8970968dcbff9c43159ea4cfbd88d43c00b22f2ef10a435d2" -[[package]] -name = "rend" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71fe3824f5629716b1589be05dacd749f6aa084c87e00e016714a8cdfccc997c" -dependencies = [ - "bytecheck", -] - [[package]] name = "reqwest" version = "0.12.12" @@ -5182,14 +3201,13 @@ dependencies = [ "base64 0.22.1", "bytes", "encoding_rs", - "futures-channel", "futures-core", "futures-util", - "h2 0.4.7", - "http 1.2.0", - "http-body 1.0.1", + "h2", + "http", + "http-body", "http-body-util", - "hyper 1.5.2", + "hyper", "hyper-rustls", "hyper-tls", "hyper-util", @@ -5205,11 +3223,11 @@ dependencies = [ "serde", "serde_json", "serde_urlencoded", - "sync_wrapper 1.0.2", + "sync_wrapper", "system-configuration", "tokio", "tokio-native-tls", - "tower 0.5.2", + "tower", "tower-service", "url", "wasm-bindgen", @@ -5224,7 +3242,7 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" dependencies = [ - "hmac 0.12.1", + "hmac", "subtle", ] @@ -5252,35 +3270,6 @@ dependencies = [ "digest 0.10.7", ] -[[package]] -name = "rkyv" -version = "0.7.45" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9008cd6385b9e161d8229e1f6549dd23c3d022f132a2ea37ac3a10ac4935779b" -dependencies = [ - "bitvec", - "bytecheck", - "bytes", - "hashbrown 0.12.3", - "ptr_meta", - "rend", - "rkyv_derive", - "seahash", - "tinyvec", - "uuid 1.11.1", -] - -[[package]] -name = "rkyv_derive" -version = "0.7.45" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "503d1d27590a2b0a3a4ca4c94755aa2875657196ecbf401a42eff41d7de532c0" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - [[package]] name = "rlp" version = "0.5.2" @@ -5303,24 +3292,25 @@ dependencies = [ [[package]] name = "rstest" -version = "0.18.2" +version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97eeab2f3c0a199bc4be135c36c924b6590b88c377d416494288c14f2db30199" +checksum = "03e905296805ab93e13c1ec3a03f4b6c4f35e9498a3d5fa96dc626d22c03cd89" dependencies = [ - "futures", "futures-timer", + "futures-util", "rstest_macros", "rustc_version 0.4.1", ] [[package]] name = "rstest_macros" -version = "0.18.2" +version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d428f8247852f894ee1be110b375111b586d4fa431f6c46e64ba5a0dcccbe605" +checksum = "ef0053bbffce09062bee4bcc499b0fbe7a57b879f1efe088d6d8d4c7adcdef9b" dependencies = [ "cfg-if 1.0.0", "glob", + "proc-macro-crate 3.2.0", "proc-macro2", "quote", "regex", @@ -5362,22 +3352,6 @@ version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "48fd7bd8a6377e15ad9d42a8ec25371b94ddc67abe7c8b9127bec79bebaaae18" -[[package]] -name = "rust_decimal" -version = "1.36.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b082d80e3e3cc52b2ed634388d436fe1f4de6af5786cc2de9ba9737527bdf555" -dependencies = [ - "arrayvec", - "borsh", - "bytes", - "num-traits", - "rand", - "rkyv", - "serde", - "serde_json", -] - [[package]] name = "rustc-demangle" version = "0.1.24" @@ -5492,15 +3466,6 @@ version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" -[[package]] -name = "same-file" -version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" -dependencies = [ - "winapi-util", -] - [[package]] name = "schannel" version = "0.1.27" @@ -5540,38 +3505,6 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" -[[package]] -name = "scroll" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fda28d4b4830b807a8b43f7b0e6b5df875311b3e7621d84577188c175b6ec1ec" - -[[package]] -name = "scroll" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04c565b551bafbef4157586fa379538366e4385d42082f255bfd96e4fe8519da" -dependencies = [ - "scroll_derive", -] - -[[package]] -name = "scroll_derive" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1db149f81d46d2deba7cd3c50772474707729550221e69588478ebf9ada425ae" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.96", -] - -[[package]] -name = "seahash" -version = "4.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c107b6f4780854c8b126e228ea8869f4d7b71260f962fefb57b996b8959ba6b" - [[package]] name = "sec1" version = "0.7.3" @@ -5612,20 +3545,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" dependencies = [ "bitflags 2.7.0", - "core-foundation 0.9.4", - "core-foundation-sys", - "libc", - "security-framework-sys", -] - -[[package]] -name = "security-framework" -version = "3.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "271720403f46ca04f7ba6f55d438f8bd878d6b8ca0a1046e8228c4145bcbb316" -dependencies = [ - "bitflags 2.7.0", - "core-foundation 0.10.0", + "core-foundation", "core-foundation-sys", "libc", "security-framework-sys", @@ -5655,9 +3575,6 @@ name = "semver" version = "1.0.24" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3cb6eb87a131f756572d7fb904f6e7b68633f09cca868c5df1c4b8d1a694bbba" -dependencies = [ - "serde", -] [[package]] name = "semver-parser" @@ -5722,15 +3639,6 @@ dependencies = [ "syn 2.0.96", ] -[[package]] -name = "serde_spanned" -version = "0.6.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87607cb1398ed59d48732e575a4c28a7a8ebf2454b964fe3f224f2afc07909e1" -dependencies = [ - "serde", -] - [[package]] name = "serde_urlencoded" version = "0.7.1" @@ -5797,19 +3705,6 @@ dependencies = [ "digest 0.10.7", ] -[[package]] -name = "sha2" -version = "0.9.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800" -dependencies = [ - "block-buffer 0.9.0", - "cfg-if 1.0.0", - "cpufeatures", - "digest 0.9.0", - "opaque-debug", -] - [[package]] name = "sha2" version = "0.10.8" @@ -5841,63 +3736,12 @@ dependencies = [ "cfg-if 1.0.0", ] -[[package]] -name = "sharded-slab" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" -dependencies = [ - "lazy_static", -] - -[[package]] -name = "shell-escape" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45bb67a18fa91266cc7807181f62f9178a6873bfad7dc788c42e6430db40184f" - -[[package]] -name = "shell-words" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24188a676b6ae68c3b2cb3a01be17fbf7240ce009799bb56d5b1409051e78fde" - -[[package]] -name = "shellexpand" -version = "3.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da03fa3b94cc19e3ebfc88c4229c49d8f08cdbd1228870a45f0ffdf84988e14b" -dependencies = [ - "dirs", -] - [[package]] name = "shlex" version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" -[[package]] -name = "signal-hook" -version = "0.3.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8621587d4798caf8eb44879d42e56b9a93ea5dcd315a6487c357130095b62801" -dependencies = [ - "libc", - "signal-hook-registry", -] - -[[package]] -name = "signal-hook-mio" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34db1a06d485c9142248b7a054f034b349b212551f3dfd19c94d45a754a217cd" -dependencies = [ - "libc", - "mio 0.8.11", - "signal-hook", -] - [[package]] name = "signal-hook-registry" version = "1.4.2" @@ -5917,12 +3761,6 @@ dependencies = [ "rand_core", ] -[[package]] -name = "simdutf8" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e" - [[package]] name = "siphasher" version = "0.3.11" @@ -5938,17 +3776,6 @@ dependencies = [ "autocfg", ] -[[package]] -name = "slipped10" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a45443e66aa5d96db5e02d17db056e1ca970232a4fe73e1f9bc1816d68f4e98" -dependencies = [ - "ed25519-dalek", - "hmac 0.9.0", - "sha2 0.9.9", -] - [[package]] name = "smallvec" version = "1.13.2" @@ -5966,23 +3793,6 @@ dependencies = [ "syn 1.0.109", ] -[[package]] -name = "smart-default" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0eb01866308440fc64d6c44d9e86c5cc17adfe33c4d6eed55da9145044d0ffc1" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.96", -] - -[[package]] -name = "smawk" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7c388c1b5e93756d0c740965c41e8822f866621d41acbdf6336a6a168f8840c" - [[package]] name = "socket2" version = "0.5.8" @@ -6021,20 +3831,6 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" -[[package]] -name = "string_cache" -version = "0.8.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f91138e76242f575eb1d3b38b4f1362f10d3a43f47d182a5b359af488a02293b" -dependencies = [ - "new_debug_unreachable", - "once_cell", - "parking_lot 0.12.3", - "phf_shared", - "precomputed-hash", - "serde", -] - [[package]] name = "strsim" version = "0.10.0" @@ -6094,48 +3890,6 @@ version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" -[[package]] -name = "symbolic-common" -version = "8.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f551f902d5642e58039aee6a9021a61037926af96e071816361644983966f540" -dependencies = [ - "debugid", - "memmap2", - "stable_deref_trait", - "uuid 0.8.2", -] - -[[package]] -name = "symbolic-debuginfo" -version = "8.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1165dabf9fc1d6bb6819c2c0e27c8dd0e3068d2c53cf186d319788e96517f0d6" -dependencies = [ - "bitvec", - "dmsort", - "elementtree", - "fallible-iterator", - "flate2", - "gimli 0.26.2", - "goblin", - "lazy_static", - "lazycell", - "nom", - "nom-supreme", - "parking_lot 0.12.3", - "pdb", - "regex", - "scroll 0.11.0", - "serde", - "serde_json", - "smallvec", - "symbolic-common", - "thiserror 1.0.69", - "wasmparser 0.83.0", - "zip 0.5.13", -] - [[package]] name = "syn" version = "1.0.109" @@ -6170,12 +3924,6 @@ dependencies = [ "syn 2.0.96", ] -[[package]] -name = "sync_wrapper" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" - [[package]] name = "sync_wrapper" version = "1.0.2" @@ -6203,7 +3951,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" dependencies = [ "bitflags 2.7.0", - "core-foundation 0.9.4", + "core-foundation", "system-configuration-sys", ] @@ -6248,28 +3996,6 @@ dependencies = [ "windows-sys 0.59.0", ] -[[package]] -name = "term" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c59df8ac95d96ff9bede18eb7300b0fda5e5d8d90960e76f8e14ae765eedbf1f" -dependencies = [ - "dirs-next", - "rustversion", - "winapi", -] - -[[package]] -name = "textwrap" -version = "0.16.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23d434d3f8967a09480fb04132ebe0a3e088c173e6d0ee7897abbdf4eab0f8b9" -dependencies = [ - "smawk", - "unicode-linebreak", - "unicode-width 0.1.14", -] - [[package]] name = "thiserror" version = "1.0.69" @@ -6310,16 +4036,6 @@ dependencies = [ "syn 2.0.96", ] -[[package]] -name = "thread_local" -version = "1.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" -dependencies = [ - "cfg-if 1.0.0", - "once_cell", -] - [[package]] name = "threadpool" version = "1.8.1" @@ -6394,15 +4110,6 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" -[[package]] -name = "tmp_env" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a56eb9e5a28c3c4f0a6aa8ea70a8ad2d6c53e4bf364571ce78f57945b6766843" -dependencies = [ - "rand", -] - [[package]] name = "token-deployer" version = "0.1.0" @@ -6426,8 +4133,8 @@ dependencies = [ "backtrace", "bytes", "libc", - "mio 1.0.3", - "parking_lot 0.12.3", + "mio", + "parking_lot", "pin-project-lite", "signal-hook-registry", "socket2", @@ -6435,16 +4142,6 @@ dependencies = [ "windows-sys 0.52.0", ] -[[package]] -name = "tokio-io-timeout" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30b74022ada614a1b4834de765f9bb43877f910cc8ce4be40e89042c9223a8bf" -dependencies = [ - "pin-project-lite", - "tokio", -] - [[package]] name = "tokio-macros" version = "2.5.0" @@ -6479,22 +4176,11 @@ dependencies = [ [[package]] name = "tokio-rustls" -version = "0.26.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f6d0975eaace0cf0fcadee4e4aaa5da15b5c079146f2cffb67c113be122bf37" -dependencies = [ - "rustls", - "tokio", -] - -[[package]] -name = "tokio-stream" -version = "0.1.17" +version = "0.26.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eca58d7bba4a75707817a2c44174253f9236b2d5fbd055602e9d5c07c139a047" +checksum = "5f6d0975eaace0cf0fcadee4e4aaa5da15b5c079146f2cffb67c113be122bf37" dependencies = [ - "futures-core", - "pin-project-lite", + "rustls", "tokio", ] @@ -6520,26 +4206,11 @@ dependencies = [ "serde", ] -[[package]] -name = "toml" -version = "0.8.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1ed1f98e3fdc28d6d910e6737ae6ab1a93bf1985935a1193e68f93eeb68d24e" -dependencies = [ - "serde", - "serde_spanned", - "toml_datetime", - "toml_edit", -] - [[package]] name = "toml_datetime" version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" -dependencies = [ - "serde", -] [[package]] name = "toml_edit" @@ -6548,59 +4219,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4ae48d6208a266e853d946088ed816055e556cc6028c5e8e2b84d9fa5dd7c7f5" dependencies = [ "indexmap 2.7.0", - "serde", - "serde_spanned", "toml_datetime", "winnow", ] -[[package]] -name = "tonic" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76c4eb7a4e9ef9d4763600161f12f5070b92a578e1b634db88a6887844c91a13" -dependencies = [ - "async-stream", - "async-trait", - "axum", - "base64 0.21.7", - "bytes", - "h2 0.3.26", - "http 0.2.12", - "http-body 0.4.6", - "hyper 0.14.32", - "hyper-timeout", - "percent-encoding", - "pin-project", - "prost", - "tokio", - "tokio-stream", - "tower 0.4.13", - "tower-layer", - "tower-service", - "tracing", -] - -[[package]] -name = "tower" -version = "0.4.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" -dependencies = [ - "futures-core", - "futures-util", - "indexmap 1.9.3", - "pin-project", - "pin-project-lite", - "rand", - "slab", - "tokio", - "tokio-util", - "tower-layer", - "tower-service", - "tracing", -] - [[package]] name = "tower" version = "0.5.2" @@ -6610,7 +4232,7 @@ dependencies = [ "futures-core", "futures-util", "pin-project-lite", - "sync_wrapper 1.0.2", + "sync_wrapper", "tokio", "tower-layer", "tower-service", @@ -6639,18 +4261,6 @@ dependencies = [ "tracing-core", ] -[[package]] -name = "tracing-appender" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3566e8ce28cc0a3fe42519fc80e6b4c943cc4c8cef275620eb8dac2d3d4e06cf" -dependencies = [ - "crossbeam-channel", - "thiserror 1.0.69", - "time", - "tracing-subscriber", -] - [[package]] name = "tracing-attributes" version = "0.1.28" @@ -6669,76 +4279,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c" dependencies = [ "once_cell", - "valuable", -] - -[[package]] -name = "tracing-error" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b1581020d7a273442f5b45074a6a57d5757ad0a47dac0e9f0bd57b81936f3db" -dependencies = [ - "tracing", - "tracing-subscriber", -] - -[[package]] -name = "tracing-indicatif" -version = "0.3.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74ba258e9de86447f75edf6455fded8e5242704c6fccffe7bf8d7fb6daef1180" -dependencies = [ - "indicatif", - "tracing", - "tracing-core", - "tracing-subscriber", -] - -[[package]] -name = "tracing-log" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" -dependencies = [ - "log", - "once_cell", - "tracing-core", -] - -[[package]] -name = "tracing-opentelemetry" -version = "0.23.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9be14ba1bbe4ab79e9229f7f89fab8d120b865859f10527f31c033e599d2284" -dependencies = [ - "js-sys", - "once_cell", - "opentelemetry", - "opentelemetry_sdk", - "smallvec", - "tracing", - "tracing-core", - "tracing-log", - "tracing-subscriber", - "web-time", -] - -[[package]] -name = "tracing-subscriber" -version = "0.3.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8189decb5ac0fa7bc8b96b7cb9b2701d60d48805aca84a238004d665fcc4008" -dependencies = [ - "matchers", - "nu-ansi-term", - "once_cell", - "regex", - "sharded-slab", - "smallvec", - "thread_local", - "tracing", - "tracing-core", - "tracing-log", ] [[package]] @@ -6795,60 +4335,12 @@ version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83" -[[package]] -name = "unicode-linebreak" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b09c83c3c29d37506a3e260c08c03743a6bb66a9cd432c6934ab501a190571f" - -[[package]] -name = "unicode-normalization" -version = "0.1.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" -dependencies = [ - "tinyvec", -] - -[[package]] -name = "unicode-segmentation" -version = "1.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" - -[[package]] -name = "unicode-width" -version = "0.1.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" - -[[package]] -name = "unicode-width" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fc81956842c57dac11422a97c3b8195a1ff727f06e85c84ed2e8aa277c9a0fd" - [[package]] name = "unicode-xid" version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" -[[package]] -name = "unix_path" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af8e291873ae77c4c8d9c9b34d0bee68a35b048fb39c263a5155e0e353783eaf" -dependencies = [ - "unix_str", -] - -[[package]] -name = "unix_str" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ace0b4755d0a2959962769239d56267f8a024fef2d9b32666b3dcd0946b0906" - [[package]] name = "unsafe-libyaml" version = "0.2.11" @@ -6899,12 +4391,6 @@ dependencies = [ "serde", ] -[[package]] -name = "urlencoding" -version = "2.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da" - [[package]] name = "utf16_iter" version = "1.0.5" @@ -6917,24 +4403,6 @@ version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" -[[package]] -name = "utf8parse" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" - -[[package]] -name = "uuid" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7" - -[[package]] -name = "uuid" -version = "1.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b913a3b5fe84142e269d63cc62b64319ccaf89b748fc31fe025177f767a756c4" - [[package]] name = "valuable" version = "0.1.0" @@ -6953,39 +4421,6 @@ version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" -[[package]] -name = "vt100" -version = "0.15.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84cd863bf0db7e392ba3bd04994be3473491b31e66340672af5d11943c6274de" -dependencies = [ - "itoa", - "log", - "unicode-width 0.1.14", - "vte", -] - -[[package]] -name = "vte" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5022b5fbf9407086c180e9557be968742d839e68346af7792b8592489732197" -dependencies = [ - "arrayvec", - "utf8parse", - "vte_generate_state_changes", -] - -[[package]] -name = "vte_generate_state_changes" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e369bee1b05d510a7b4ed645f5faa90619e05437111783ea5848f28d97d3c2e" -dependencies = [ - "proc-macro2", - "quote", -] - [[package]] name = "wait-timeout" version = "0.2.0" @@ -6995,16 +4430,6 @@ dependencies = [ "libc", ] -[[package]] -name = "walkdir" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" -dependencies = [ - "same-file", - "winapi-util", -] - [[package]] name = "want" version = "0.3.1" @@ -7087,26 +4512,6 @@ version = "0.2.99" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "943aab3fdaaa029a6e0271b35ea10b72b943135afe9bffca82384098ad0e06a6" -[[package]] -name = "wasmparser" -version = "0.83.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "718ed7c55c2add6548cca3ddd6383d738cd73b892df400e96b9aa876f0141d7a" - -[[package]] -name = "wasmparser" -version = "0.211.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3189cc8a91f547390e2f043ca3b3e3fe0892f7d581767fd4e4b7f3dc3fe8e561" -dependencies = [ - "ahash 0.8.11", - "bitflags 2.7.0", - "hashbrown 0.14.5", - "indexmap 2.7.0", - "semver 1.0.24", - "serde", -] - [[package]] name = "web-sys" version = "0.3.76" @@ -7117,16 +4522,6 @@ dependencies = [ "wasm-bindgen", ] -[[package]] -name = "web-time" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb" -dependencies = [ - "js-sys", - "wasm-bindgen", -] - [[package]] name = "webpki-roots" version = "0.26.7" @@ -7164,15 +4559,6 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" -[[package]] -name = "winapi-util" -version = "0.1.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" -dependencies = [ - "windows-sys 0.59.0", -] - [[package]] name = "winapi-x86_64-pc-windows-gnu" version = "0.4.0" @@ -7185,7 +4571,7 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" dependencies = [ - "windows-targets 0.52.6", + "windows-targets", ] [[package]] @@ -7196,7 +4582,7 @@ checksum = "e400001bb720a623c1c69032f8e3e4cf09984deec740f007dd2b03ec864804b0" dependencies = [ "windows-result", "windows-strings", - "windows-targets 0.52.6", + "windows-targets", ] [[package]] @@ -7205,7 +4591,7 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1d1043d8214f791817bab27572aaa8af63732e11bf84aa21a45a78d6c317ae0e" dependencies = [ - "windows-targets 0.52.6", + "windows-targets", ] [[package]] @@ -7215,16 +4601,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4cd9b125c486025df0eabcb585e62173c6c9eddcec5d117d3b6e8c30e2ee4d10" dependencies = [ "windows-result", - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-sys" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" -dependencies = [ - "windows-targets 0.48.5", + "windows-targets", ] [[package]] @@ -7233,7 +4610,7 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" dependencies = [ - "windows-targets 0.52.6", + "windows-targets", ] [[package]] @@ -7242,22 +4619,7 @@ version = "0.59.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" dependencies = [ - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-targets" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" -dependencies = [ - "windows_aarch64_gnullvm 0.48.5", - "windows_aarch64_msvc 0.48.5", - "windows_i686_gnu 0.48.5", - "windows_i686_msvc 0.48.5", - "windows_x86_64_gnu 0.48.5", - "windows_x86_64_gnullvm 0.48.5", - "windows_x86_64_msvc 0.48.5", + "windows-targets", ] [[package]] @@ -7266,46 +4628,28 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" dependencies = [ - "windows_aarch64_gnullvm 0.52.6", - "windows_aarch64_msvc 0.52.6", - "windows_i686_gnu 0.52.6", + "windows_aarch64_gnullvm", + "windows_aarch64_msvc", + "windows_i686_gnu", "windows_i686_gnullvm", - "windows_i686_msvc 0.52.6", - "windows_x86_64_gnu 0.52.6", - "windows_x86_64_gnullvm 0.52.6", - "windows_x86_64_msvc 0.52.6", + "windows_i686_msvc", + "windows_x86_64_gnu", + "windows_x86_64_gnullvm", + "windows_x86_64_msvc", ] -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" - [[package]] name = "windows_aarch64_gnullvm" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" -[[package]] -name = "windows_aarch64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" - [[package]] name = "windows_aarch64_msvc" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" -[[package]] -name = "windows_i686_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" - [[package]] name = "windows_i686_gnu" version = "0.52.6" @@ -7318,48 +4662,24 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" -[[package]] -name = "windows_i686_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" - [[package]] name = "windows_i686_msvc" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" -[[package]] -name = "windows_x86_64_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" - [[package]] name = "windows_x86_64_gnu" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" - [[package]] name = "windows_x86_64_gnullvm" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" -[[package]] -name = "windows_x86_64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" - [[package]] name = "windows_x86_64_msvc" version = "0.52.6" @@ -7419,12 +4739,6 @@ dependencies = [ "rustix", ] -[[package]] -name = "xml-rs" -version = "0.8.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5b940ebc25896e71dd073bad2dbaa2abfe97b0a391415e22ad1326d9c54e3c4" - [[package]] name = "yoke" version = "0.7.5" @@ -7546,18 +4860,6 @@ dependencies = [ "syn 2.0.96", ] -[[package]] -name = "zip" -version = "0.5.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93ab48844d61251bb3835145c521d88aa4031d7139e8485990f60ca911fa0815" -dependencies = [ - "byteorder", - "crc32fast", - "flate2", - "thiserror 1.0.69", -] - [[package]] name = "zip" version = "0.6.6" @@ -7571,7 +4873,7 @@ dependencies = [ "crc32fast", "crossbeam-utils", "flate2", - "hmac 0.12.1", + "hmac", "pbkdf2", "sha1", "time", diff --git a/near/Cargo.toml b/near/Cargo.toml index be90c094..c4036045 100644 --- a/near/Cargo.toml +++ b/near/Cargo.toml @@ -34,11 +34,11 @@ serde = { version = "1.0.200", features = ["derive"] } near-plugins = { git = "https://github.com/aurora-is-near/near-plugins", tag = "v0.4.1" } omni-types = { path = "omni-types" } strum_macros = "0.26" -near-workspaces = "0.12.0" +near-workspaces = "0.16.0" tokio = "1.40" anyhow = "1" ethereum-types = { version = "0.15.1", default-features = false, features = ["rlp", "serialize"] } rlp = "0.6" sha3 = "0.10.0" alloy-sol-types = "0.8" -rstest = "0.18.2" +rstest = "0.24.0" diff --git a/near/build.sh b/near/build.sh index e939dd31..a7c89ad2 100755 --- a/near/build.sh +++ b/near/build.sh @@ -86,12 +86,7 @@ docker run \ -w /host \ -e RUSTFLAGS='-C link-arg=-s' \ nearprotocol/contract-builder$tag \ - /bin/bash -c " - rustup install 1.81.0 && \ - rustup default 1.81.0 && \ - rustup target add wasm32-unknown-unknown && \ - $BUILD_CMD - " + /bin/bash -c "rustup target add wasm32-unknown-unknown && $BUILD_CMD" mkdir -p $RES_DIR From e4747132ffe0f1b0fce12f515b90edb62c06ecd2 Mon Sep 17 00:00:00 2001 From: Ivan Frolov Date: Sun, 12 Jan 2025 00:45:52 -0500 Subject: [PATCH 06/73] chore: working combination of `near-*` crates with v1.81.0 --- near/Cargo.lock | 519 ++++++++++++++++++++++++++++++++---------------- near/Cargo.toml | 8 +- 2 files changed, 349 insertions(+), 178 deletions(-) diff --git a/near/Cargo.lock b/near/Cargo.lock index 7b587d44..30d66637 100644 --- a/near/Cargo.lock +++ b/near/Cargo.lock @@ -38,6 +38,17 @@ dependencies = [ "cpufeatures", ] +[[package]] +name = "ahash" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "891477e0c6a8957309ee5c45a6368af3ae14bb510732d2684ffa19af310920f9" +dependencies = [ + "getrandom", + "once_cell", + "version_check", +] + [[package]] name = "aho-corasick" version = "1.1.3" @@ -47,12 +58,6 @@ dependencies = [ "memchr", ] -[[package]] -name = "allocator-api2" -version = "0.2.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" - [[package]] name = "alloy-json-abi" version = "0.8.18" @@ -480,18 +485,6 @@ dependencies = [ "generic-array", ] -[[package]] -name = "blst" -version = "0.3.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4378725facc195f1a538864863f6de233b500a8862747e7f165078a419d5e874" -dependencies = [ - "cc", - "glob", - "threadpool", - "zeroize", -] - [[package]] name = "borsh" version = "1.5.3" @@ -712,25 +705,6 @@ dependencies = [ "cfg-if 1.0.0", ] -[[package]] -name = "crossbeam-deque" -version = "0.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51" -dependencies = [ - "crossbeam-epoch", - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-epoch" -version = "0.9.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" -dependencies = [ - "crossbeam-utils", -] - [[package]] name = "crossbeam-utils" version = "0.8.21" @@ -776,6 +750,7 @@ dependencies = [ "curve25519-dalek-derive", "digest 0.10.7", "fiat-crypto", + "rand_core", "rustc_version 0.4.1", "subtle", "zeroize", @@ -1427,6 +1402,9 @@ name = "hashbrown" version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" +dependencies = [ + "ahash", +] [[package]] name = "hashbrown" @@ -1434,8 +1412,6 @@ version = "0.15.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" dependencies = [ - "allocator-api2", - "equivalent", "foldhash", "serde", ] @@ -1452,12 +1428,6 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" -[[package]] -name = "hermit-abi" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" - [[package]] name = "hex" version = "0.4.3" @@ -1834,6 +1804,15 @@ dependencies = [ "generic-array", ] +[[package]] +name = "instant" +version = "0.1.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222" +dependencies = [ + "cfg-if 1.0.0", +] + [[package]] name = "ipnet" version = "2.10.1" @@ -1973,7 +1952,7 @@ checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" dependencies = [ "bitflags 2.7.0", "libc", - "redox_syscall", + "redox_syscall 0.5.8", ] [[package]] @@ -2006,11 +1985,11 @@ checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" [[package]] name = "lru" -version = "0.12.5" +version = "0.7.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "234cf4f4a04dc1f57e24b96cc0cd600cf2af460d4161ac5ecdd0af8e1f3b2a38" +checksum = "e999beba7b6e8345721bd280141ed958096a2e4abdf74f67ff4ce49b4b54e47a" dependencies = [ - "hashbrown 0.15.2", + "hashbrown 0.12.3", ] [[package]] @@ -2149,19 +2128,19 @@ dependencies = [ [[package]] name = "near-chain-configs" -version = "0.28.0" +version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c1f312b5e1cdb6d6eb8a753de5798fe70fc2aa048b37d9a08a8d63f5623707d" +checksum = "aa23b4799779931ac810dc95a834cf6832448462161431f65f2f0bd16f1a3b54" dependencies = [ "anyhow", "bytesize", "chrono", "derive_more 0.99.18", - "near-config-utils", - "near-crypto", - "near-parameters", - "near-primitives", - "near-time", + "near-config-utils 0.27.0", + "near-crypto 0.27.0", + "near-parameters 0.27.0", + "near-primitives 0.27.0", + "near-time 0.27.0", "num-rational", "serde", "serde_json", @@ -2173,30 +2152,42 @@ dependencies = [ [[package]] name = "near-config-utils" -version = "0.28.0" +version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bedc768765dd8229a1d960c94f517317f40771a003e78916124784c7d6ea9d74" +checksum = "270955a98d49ff56e4e1286ab5a2e78aa131585eba92bd3c56a8c39f7f1f58e3" dependencies = [ "anyhow", "json_comments", - "thiserror 2.0.11", + "thiserror 1.0.69", + "tracing", +] + +[[package]] +name = "near-config-utils" +version = "0.27.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e7b41110a20f1d82bb06f06e4800068c5ade6d8ff844787f8753bc2ce7b16f7" +dependencies = [ + "anyhow", + "json_comments", + "thiserror 1.0.69", "tracing", ] [[package]] name = "near-contract-standards" -version = "5.7.0" +version = "5.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b8bc68a8c2bac5e44b38e322e41cadeefe33f766993bf067375b63cc860a73b" +checksum = "41c8a6923acd33d2cc0e64ba9bc626746f178bca4490e5742ec9c6d2f6f5a0a9" dependencies = [ "near-sdk", ] [[package]] name = "near-crypto" -version = "0.28.0" +version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4374804fdd45ac84c9e7cc3183312c98560c5518d81e6d8e2d92b77587e5a9f3" +checksum = "969d525d0e1b255f9cfbff071a66406aba2f3a89f413ac6e78e755e171e27dd1" dependencies = [ "blake2", "borsh", @@ -2206,25 +2197,69 @@ dependencies = [ "ed25519-dalek", "hex", "near-account-id", - "near-config-utils", + "near-config-utils 0.24.1", + "near-stdx 0.24.1", + "once_cell", + "primitive-types 0.10.1", + "secp256k1", + "serde", + "serde_json", + "subtle", + "thiserror 1.0.69", +] + +[[package]] +name = "near-crypto" +version = "0.27.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43b17944c8d0f274c684227d79fcd46d583b1e36064b597c53a9ebec187a86f3" +dependencies = [ + "blake2", + "borsh", + "bs58 0.4.0", + "curve25519-dalek", + "derive_more 0.99.18", + "ed25519-dalek", + "hex", + "near-account-id", + "near-config-utils 0.27.0", "near-schema-checker-lib", - "near-stdx", + "near-stdx 0.27.0", "primitive-types 0.10.1", "rand", "secp256k1", "serde", "serde_json", "subtle", - "thiserror 2.0.11", + "thiserror 1.0.69", ] [[package]] name = "near-fmt" -version = "0.28.0" +version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f14f36eee2dcb0ecd8febb9f198e0e1fa768c834db9e1982ad2acfcd04b45acf" +checksum = "015244b8faaeb1affb40b26018266bb5dd189a27d6c98998466895023fb9af32" dependencies = [ - "near-primitives-core", + "near-primitives-core 0.24.1", +] + +[[package]] +name = "near-fmt" +version = "0.27.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1eff0731995774d1498f017c968a3ebbfdadad84f556afea4b83679f6706ac9" +dependencies = [ + "near-primitives-core 0.27.0", +] + +[[package]] +name = "near-gas" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14e75c875026229902d065e4435804497337b631ec69ba746b102954273e9ad1" +dependencies = [ + "borsh", + "serde", ] [[package]] @@ -2240,63 +2275,81 @@ dependencies = [ [[package]] name = "near-jsonrpc-client" -version = "0.15.1" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e66a0c4c47f2fbbfa11ea8317fce2288d70d4aa8231e77fd213721ffcc1c334f" +checksum = "942dfa1269d14ea33454a0e9bc39b0d14ab5c6057b21e23e80753239879c5e54" dependencies = [ "borsh", "lazy_static", "log", "near-chain-configs", - "near-crypto", + "near-crypto 0.27.0", "near-jsonrpc-primitives", - "near-primitives", + "near-primitives 0.27.0", "reqwest", "serde", "serde_json", - "thiserror 2.0.11", + "thiserror 1.0.69", ] [[package]] name = "near-jsonrpc-primitives" -version = "0.28.0" +version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90f445f809d1f227f0f61f38c14271635c0bc9a28a8f74a803a4fb25292d5ea7" +checksum = "0c89197294a74af70fd5d06b4876dc2a400ffbdff6131e640e75fcb4fd194649" dependencies = [ "arbitrary", "near-chain-configs", - "near-crypto", - "near-primitives", + "near-crypto 0.27.0", + "near-primitives 0.27.0", "near-schema-checker-lib", "serde", "serde_json", - "thiserror 2.0.11", + "thiserror 1.0.69", "time", ] [[package]] name = "near-parameters" -version = "0.28.0" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57794a59e931eeace65eda1560453e4fe1ff1583b62fa906d0cb11731bc3a1d2" +dependencies = [ + "borsh", + "enum-map", + "near-account-id", + "near-primitives-core 0.24.1", + "num-rational", + "serde", + "serde_repr", + "serde_yaml", + "strum 0.24.1", + "thiserror 1.0.69", +] + +[[package]] +name = "near-parameters" +version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1279baa276725971d5e2b80c524d1aa42d5ad8bccf8901466fd579374cf58a14" +checksum = "0d4b4d014ac9f46baf0eeac7214567a08db97d5fd26157ea13edfbb8ffc5fd8c" dependencies = [ "borsh", "enum-map", "near-account-id", - "near-primitives-core", + "near-primitives-core 0.27.0", "near-schema-checker-lib", "num-rational", "serde", "serde_repr", "serde_yaml", "strum 0.24.1", - "thiserror 2.0.11", + "thiserror 1.0.69", ] [[package]] name = "near-plugins" version = "0.2.0" -source = "git+https://github.com/aurora-is-near/near-plugins?tag=v0.4.1#6149e0378fe46c7f740153cc0274b6da1f194112" +source = "git+https://github.com/aurora-is-near/near-plugins?tag=v0.4.0#9e6f057cb92df0ed66a616f8af530043bddb2879" dependencies = [ "bitflags 1.3.2", "near-plugins-derive", @@ -2307,7 +2360,7 @@ dependencies = [ [[package]] name = "near-plugins-derive" version = "0.2.0" -source = "git+https://github.com/aurora-is-near/near-plugins?tag=v0.4.1#6149e0378fe46c7f740153cc0274b6da1f194112" +source = "git+https://github.com/aurora-is-near/near-plugins?tag=v0.4.0#9e6f057cb92df0ed66a616f8af530043bddb2879" dependencies = [ "darling 0.13.4", "proc-macro-crate 0.1.5", @@ -2318,9 +2371,52 @@ dependencies = [ [[package]] name = "near-primitives" -version = "0.28.0" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97175c346de2dcad949c4a5351b65377d54e6edfc435373bf09d39da9f8fce40" +dependencies = [ + "arbitrary", + "base64 0.21.7", + "borsh", + "bytes", + "bytesize", + "cfg-if 1.0.0", + "chrono", + "derive_more 0.99.18", + "easy-ext", + "enum-map", + "hex", + "itertools", + "near-crypto 0.24.1", + "near-fmt 0.24.1", + "near-parameters 0.24.1", + "near-primitives-core 0.24.1", + "near-rpc-error-macro", + "near-stdx 0.24.1", + "near-time 0.24.1", + "num-rational", + "once_cell", + "ordered-float", + "primitive-types 0.10.1", + "rand", + "rand_chacha", + "reed-solomon-erasure", + "serde", + "serde_json", + "serde_with", + "sha3", + "smart-default", + "strum 0.24.1", + "thiserror 1.0.69", + "tracing", + "zstd 0.13.2", +] + +[[package]] +name = "near-primitives" +version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ab6ecc354e61c40b044c8b553c187383a587a1679d2e594f0b98ca58dbfb6e3" +checksum = "b45b4742a1817ff7d80dcf51c6facb8134478f8c4a6d717825cca2e4b834b17f" dependencies = [ "arbitrary", "base64 0.21.7", @@ -2335,13 +2431,13 @@ dependencies = [ "enum-map", "hex", "itertools", - "near-crypto", - "near-fmt", - "near-parameters", - "near-primitives-core", + "near-crypto 0.27.0", + "near-fmt 0.27.0", + "near-parameters 0.27.0", + "near-primitives-core 0.27.0", "near-schema-checker-lib", - "near-stdx", - "near-time", + "near-stdx 0.27.0", + "near-time 0.27.0", "num-rational", "ordered-float", "primitive-types 0.10.1", @@ -2353,16 +2449,36 @@ dependencies = [ "sha3", "smart-default", "strum 0.24.1", - "thiserror 2.0.11", + "thiserror 1.0.69", "tracing", "zstd 0.13.2", ] [[package]] name = "near-primitives-core" -version = "0.28.0" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4333e0cb2e98c89b434d700bac701a02b1df91a3b29fa1ab6d879727b22cd82" +dependencies = [ + "arbitrary", + "base64 0.21.7", + "borsh", + "bs58 0.4.0", + "derive_more 0.99.18", + "enum-map", + "near-account-id", + "num-rational", + "serde", + "serde_repr", + "sha2", + "thiserror 1.0.69", +] + +[[package]] +name = "near-primitives-core" +version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d597af103bb7881d1fb9031fb126cfe6c1acb9c9a6c8296dca45b5b3beb0893d" +checksum = "0de2c9da5de096b5cd4786a270900ff32a49d267e442a2e7f271fb23eb925c87" dependencies = [ "arbitrary", "base64 0.21.7", @@ -2376,14 +2492,36 @@ dependencies = [ "serde", "serde_repr", "sha2", - "thiserror 2.0.11", + "thiserror 1.0.69", +] + +[[package]] +name = "near-rpc-error-core" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "072735e35cccb9cde9827793bf08bd9192c23167cf840c287bf65afc968c31e8" +dependencies = [ + "quote", + "serde", + "syn 2.0.96", +] + +[[package]] +name = "near-rpc-error-macro" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "caa5a967de9f1480140de15620926b4f5292384e8a3672683e73478594107fa0" +dependencies = [ + "near-rpc-error-core", + "serde", + "syn 2.0.96", ] [[package]] name = "near-sandbox-utils" -version = "0.13.0" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51b918c05ec1ac6bf36f5f78e286befa987b17773b9fe4e80958d6350a494c98" +checksum = "fab5bbcdca923963f65dc0ffb630135b9858a0cc5dc8136e746a10094d84e9a6" dependencies = [ "anyhow", "binary-install", @@ -2394,15 +2532,15 @@ dependencies = [ [[package]] name = "near-schema-checker-core" -version = "0.28.0" +version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a48405425eca34de98e680416310df33fdb75768a78481cc75b43172b2748613" +checksum = "03541d1dadd0b5dd0a2e1ae1fbe5735fdab79332ed556af36cdcbe50d4b8cf04" [[package]] name = "near-schema-checker-lib" -version = "0.28.0" +version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfb720bf5cc256af687a9eb7a6e05baf3668dc75cfd43098e83ba1b3d3900f08" +checksum = "fa9050b0822d2c0dbd90d8c523fd74634f77c5be4ed3337e7010c0d986121982" dependencies = [ "near-schema-checker-core", "near-schema-checker-macro", @@ -2410,28 +2548,28 @@ dependencies = [ [[package]] name = "near-schema-checker-macro" -version = "0.28.0" +version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b41a159cbf732acc0279febdde046d9036330a32a951796bce42f9529bce799d" +checksum = "a1bca8c93ff0ad17138c147323a07f036d11c9e1602e3bc2ac9d29c3cf78b89d" [[package]] name = "near-sdk" -version = "5.7.0" +version = "5.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "befb9df6da1a6a0b6656388c0db76084867062a87f1cbc066c188a8e360b6463" +checksum = "d817ec6e678b52ad82d2e05886fb0c379b44beaedf5df6141b2365aadcd7a482" dependencies = [ - "base64 0.22.1", + "base64 0.21.7", "borsh", "bs58 0.5.1", "near-account-id", - "near-crypto", - "near-gas", - "near-parameters", - "near-primitives", - "near-primitives-core", + "near-crypto 0.24.1", + "near-gas 0.2.5", + "near-parameters 0.24.1", + "near-primitives 0.24.1", + "near-primitives-core 0.24.1", "near-sdk-macros", "near-sys", - "near-token", + "near-token 0.2.1", "near-vm-runner", "once_cell", "serde", @@ -2441,9 +2579,9 @@ dependencies = [ [[package]] name = "near-sdk-macros" -version = "5.7.0" +version = "5.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1268c4fc56bf53d70c200261fb8d57c6c1c6692243660f5f889c7fa4cf5771d2" +checksum = "2046b1c44f866e46c2ed6944a43c8caab125cc216322ab1f552a02e9c2bcda8a" dependencies = [ "Inflector", "darling 0.20.10", @@ -2458,9 +2596,15 @@ dependencies = [ [[package]] name = "near-stdx" -version = "0.28.0" +version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a91674768828a593f4bac4aeca9334c4b56fe19344a2ccf7bd795b2325f0b5e" +checksum = "ac1c4937647390c254e530ba8d3e296c192e67ea0364e3d7d4aef64563ffcf6a" + +[[package]] +name = "near-stdx" +version = "0.27.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "427b4e4af5e32f682064772da8b1a7558b3f090e6151c8804cff24ee6c5c4966" [[package]] name = "near-sys" @@ -2470,43 +2614,62 @@ checksum = "dbf4ca5c805cb78700e10e43484902d8da05f25788db277999d209568aaf4c8e" [[package]] name = "near-time" -version = "0.28.0" +version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c92bf9dffb11126e8db9a6a51bcb330c8584d0bab0d6d14c20cf2ff1f16d684d" +checksum = "d66de5e1e2b748aae827bb5dd80c715037ba7cf074f68ad5241b55bf2aaea793" +dependencies = [ + "once_cell", + "serde", + "time", + "tokio", +] + +[[package]] +name = "near-time" +version = "0.27.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "66ade805f0ca8211f0ca2e6ea130f8ddd03bf70c9c93ebeabdddf37314e3f30b" dependencies = [ "serde", "time", ] +[[package]] +name = "near-token" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3b497804ec8f603fd11edc3d3b7b19f07c0beb9fe47c8a536eea1867097fd40" +dependencies = [ + "borsh", + "serde", +] + [[package]] name = "near-token" version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cd3e60aa26a74dc514b1b6408fdd06cefe2eb0ff029020956c1c6517594048fd" dependencies = [ - "borsh", "serde", ] [[package]] name = "near-vm-runner" -version = "0.28.0" +version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f311723579af3d3cd8e9b5b25efade1b8f5b5e0dd2819ed8ee581e7c7855a76d" +checksum = "48e94f68dde77aa3c94e659edab4c98b14f6dbbeba2aded72ebb6c6456631164" dependencies = [ - "blst", "borsh", "bytesize", "ed25519-dalek", "enum-map", "lru", - "near-crypto", - "near-parameters", - "near-primitives-core", - "near-schema-checker-lib", - "near-stdx", + "near-crypto 0.24.1", + "near-parameters 0.24.1", + "near-primitives-core 0.24.1", + "near-stdx 0.24.1", "num-rational", - "rayon", + "once_cell", "ripemd", "rustix", "serde", @@ -2515,16 +2678,16 @@ dependencies = [ "sha3", "strum 0.24.1", "tempfile", - "thiserror 2.0.11", + "thiserror 1.0.69", "tracing", "zeropool-bn", ] [[package]] name = "near-workspaces" -version = "0.16.0" +version = "0.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e5804591268264c4e308cc84a54f4c7416da6ad34f8ea5c5a4b1842bc5462de" +checksum = "aed9db2b896d14a0d040a73d9dbb93c5bb3450b01f7dd21325a362f9aeddef59" dependencies = [ "async-trait", "base64 0.22.1", @@ -2535,13 +2698,13 @@ dependencies = [ "libc", "near-abi-client", "near-account-id", - "near-crypto", - "near-gas", + "near-crypto 0.27.0", + "near-gas 0.3.0", "near-jsonrpc-client", "near-jsonrpc-primitives", - "near-primitives", + "near-primitives 0.27.0", "near-sandbox-utils", - "near-token", + "near-token 0.3.0", "rand", "reqwest", "serde", @@ -2641,16 +2804,6 @@ dependencies = [ "libm", ] -[[package]] -name = "num_cpus" -version = "1.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" -dependencies = [ - "hermit-abi", - "libc", -] - [[package]] name = "object" version = "0.36.7" @@ -2811,6 +2964,17 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "parking_lot" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99" +dependencies = [ + "instant", + "lock_api", + "parking_lot_core 0.8.6", +] + [[package]] name = "parking_lot" version = "0.12.3" @@ -2818,7 +2982,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" dependencies = [ "lock_api", - "parking_lot_core", + "parking_lot_core 0.9.10", +] + +[[package]] +name = "parking_lot_core" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60a2cfe6f0ad2bfc16aefa463b497d5c7a5ecd44a23efa72aa342d90177356dc" +dependencies = [ + "cfg-if 1.0.0", + "instant", + "libc", + "redox_syscall 0.2.16", + "smallvec", + "winapi", ] [[package]] @@ -2829,7 +3007,7 @@ checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" dependencies = [ "cfg-if 1.0.0", "libc", - "redox_syscall", + "redox_syscall 0.5.8", "smallvec", "windows-targets", ] @@ -3118,23 +3296,12 @@ dependencies = [ ] [[package]] -name = "rayon" -version = "1.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa" -dependencies = [ - "either", - "rayon-core", -] - -[[package]] -name = "rayon-core" -version = "1.12.1" +name = "redox_syscall" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" +checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" dependencies = [ - "crossbeam-deque", - "crossbeam-utils", + "bitflags 1.3.2", ] [[package]] @@ -3157,6 +3324,19 @@ dependencies = [ "thiserror 1.0.69", ] +[[package]] +name = "reed-solomon-erasure" +version = "6.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7263373d500d4d4f505d43a2a662d475a894aa94503a1ee28e9188b5f3960d4f" +dependencies = [ + "libm", + "lru", + "parking_lot 0.11.2", + "smallvec", + "spin", +] + [[package]] name = "regex" version = "1.11.1" @@ -4036,15 +4216,6 @@ dependencies = [ "syn 2.0.96", ] -[[package]] -name = "threadpool" -version = "1.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d050e60b33d41c19108b32cea32164033a9013fe3b46cbd4457559bfbf77afaa" -dependencies = [ - "num_cpus", -] - [[package]] name = "time" version = "0.3.37" @@ -4134,7 +4305,7 @@ dependencies = [ "bytes", "libc", "mio", - "parking_lot", + "parking_lot 0.12.3", "pin-project-lite", "signal-hook-registry", "socket2", diff --git a/near/Cargo.toml b/near/Cargo.toml index c4036045..a26bb9bf 100644 --- a/near/Cargo.toml +++ b/near/Cargo.toml @@ -26,15 +26,15 @@ panic = "abort" overflow-checks = true [workspace.dependencies] -near-sdk = "5.2.0" -near-contract-standards = "5.2.0" +near-sdk = "5.3.0" +near-contract-standards = "5.3.0" hex = "0.4.2" borsh = "1.5.1" serde = { version = "1.0.200", features = ["derive"] } -near-plugins = { git = "https://github.com/aurora-is-near/near-plugins", tag = "v0.4.1" } +near-plugins = { git = "https://github.com/aurora-is-near/near-plugins", tag = "v0.4.0" } omni-types = { path = "omni-types" } strum_macros = "0.26" -near-workspaces = "0.16.0" +near-workspaces = "0.15.0" tokio = "1.40" anyhow = "1" ethereum-types = { version = "0.15.1", default-features = false, features = ["rlp", "serialize"] } From 241f0c9ec8a029d3fc9e4a0a2d73a65c6158ce0c Mon Sep 17 00:00:00 2001 From: Ivan Frolov Date: Sun, 12 Jan 2025 01:17:08 -0500 Subject: [PATCH 07/73] chore: returned back to 1.79.0 and pinned `alloy-*` crates --- near/Cargo.lock | 40 ++++++++++++++++++++++++-------------- near/Cargo.toml | 2 +- near/omni-types/Cargo.toml | 9 ++++++--- 3 files changed, 32 insertions(+), 19 deletions(-) diff --git a/near/Cargo.lock b/near/Cargo.lock index 30d66637..0f198eda 100644 --- a/near/Cargo.lock +++ b/near/Cargo.lock @@ -1,6 +1,6 @@ # This file is automatically @generated by Cargo. # It is not intended for manual editing. -version = 4 +version = 3 [[package]] name = "Inflector" @@ -60,9 +60,9 @@ dependencies = [ [[package]] name = "alloy-json-abi" -version = "0.8.18" +version = "0.8.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "731ea743b3d843bc657e120fb1d1e9cc94f5dab8107e35a82125a63e6420a102" +checksum = "1a500037938085feed8a20dbfc8fce58c599db68c948cfae711147175dee392c" dependencies = [ "alloy-primitives", "alloy-sol-type-parser", @@ -72,9 +72,9 @@ dependencies = [ [[package]] name = "alloy-primitives" -version = "0.8.18" +version = "0.8.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "788bb18e8f61d5d9340b52143f27771daf7e1dccbaf2741621d2493f9debf52e" +checksum = "3aeeb5825c2fc8c2662167058347cd0cafc3cb15bcb5cdb1758a63c2dca0409e" dependencies = [ "alloy-rlp", "bytes", @@ -83,6 +83,7 @@ dependencies = [ "derive_more 1.0.0", "foldhash", "hashbrown 0.15.2", + "hex-literal", "indexmap 2.7.0", "itoa", "k256", @@ -109,9 +110,9 @@ dependencies = [ [[package]] name = "alloy-sol-macro" -version = "0.8.18" +version = "0.8.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a07b74d48661ab2e4b50bb5950d74dbff5e61dd8ed03bb822281b706d54ebacb" +checksum = "5c0279d09463a4695788a3622fd95443625f7be307422deba4b55dd491a9c7a1" dependencies = [ "alloy-sol-macro-expander", "alloy-sol-macro-input", @@ -123,9 +124,9 @@ dependencies = [ [[package]] name = "alloy-sol-macro-expander" -version = "0.8.18" +version = "0.8.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19cc9c7f20b90f9be1a8f71a3d8e283a43745137b0837b1a1cb13159d37cad72" +checksum = "4feea540fc8233df2ad1156efd744b2075372f43a8f942a68b3b19c8a00e2c12" dependencies = [ "alloy-sol-macro-input", "const-hex", @@ -141,9 +142,9 @@ dependencies = [ [[package]] name = "alloy-sol-macro-input" -version = "0.8.18" +version = "0.8.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "713b7e6dfe1cb2f55c80fb05fd22ed085a1b4e48217611365ed0ae598a74c6ac" +checksum = "2a0ad281f3d1b613af814b66977ee698e443d4644a1510962d0241f26e0e53ae" dependencies = [ "const-hex", "dunce", @@ -166,9 +167,9 @@ dependencies = [ [[package]] name = "alloy-sol-types" -version = "0.8.18" +version = "0.8.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3b478bc9c0c4737a04cd976accde4df7eba0bdc0d90ad6ff43d58bc93cf79c1" +checksum = "cff34e0682d6665da243a3e81da96f07a2dd50f7e64073e382b1a141f5a2a2f6" dependencies = [ "alloy-json-abi", "alloy-primitives", @@ -1437,6 +1438,12 @@ dependencies = [ "serde", ] +[[package]] +name = "hex-literal" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" + [[package]] name = "hmac" version = "0.12.1" @@ -2864,6 +2871,8 @@ dependencies = [ "alloy-primitives", "alloy-rlp", "alloy-sol-macro", + "alloy-sol-macro-expander", + "alloy-sol-macro-input", "alloy-sol-types", "borsh", "ethereum-types", @@ -2874,6 +2883,7 @@ dependencies = [ "serde", "sha3", "strum_macros 0.26.4", + "syn-solidity", ] [[package]] @@ -4094,9 +4104,9 @@ dependencies = [ [[package]] name = "syn-solidity" -version = "0.8.18" +version = "0.8.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31e89d8bf2768d277f40573c83a02a099e96d96dd3104e13ea676194e61ac4b0" +checksum = "6bdaa7b9e815582ba343a20c66627437cf45f1c6fba7f69772cbfd1358c7e197" dependencies = [ "paste", "proc-macro2", diff --git a/near/Cargo.toml b/near/Cargo.toml index a26bb9bf..5160e916 100644 --- a/near/Cargo.toml +++ b/near/Cargo.toml @@ -37,8 +37,8 @@ strum_macros = "0.26" near-workspaces = "0.15.0" tokio = "1.40" anyhow = "1" +alloy-sol-types = "=0.8.13" ethereum-types = { version = "0.15.1", default-features = false, features = ["rlp", "serialize"] } rlp = "0.6" sha3 = "0.10.0" -alloy-sol-types = "0.8" rstest = "0.24.0" diff --git a/near/omni-types/Cargo.toml b/near/omni-types/Cargo.toml index 3ef2022a..dd28de9c 100644 --- a/near/omni-types/Cargo.toml +++ b/near/omni-types/Cargo.toml @@ -13,10 +13,13 @@ serde.workspace = true strum_macros.workspace = true ethereum-types.workspace = true rlp.workspace = true -alloy-sol-types = "0.8" -alloy-sol-macro = "0.8" -alloy-primitives = { version = "0.8", features = ["rlp"] } +alloy-sol-types = "=0.8.13" +alloy-sol-macro = "=0.8.13" +alloy-sol-macro-input = "=0.8.13" +alloy-sol-macro-expander = "=0.8.13" +alloy-primitives = { version = "=0.8.13", features = ["rlp"] } alloy-rlp = "0.3" +syn-solidity = "=0.8.13" [target.'cfg(not(target_arch = "wasm32"))'.dependencies] sha3.workspace = true From 774e15d1970b4adaf740294a3efe8df634cc592b Mon Sep 17 00:00:00 2001 From: Ivan Frolov Date: Sun, 12 Jan 2025 03:35:44 -0500 Subject: [PATCH 08/73] chore: bumped back to 1.84.0 --- near/Cargo.lock | 563 +++++++++++++------------------------ near/Cargo.toml | 10 +- near/omni-types/Cargo.toml | 9 +- 3 files changed, 199 insertions(+), 383 deletions(-) diff --git a/near/Cargo.lock b/near/Cargo.lock index 0f198eda..3dc45b55 100644 --- a/near/Cargo.lock +++ b/near/Cargo.lock @@ -1,6 +1,6 @@ # This file is automatically @generated by Cargo. # It is not intended for manual editing. -version = 3 +version = 4 [[package]] name = "Inflector" @@ -38,17 +38,6 @@ dependencies = [ "cpufeatures", ] -[[package]] -name = "ahash" -version = "0.7.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "891477e0c6a8957309ee5c45a6368af3ae14bb510732d2684ffa19af310920f9" -dependencies = [ - "getrandom", - "once_cell", - "version_check", -] - [[package]] name = "aho-corasick" version = "1.1.3" @@ -58,11 +47,17 @@ dependencies = [ "memchr", ] +[[package]] +name = "allocator-api2" +version = "0.2.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" + [[package]] name = "alloy-json-abi" -version = "0.8.13" +version = "0.8.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a500037938085feed8a20dbfc8fce58c599db68c948cfae711147175dee392c" +checksum = "731ea743b3d843bc657e120fb1d1e9cc94f5dab8107e35a82125a63e6420a102" dependencies = [ "alloy-primitives", "alloy-sol-type-parser", @@ -72,9 +67,9 @@ dependencies = [ [[package]] name = "alloy-primitives" -version = "0.8.13" +version = "0.8.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3aeeb5825c2fc8c2662167058347cd0cafc3cb15bcb5cdb1758a63c2dca0409e" +checksum = "788bb18e8f61d5d9340b52143f27771daf7e1dccbaf2741621d2493f9debf52e" dependencies = [ "alloy-rlp", "bytes", @@ -83,7 +78,6 @@ dependencies = [ "derive_more 1.0.0", "foldhash", "hashbrown 0.15.2", - "hex-literal", "indexmap 2.7.0", "itoa", "k256", @@ -110,9 +104,9 @@ dependencies = [ [[package]] name = "alloy-sol-macro" -version = "0.8.13" +version = "0.8.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c0279d09463a4695788a3622fd95443625f7be307422deba4b55dd491a9c7a1" +checksum = "a07b74d48661ab2e4b50bb5950d74dbff5e61dd8ed03bb822281b706d54ebacb" dependencies = [ "alloy-sol-macro-expander", "alloy-sol-macro-input", @@ -124,9 +118,9 @@ dependencies = [ [[package]] name = "alloy-sol-macro-expander" -version = "0.8.13" +version = "0.8.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4feea540fc8233df2ad1156efd744b2075372f43a8f942a68b3b19c8a00e2c12" +checksum = "19cc9c7f20b90f9be1a8f71a3d8e283a43745137b0837b1a1cb13159d37cad72" dependencies = [ "alloy-sol-macro-input", "const-hex", @@ -142,9 +136,9 @@ dependencies = [ [[package]] name = "alloy-sol-macro-input" -version = "0.8.13" +version = "0.8.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a0ad281f3d1b613af814b66977ee698e443d4644a1510962d0241f26e0e53ae" +checksum = "713b7e6dfe1cb2f55c80fb05fd22ed085a1b4e48217611365ed0ae598a74c6ac" dependencies = [ "const-hex", "dunce", @@ -167,9 +161,9 @@ dependencies = [ [[package]] name = "alloy-sol-types" -version = "0.8.13" +version = "0.8.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cff34e0682d6665da243a3e81da96f07a2dd50f7e64073e382b1a141f5a2a2f6" +checksum = "e3b478bc9c0c4737a04cd976accde4df7eba0bdc0d90ad6ff43d58bc93cf79c1" dependencies = [ "alloy-json-abi", "alloy-primitives", @@ -486,6 +480,18 @@ dependencies = [ "generic-array", ] +[[package]] +name = "blst" +version = "0.3.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4378725facc195f1a538864863f6de233b500a8862747e7f165078a419d5e874" +dependencies = [ + "cc", + "glob", + "threadpool", + "zeroize", +] + [[package]] name = "borsh" version = "1.5.3" @@ -583,9 +589,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.2.8" +version = "1.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad0cf6e91fde44c773c6ee7ec6bba798504641a8bc2eb7e37a04ffbf4dfaa55a" +checksum = "c8293772165d9345bdaaa39b45b2109591e63fe5e6fbc23c6ff930a048aa310b" dependencies = [ "jobserver", "libc", @@ -706,6 +712,25 @@ dependencies = [ "cfg-if 1.0.0", ] +[[package]] +name = "crossbeam-deque" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51" +dependencies = [ + "crossbeam-epoch", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-epoch" +version = "0.9.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" +dependencies = [ + "crossbeam-utils", +] + [[package]] name = "crossbeam-utils" version = "0.8.21" @@ -751,7 +776,6 @@ dependencies = [ "curve25519-dalek-derive", "digest 0.10.7", "fiat-crypto", - "rand_core", "rustc_version 0.4.1", "subtle", "zeroize", @@ -1403,9 +1427,6 @@ name = "hashbrown" version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" -dependencies = [ - "ahash", -] [[package]] name = "hashbrown" @@ -1413,6 +1434,8 @@ version = "0.15.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" dependencies = [ + "allocator-api2", + "equivalent", "foldhash", "serde", ] @@ -1429,6 +1452,12 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" +[[package]] +name = "hermit-abi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" + [[package]] name = "hex" version = "0.4.3" @@ -1438,12 +1467,6 @@ dependencies = [ "serde", ] -[[package]] -name = "hex-literal" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" - [[package]] name = "hmac" version = "0.12.1" @@ -1811,15 +1834,6 @@ dependencies = [ "generic-array", ] -[[package]] -name = "instant" -version = "0.1.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222" -dependencies = [ - "cfg-if 1.0.0", -] - [[package]] name = "ipnet" version = "2.10.1" @@ -1959,7 +1973,7 @@ checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" dependencies = [ "bitflags 2.7.0", "libc", - "redox_syscall 0.5.8", + "redox_syscall", ] [[package]] @@ -1992,11 +2006,11 @@ checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" [[package]] name = "lru" -version = "0.7.8" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e999beba7b6e8345721bd280141ed958096a2e4abdf74f67ff4ce49b4b54e47a" +checksum = "234cf4f4a04dc1f57e24b96cc0cd600cf2af460d4161ac5ecdd0af8e1f3b2a38" dependencies = [ - "hashbrown 0.12.3", + "hashbrown 0.15.2", ] [[package]] @@ -2135,19 +2149,19 @@ dependencies = [ [[package]] name = "near-chain-configs" -version = "0.27.0" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa23b4799779931ac810dc95a834cf6832448462161431f65f2f0bd16f1a3b54" +checksum = "4c1f312b5e1cdb6d6eb8a753de5798fe70fc2aa048b37d9a08a8d63f5623707d" dependencies = [ "anyhow", "bytesize", "chrono", "derive_more 0.99.18", - "near-config-utils 0.27.0", - "near-crypto 0.27.0", - "near-parameters 0.27.0", - "near-primitives 0.27.0", - "near-time 0.27.0", + "near-config-utils", + "near-crypto", + "near-parameters", + "near-primitives", + "near-time", "num-rational", "serde", "serde_json", @@ -2159,67 +2173,30 @@ dependencies = [ [[package]] name = "near-config-utils" -version = "0.24.1" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "270955a98d49ff56e4e1286ab5a2e78aa131585eba92bd3c56a8c39f7f1f58e3" +checksum = "bedc768765dd8229a1d960c94f517317f40771a003e78916124784c7d6ea9d74" dependencies = [ "anyhow", "json_comments", - "thiserror 1.0.69", - "tracing", -] - -[[package]] -name = "near-config-utils" -version = "0.27.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e7b41110a20f1d82bb06f06e4800068c5ade6d8ff844787f8753bc2ce7b16f7" -dependencies = [ - "anyhow", - "json_comments", - "thiserror 1.0.69", + "thiserror 2.0.11", "tracing", ] [[package]] name = "near-contract-standards" -version = "5.3.0" +version = "5.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41c8a6923acd33d2cc0e64ba9bc626746f178bca4490e5742ec9c6d2f6f5a0a9" +checksum = "6b8bc68a8c2bac5e44b38e322e41cadeefe33f766993bf067375b63cc860a73b" dependencies = [ "near-sdk", ] [[package]] name = "near-crypto" -version = "0.24.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "969d525d0e1b255f9cfbff071a66406aba2f3a89f413ac6e78e755e171e27dd1" -dependencies = [ - "blake2", - "borsh", - "bs58 0.4.0", - "curve25519-dalek", - "derive_more 0.99.18", - "ed25519-dalek", - "hex", - "near-account-id", - "near-config-utils 0.24.1", - "near-stdx 0.24.1", - "once_cell", - "primitive-types 0.10.1", - "secp256k1", - "serde", - "serde_json", - "subtle", - "thiserror 1.0.69", -] - -[[package]] -name = "near-crypto" -version = "0.27.0" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43b17944c8d0f274c684227d79fcd46d583b1e36064b597c53a9ebec187a86f3" +checksum = "4374804fdd45ac84c9e7cc3183312c98560c5518d81e6d8e2d92b77587e5a9f3" dependencies = [ "blake2", "borsh", @@ -2229,44 +2206,25 @@ dependencies = [ "ed25519-dalek", "hex", "near-account-id", - "near-config-utils 0.27.0", + "near-config-utils", "near-schema-checker-lib", - "near-stdx 0.27.0", + "near-stdx", "primitive-types 0.10.1", "rand", "secp256k1", "serde", "serde_json", "subtle", - "thiserror 1.0.69", -] - -[[package]] -name = "near-fmt" -version = "0.24.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "015244b8faaeb1affb40b26018266bb5dd189a27d6c98998466895023fb9af32" -dependencies = [ - "near-primitives-core 0.24.1", + "thiserror 2.0.11", ] [[package]] name = "near-fmt" -version = "0.27.0" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1eff0731995774d1498f017c968a3ebbfdadad84f556afea4b83679f6706ac9" +checksum = "f14f36eee2dcb0ecd8febb9f198e0e1fa768c834db9e1982ad2acfcd04b45acf" dependencies = [ - "near-primitives-core 0.27.0", -] - -[[package]] -name = "near-gas" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14e75c875026229902d065e4435804497337b631ec69ba746b102954273e9ad1" -dependencies = [ - "borsh", - "serde", + "near-primitives-core", ] [[package]] @@ -2282,81 +2240,63 @@ dependencies = [ [[package]] name = "near-jsonrpc-client" -version = "0.14.0" +version = "0.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "942dfa1269d14ea33454a0e9bc39b0d14ab5c6057b21e23e80753239879c5e54" +checksum = "e66a0c4c47f2fbbfa11ea8317fce2288d70d4aa8231e77fd213721ffcc1c334f" dependencies = [ "borsh", "lazy_static", "log", "near-chain-configs", - "near-crypto 0.27.0", + "near-crypto", "near-jsonrpc-primitives", - "near-primitives 0.27.0", + "near-primitives", "reqwest", "serde", "serde_json", - "thiserror 1.0.69", + "thiserror 2.0.11", ] [[package]] name = "near-jsonrpc-primitives" -version = "0.27.0" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c89197294a74af70fd5d06b4876dc2a400ffbdff6131e640e75fcb4fd194649" +checksum = "90f445f809d1f227f0f61f38c14271635c0bc9a28a8f74a803a4fb25292d5ea7" dependencies = [ "arbitrary", "near-chain-configs", - "near-crypto 0.27.0", - "near-primitives 0.27.0", + "near-crypto", + "near-primitives", "near-schema-checker-lib", "serde", "serde_json", - "thiserror 1.0.69", + "thiserror 2.0.11", "time", ] [[package]] name = "near-parameters" -version = "0.24.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57794a59e931eeace65eda1560453e4fe1ff1583b62fa906d0cb11731bc3a1d2" -dependencies = [ - "borsh", - "enum-map", - "near-account-id", - "near-primitives-core 0.24.1", - "num-rational", - "serde", - "serde_repr", - "serde_yaml", - "strum 0.24.1", - "thiserror 1.0.69", -] - -[[package]] -name = "near-parameters" -version = "0.27.0" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d4b4d014ac9f46baf0eeac7214567a08db97d5fd26157ea13edfbb8ffc5fd8c" +checksum = "1279baa276725971d5e2b80c524d1aa42d5ad8bccf8901466fd579374cf58a14" dependencies = [ "borsh", "enum-map", "near-account-id", - "near-primitives-core 0.27.0", + "near-primitives-core", "near-schema-checker-lib", "num-rational", "serde", "serde_repr", "serde_yaml", "strum 0.24.1", - "thiserror 1.0.69", + "thiserror 2.0.11", ] [[package]] name = "near-plugins" version = "0.2.0" -source = "git+https://github.com/aurora-is-near/near-plugins?tag=v0.4.0#9e6f057cb92df0ed66a616f8af530043bddb2879" +source = "git+https://github.com/aurora-is-near/near-plugins?tag=v0.4.1#6149e0378fe46c7f740153cc0274b6da1f194112" dependencies = [ "bitflags 1.3.2", "near-plugins-derive", @@ -2367,7 +2307,7 @@ dependencies = [ [[package]] name = "near-plugins-derive" version = "0.2.0" -source = "git+https://github.com/aurora-is-near/near-plugins?tag=v0.4.0#9e6f057cb92df0ed66a616f8af530043bddb2879" +source = "git+https://github.com/aurora-is-near/near-plugins?tag=v0.4.1#6149e0378fe46c7f740153cc0274b6da1f194112" dependencies = [ "darling 0.13.4", "proc-macro-crate 0.1.5", @@ -2378,52 +2318,9 @@ dependencies = [ [[package]] name = "near-primitives" -version = "0.24.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97175c346de2dcad949c4a5351b65377d54e6edfc435373bf09d39da9f8fce40" -dependencies = [ - "arbitrary", - "base64 0.21.7", - "borsh", - "bytes", - "bytesize", - "cfg-if 1.0.0", - "chrono", - "derive_more 0.99.18", - "easy-ext", - "enum-map", - "hex", - "itertools", - "near-crypto 0.24.1", - "near-fmt 0.24.1", - "near-parameters 0.24.1", - "near-primitives-core 0.24.1", - "near-rpc-error-macro", - "near-stdx 0.24.1", - "near-time 0.24.1", - "num-rational", - "once_cell", - "ordered-float", - "primitive-types 0.10.1", - "rand", - "rand_chacha", - "reed-solomon-erasure", - "serde", - "serde_json", - "serde_with", - "sha3", - "smart-default", - "strum 0.24.1", - "thiserror 1.0.69", - "tracing", - "zstd 0.13.2", -] - -[[package]] -name = "near-primitives" -version = "0.27.0" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b45b4742a1817ff7d80dcf51c6facb8134478f8c4a6d717825cca2e4b834b17f" +checksum = "6ab6ecc354e61c40b044c8b553c187383a587a1679d2e594f0b98ca58dbfb6e3" dependencies = [ "arbitrary", "base64 0.21.7", @@ -2438,13 +2335,13 @@ dependencies = [ "enum-map", "hex", "itertools", - "near-crypto 0.27.0", - "near-fmt 0.27.0", - "near-parameters 0.27.0", - "near-primitives-core 0.27.0", + "near-crypto", + "near-fmt", + "near-parameters", + "near-primitives-core", "near-schema-checker-lib", - "near-stdx 0.27.0", - "near-time 0.27.0", + "near-stdx", + "near-time", "num-rational", "ordered-float", "primitive-types 0.10.1", @@ -2456,36 +2353,16 @@ dependencies = [ "sha3", "smart-default", "strum 0.24.1", - "thiserror 1.0.69", + "thiserror 2.0.11", "tracing", "zstd 0.13.2", ] [[package]] name = "near-primitives-core" -version = "0.24.1" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4333e0cb2e98c89b434d700bac701a02b1df91a3b29fa1ab6d879727b22cd82" -dependencies = [ - "arbitrary", - "base64 0.21.7", - "borsh", - "bs58 0.4.0", - "derive_more 0.99.18", - "enum-map", - "near-account-id", - "num-rational", - "serde", - "serde_repr", - "sha2", - "thiserror 1.0.69", -] - -[[package]] -name = "near-primitives-core" -version = "0.27.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0de2c9da5de096b5cd4786a270900ff32a49d267e442a2e7f271fb23eb925c87" +checksum = "d597af103bb7881d1fb9031fb126cfe6c1acb9c9a6c8296dca45b5b3beb0893d" dependencies = [ "arbitrary", "base64 0.21.7", @@ -2499,36 +2376,14 @@ dependencies = [ "serde", "serde_repr", "sha2", - "thiserror 1.0.69", -] - -[[package]] -name = "near-rpc-error-core" -version = "0.24.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "072735e35cccb9cde9827793bf08bd9192c23167cf840c287bf65afc968c31e8" -dependencies = [ - "quote", - "serde", - "syn 2.0.96", -] - -[[package]] -name = "near-rpc-error-macro" -version = "0.24.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "caa5a967de9f1480140de15620926b4f5292384e8a3672683e73478594107fa0" -dependencies = [ - "near-rpc-error-core", - "serde", - "syn 2.0.96", + "thiserror 2.0.11", ] [[package]] name = "near-sandbox-utils" -version = "0.12.0" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fab5bbcdca923963f65dc0ffb630135b9858a0cc5dc8136e746a10094d84e9a6" +checksum = "51b918c05ec1ac6bf36f5f78e286befa987b17773b9fe4e80958d6350a494c98" dependencies = [ "anyhow", "binary-install", @@ -2539,15 +2394,15 @@ dependencies = [ [[package]] name = "near-schema-checker-core" -version = "0.27.0" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03541d1dadd0b5dd0a2e1ae1fbe5735fdab79332ed556af36cdcbe50d4b8cf04" +checksum = "a48405425eca34de98e680416310df33fdb75768a78481cc75b43172b2748613" [[package]] name = "near-schema-checker-lib" -version = "0.27.0" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa9050b0822d2c0dbd90d8c523fd74634f77c5be4ed3337e7010c0d986121982" +checksum = "dfb720bf5cc256af687a9eb7a6e05baf3668dc75cfd43098e83ba1b3d3900f08" dependencies = [ "near-schema-checker-core", "near-schema-checker-macro", @@ -2555,28 +2410,28 @@ dependencies = [ [[package]] name = "near-schema-checker-macro" -version = "0.27.0" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1bca8c93ff0ad17138c147323a07f036d11c9e1602e3bc2ac9d29c3cf78b89d" +checksum = "b41a159cbf732acc0279febdde046d9036330a32a951796bce42f9529bce799d" [[package]] name = "near-sdk" -version = "5.3.0" +version = "5.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d817ec6e678b52ad82d2e05886fb0c379b44beaedf5df6141b2365aadcd7a482" +checksum = "befb9df6da1a6a0b6656388c0db76084867062a87f1cbc066c188a8e360b6463" dependencies = [ - "base64 0.21.7", + "base64 0.22.1", "borsh", "bs58 0.5.1", "near-account-id", - "near-crypto 0.24.1", - "near-gas 0.2.5", - "near-parameters 0.24.1", - "near-primitives 0.24.1", - "near-primitives-core 0.24.1", + "near-crypto", + "near-gas", + "near-parameters", + "near-primitives", + "near-primitives-core", "near-sdk-macros", "near-sys", - "near-token 0.2.1", + "near-token", "near-vm-runner", "once_cell", "serde", @@ -2586,9 +2441,9 @@ dependencies = [ [[package]] name = "near-sdk-macros" -version = "5.3.0" +version = "5.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2046b1c44f866e46c2ed6944a43c8caab125cc216322ab1f552a02e9c2bcda8a" +checksum = "1268c4fc56bf53d70c200261fb8d57c6c1c6692243660f5f889c7fa4cf5771d2" dependencies = [ "Inflector", "darling 0.20.10", @@ -2603,15 +2458,9 @@ dependencies = [ [[package]] name = "near-stdx" -version = "0.24.1" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac1c4937647390c254e530ba8d3e296c192e67ea0364e3d7d4aef64563ffcf6a" - -[[package]] -name = "near-stdx" -version = "0.27.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "427b4e4af5e32f682064772da8b1a7558b3f090e6151c8804cff24ee6c5c4966" +checksum = "7a91674768828a593f4bac4aeca9334c4b56fe19344a2ccf7bd795b2325f0b5e" [[package]] name = "near-sys" @@ -2621,62 +2470,43 @@ checksum = "dbf4ca5c805cb78700e10e43484902d8da05f25788db277999d209568aaf4c8e" [[package]] name = "near-time" -version = "0.24.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d66de5e1e2b748aae827bb5dd80c715037ba7cf074f68ad5241b55bf2aaea793" -dependencies = [ - "once_cell", - "serde", - "time", - "tokio", -] - -[[package]] -name = "near-time" -version = "0.27.0" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66ade805f0ca8211f0ca2e6ea130f8ddd03bf70c9c93ebeabdddf37314e3f30b" +checksum = "c92bf9dffb11126e8db9a6a51bcb330c8584d0bab0d6d14c20cf2ff1f16d684d" dependencies = [ "serde", "time", ] -[[package]] -name = "near-token" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3b497804ec8f603fd11edc3d3b7b19f07c0beb9fe47c8a536eea1867097fd40" -dependencies = [ - "borsh", - "serde", -] - [[package]] name = "near-token" version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cd3e60aa26a74dc514b1b6408fdd06cefe2eb0ff029020956c1c6517594048fd" dependencies = [ + "borsh", "serde", ] [[package]] name = "near-vm-runner" -version = "0.24.1" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48e94f68dde77aa3c94e659edab4c98b14f6dbbeba2aded72ebb6c6456631164" +checksum = "f311723579af3d3cd8e9b5b25efade1b8f5b5e0dd2819ed8ee581e7c7855a76d" dependencies = [ + "blst", "borsh", "bytesize", "ed25519-dalek", "enum-map", "lru", - "near-crypto 0.24.1", - "near-parameters 0.24.1", - "near-primitives-core 0.24.1", - "near-stdx 0.24.1", + "near-crypto", + "near-parameters", + "near-primitives-core", + "near-schema-checker-lib", + "near-stdx", "num-rational", - "once_cell", + "rayon", "ripemd", "rustix", "serde", @@ -2685,16 +2515,16 @@ dependencies = [ "sha3", "strum 0.24.1", "tempfile", - "thiserror 1.0.69", + "thiserror 2.0.11", "tracing", "zeropool-bn", ] [[package]] name = "near-workspaces" -version = "0.15.0" +version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aed9db2b896d14a0d040a73d9dbb93c5bb3450b01f7dd21325a362f9aeddef59" +checksum = "7e5804591268264c4e308cc84a54f4c7416da6ad34f8ea5c5a4b1842bc5462de" dependencies = [ "async-trait", "base64 0.22.1", @@ -2705,13 +2535,13 @@ dependencies = [ "libc", "near-abi-client", "near-account-id", - "near-crypto 0.27.0", - "near-gas 0.3.0", + "near-crypto", + "near-gas", "near-jsonrpc-client", "near-jsonrpc-primitives", - "near-primitives 0.27.0", + "near-primitives", "near-sandbox-utils", - "near-token 0.3.0", + "near-token", "rand", "reqwest", "serde", @@ -2811,6 +2641,16 @@ dependencies = [ "libm", ] +[[package]] +name = "num_cpus" +version = "1.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" +dependencies = [ + "hermit-abi", + "libc", +] + [[package]] name = "object" version = "0.36.7" @@ -2871,8 +2711,6 @@ dependencies = [ "alloy-primitives", "alloy-rlp", "alloy-sol-macro", - "alloy-sol-macro-expander", - "alloy-sol-macro-input", "alloy-sol-types", "borsh", "ethereum-types", @@ -2883,7 +2721,6 @@ dependencies = [ "serde", "sha3", "strum_macros 0.26.4", - "syn-solidity", ] [[package]] @@ -2974,17 +2811,6 @@ dependencies = [ "syn 1.0.109", ] -[[package]] -name = "parking_lot" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99" -dependencies = [ - "instant", - "lock_api", - "parking_lot_core 0.8.6", -] - [[package]] name = "parking_lot" version = "0.12.3" @@ -2992,21 +2818,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" dependencies = [ "lock_api", - "parking_lot_core 0.9.10", -] - -[[package]] -name = "parking_lot_core" -version = "0.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60a2cfe6f0ad2bfc16aefa463b497d5c7a5ecd44a23efa72aa342d90177356dc" -dependencies = [ - "cfg-if 1.0.0", - "instant", - "libc", - "redox_syscall 0.2.16", - "smallvec", - "winapi", + "parking_lot_core", ] [[package]] @@ -3017,7 +2829,7 @@ checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" dependencies = [ "cfg-if 1.0.0", "libc", - "redox_syscall 0.5.8", + "redox_syscall", "smallvec", "windows-targets", ] @@ -3306,12 +3118,23 @@ dependencies = [ ] [[package]] -name = "redox_syscall" -version = "0.2.16" +name = "rayon" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" +checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa" dependencies = [ - "bitflags 1.3.2", + "either", + "rayon-core", +] + +[[package]] +name = "rayon-core" +version = "1.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" +dependencies = [ + "crossbeam-deque", + "crossbeam-utils", ] [[package]] @@ -3334,19 +3157,6 @@ dependencies = [ "thiserror 1.0.69", ] -[[package]] -name = "reed-solomon-erasure" -version = "6.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7263373d500d4d4f505d43a2a662d475a894aa94503a1ee28e9188b5f3960d4f" -dependencies = [ - "libm", - "lru", - "parking_lot 0.11.2", - "smallvec", - "spin", -] - [[package]] name = "regex" version = "1.11.1" @@ -4104,9 +3914,9 @@ dependencies = [ [[package]] name = "syn-solidity" -version = "0.8.13" +version = "0.8.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6bdaa7b9e815582ba343a20c66627437cf45f1c6fba7f69772cbfd1358c7e197" +checksum = "31e89d8bf2768d277f40573c83a02a099e96d96dd3104e13ea676194e61ac4b0" dependencies = [ "paste", "proc-macro2", @@ -4226,6 +4036,15 @@ dependencies = [ "syn 2.0.96", ] +[[package]] +name = "threadpool" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d050e60b33d41c19108b32cea32164033a9013fe3b46cbd4457559bfbf77afaa" +dependencies = [ + "num_cpus", +] + [[package]] name = "time" version = "0.3.37" @@ -4315,7 +4134,7 @@ dependencies = [ "bytes", "libc", "mio", - "parking_lot 0.12.3", + "parking_lot", "pin-project-lite", "signal-hook-registry", "socket2", diff --git a/near/Cargo.toml b/near/Cargo.toml index 5160e916..10bcda2f 100644 --- a/near/Cargo.toml +++ b/near/Cargo.toml @@ -26,18 +26,18 @@ panic = "abort" overflow-checks = true [workspace.dependencies] -near-sdk = "5.3.0" -near-contract-standards = "5.3.0" +near-sdk = "5.7.0" +near-contract-standards = "5.7.0" hex = "0.4.2" borsh = "1.5.1" serde = { version = "1.0.200", features = ["derive"] } -near-plugins = { git = "https://github.com/aurora-is-near/near-plugins", tag = "v0.4.0" } +near-plugins = { git = "https://github.com/aurora-is-near/near-plugins", tag = "v0.4.1" } omni-types = { path = "omni-types" } strum_macros = "0.26" -near-workspaces = "0.15.0" +near-workspaces = "0.16.0" tokio = "1.40" anyhow = "1" -alloy-sol-types = "=0.8.13" +alloy-sol-types = "0.8" ethereum-types = { version = "0.15.1", default-features = false, features = ["rlp", "serialize"] } rlp = "0.6" sha3 = "0.10.0" diff --git a/near/omni-types/Cargo.toml b/near/omni-types/Cargo.toml index dd28de9c..3ef2022a 100644 --- a/near/omni-types/Cargo.toml +++ b/near/omni-types/Cargo.toml @@ -13,13 +13,10 @@ serde.workspace = true strum_macros.workspace = true ethereum-types.workspace = true rlp.workspace = true -alloy-sol-types = "=0.8.13" -alloy-sol-macro = "=0.8.13" -alloy-sol-macro-input = "=0.8.13" -alloy-sol-macro-expander = "=0.8.13" -alloy-primitives = { version = "=0.8.13", features = ["rlp"] } +alloy-sol-types = "0.8" +alloy-sol-macro = "0.8" +alloy-primitives = { version = "0.8", features = ["rlp"] } alloy-rlp = "0.3" -syn-solidity = "=0.8.13" [target.'cfg(not(target_arch = "wasm32"))'.dependencies] sha3.workspace = true From 73e1fef2c8b106ce21de5ea5996eb8e1cb1963c1 Mon Sep 17 00:00:00 2001 From: Ivan Frolov Date: Sun, 12 Jan 2025 18:13:46 -0500 Subject: [PATCH 09/73] feat: scratch implementation of migration to cargo-near --- .github/workflows/check-wasm.yaml | 25 -- .github/workflows/rust.yaml | 16 +- Makefile | 35 +- near/Cargo.lock | 586 ++++++++++++++++++++++++++- near/build.sh | 101 ----- near/omni-tests/Cargo.toml | 3 +- near/omni-tests/src/fin_transfer.rs | 16 +- near/omni-tests/src/helpers.rs | 72 +++- near/omni-tests/src/init_transfer.rs | 24 +- near/omni-tests/src/omni_token.rs | 37 +- near/token-deployer/src/lib.rs | 3 +- 11 files changed, 722 insertions(+), 196 deletions(-) delete mode 100644 .github/workflows/check-wasm.yaml delete mode 100755 near/build.sh diff --git a/.github/workflows/check-wasm.yaml b/.github/workflows/check-wasm.yaml deleted file mode 100644 index d06fb8e7..00000000 --- a/.github/workflows/check-wasm.yaml +++ /dev/null @@ -1,25 +0,0 @@ -on: - push: - branches: [ main, develop ] - pull_request: - -name: Check WASM files -jobs: - test: - runs-on: ubuntu-latest - name: Check wasm files - steps: - - name: Clone the repository - uses: actions/checkout@v3 - - - name: Build NEAR contracts - run: | - cd near - ./build.sh - git status - changed_files=$(git status --porcelain --untracked-files=no | wc -l) - if [ $changed_files -gt 0 ]; then - echo 'contract changed, please rebuild contract' - exit 1 - fi - timeout-minutes: 40 diff --git a/.github/workflows/rust.yaml b/.github/workflows/rust.yaml index 94533273..53604f6c 100644 --- a/.github/workflows/rust.yaml +++ b/.github/workflows/rust.yaml @@ -36,7 +36,7 @@ jobs: cache-all-crates: true shared-key: "lint-${{ matrix.component }}" workspaces: ${{ matrix.component }} - + - name: Run clippy run: make clippy-${{ matrix.component }} @@ -62,17 +62,15 @@ jobs: cache-all-crates: true shared-key: "build-test" workspaces: near + + - name: Install cargo-near + run: | + curl --proto '=https' --tlsv1.2 -LsSf https://github.com/near/cargo-near/releases/latest/download/cargo-near-installer.sh | sh - name: Install nextest uses: taiki-e/install-action@v2 with: tool: nextest - - name: Build token contract - run: make rust-build-near - - - name: Build tests - run: cargo build --manifest-path ./near/Cargo.toml --tests --all-features - - - name: Run tests - run: cargo nextest run --manifest-path ./near/Cargo.toml + - name: Rust tests + run: make rust-run-tests diff --git a/Makefile b/Makefile index 47df9207..355df567 100644 --- a/Makefile +++ b/Makefile @@ -1,9 +1,14 @@ .PHONY: rust-lint rust-lint-near rust-lint-omni-relayer LINT_OPTIONS = -D warnings -D clippy::pedantic -A clippy::missing_errors_doc -A clippy::must_use_candidate -A clippy::module_name_repetitions -RUSTFLAGS = -C link-arg=-s NEAR_MANIFEST = ./near/Cargo.toml +OMNI_BRIDGE_MANIFEST = ./near/omni-bridge/Cargo.toml +OMNI_TOKEN_MANIFEST = ./near/omni-token/Cargo.toml +TOKEN_DEPLOYER = ./near/token-deployer/Cargo.toml +MOCK_PROVER_MANIFEST = ./near/mock/mock-prover/Cargo.toml +MOCK_TOKEN_MANIFEST = ./near/mock/mock-token/Cargo.toml + OMNI_RELAYER_MANIFEST = ./omni-relayer/Cargo.toml clippy: clippy-near clippy-omni-relayer @@ -20,11 +25,25 @@ fmt-omni-relayer: clippy-omni-relayer: cargo clippy --manifest-path $(OMNI_RELAYER_MANIFEST) -- $(LINT_OPTIONS) -rust-build-token: - RUSTFLAGS='$(RUSTFLAGS)' cargo build --target wasm32-unknown-unknown --release --manifest-path $(NEAR_MANIFEST) --package omni-token - -rust-build-near: rust-build-token - RUSTFLAGS='$(RUSTFLAGS)' cargo build --target wasm32-unknown-unknown --release --manifest-path $(NEAR_MANIFEST) - -test-near: rust-build-near +rust-build-omni-bridge: + cargo near build non-reproducible-wasm --manifest-path $(OMNI_BRIDGE_MANIFEST) --no-abi + +rust-build-omni-token: + cargo near build non-reproducible-wasm --manifest-path $(OMNI_TOKEN_MANIFEST) --no-abi + +rust-build-token-deployer: + cargo near build non-reproducible-wasm --manifest-path $(TOKEN_DEPLOYER) --no-abi + +rust-build-mock-prover: + cargo near build non-reproducible-wasm --manifest-path $(MOCK_PROVER_MANIFEST) --no-abi + +rust-build-mock-token: + cargo near build non-reproducible-wasm --manifest-path $(MOCK_TOKEN_MANIFEST) --no-abi + +rust-build-near: rust-build-omni-token rust-build-omni-bridge rust-build-token-deployer rust-build-mock-prover rust-build-mock-token + +rust-build-tests: rust-build-token-deployer + cargo build --manifest-path $(NEAR_MANIFEST) --tests --all-features + +rust-run-tests: rust-build-tests cargo nextest run --manifest-path $(NEAR_MANIFEST) diff --git a/near/Cargo.lock b/near/Cargo.lock index 3dc45b55..95241893 100644 --- a/near/Cargo.lock +++ b/near/Cargo.lock @@ -18,7 +18,7 @@ version = "0.24.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" dependencies = [ - "gimli", + "gimli 0.31.1", ] [[package]] @@ -187,6 +187,12 @@ dependencies = [ "libc", ] +[[package]] +name = "anstyle" +version = "1.0.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55cc3b69f167a1ef2e161439aa98aed94e6028e5f9a59be9a6ffb47aef1651f9" + [[package]] name = "anyhow" version = "1.0.95" @@ -420,7 +426,7 @@ dependencies = [ "siphasher", "tar", "ureq", - "zip", + "zip 0.6.6", ] [[package]] @@ -492,6 +498,29 @@ dependencies = [ "zeroize", ] +[[package]] +name = "bon" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97493a391b4b18ee918675fb8663e53646fd09321c58b46afa04e8ce2499c869" +dependencies = [ + "bon-macros", + "rustversion", +] + +[[package]] +name = "bon-macros" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a2af3eac944c12cdf4423eab70d310da0a8e5851a18ffb192c0a5e3f7ae1663" +dependencies = [ + "darling 0.20.10", + "ident_case", + "proc-macro2", + "quote", + "syn 2.0.96", +] + [[package]] name = "borsh" version = "1.5.3" @@ -515,6 +544,15 @@ dependencies = [ "syn 2.0.96", ] +[[package]] +name = "brownstone" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "030ea61398f34f1395ccbeb046fb68c87b631d1f34567fed0f0f11fa35d18d8d" +dependencies = [ + "arrayvec", +] + [[package]] name = "bs58" version = "0.4.0" @@ -587,11 +625,73 @@ dependencies = [ "pkg-config", ] +[[package]] +name = "camino" +version = "1.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b96ec4966b5813e2c0507c1f86115c8c5abaadc3980879c3424042a02fd1ad3" +dependencies = [ + "serde", +] + +[[package]] +name = "cargo-near-build" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e79fd27a64c34c965d14a81c28c93e512f77439fa4a8a501bb6c262e9e792fe" +dependencies = [ + "bon", + "bs58 0.5.1", + "camino", + "cargo_metadata", + "cc", + "colored", + "dunce", + "eyre", + "hex", + "humantime", + "indenter", + "libloading", + "near-abi", + "rustc_version 0.4.1", + "schemars", + "serde_json", + "sha2", + "symbolic-debuginfo", + "tempfile", + "tracing", + "wasm-opt", + "zstd 0.13.2", +] + +[[package]] +name = "cargo-platform" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e35af189006b9c0f00a064685c727031e3ed2d8020f7ba284d78cc2671bd36ea" +dependencies = [ + "serde", +] + +[[package]] +name = "cargo_metadata" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d886547e41f740c616ae73108f6eb70afe6d940c7bc697cb30f13daec073037" +dependencies = [ + "camino", + "cargo-platform", + "semver 1.0.24", + "serde", + "serde_json", + "thiserror 1.0.69", +] + [[package]] name = "cc" -version = "1.2.9" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8293772165d9345bdaaa39b45b2109591e63fe5e6fbc23c6ff930a048aa310b" +checksum = "fd9de9f2205d5ef3fd67e685b0df337994ddd4495e2a28d185500d0e1edfea47" dependencies = [ "jobserver", "libc", @@ -641,6 +741,52 @@ dependencies = [ "inout", ] +[[package]] +name = "clap" +version = "4.5.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8eb5e908ef3a6efbe1ed62520fb7287959888c88485abe072543190ecc66783" +dependencies = [ + "clap_builder", +] + +[[package]] +name = "clap_builder" +version = "4.5.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96b01801b5fc6a0a232407abc821660c9c6d25a1cafc0d4f85f29fb8d9afc121" +dependencies = [ + "anstyle", + "clap_lex", + "strsim 0.11.1", +] + +[[package]] +name = "clap_lex" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f46ad14479a25103f283c0f10005961cf086d8dc42205bb44c46ac563475dca6" + +[[package]] +name = "codespan-reporting" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e" +dependencies = [ + "termcolor", + "unicode-width", +] + +[[package]] +name = "colored" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "117725a109d387c937a1533ce01b450cbde6b88abceea8473c4d7a85853cda3c" +dependencies = [ + "lazy_static", + "windows-sys 0.59.0", +] + [[package]] name = "const-hex" version = "1.14.0" @@ -792,6 +938,65 @@ dependencies = [ "syn 2.0.96", ] +[[package]] +name = "cxx" +version = "1.0.136" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad7c7515609502d316ab9a24f67dc045132d93bfd3f00713389e90d9898bf30d" +dependencies = [ + "cc", + "cxxbridge-cmd", + "cxxbridge-flags", + "cxxbridge-macro", + "foldhash", + "link-cplusplus", +] + +[[package]] +name = "cxx-build" +version = "1.0.136" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8bfd16fca6fd420aebbd80d643c201ee4692114a0de208b790b9cd02ceae65fb" +dependencies = [ + "cc", + "codespan-reporting", + "proc-macro2", + "quote", + "scratch", + "syn 2.0.96", +] + +[[package]] +name = "cxxbridge-cmd" +version = "1.0.136" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c33fd49f5d956a1b7ee5f7a9768d58580c6752838d92e39d0d56439efdedc35" +dependencies = [ + "clap", + "codespan-reporting", + "proc-macro2", + "quote", + "syn 2.0.96", +] + +[[package]] +name = "cxxbridge-flags" +version = "1.0.136" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be0f1077278fac36299cce8446effd19fe93a95eedb10d39265f3bf67b3036c9" + +[[package]] +name = "cxxbridge-macro" +version = "1.0.136" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3da7e4d6e74af6b79031d264b2f13c3ea70af1978083741c41ffce9308f1f24f" +dependencies = [ + "proc-macro2", + "quote", + "rustversion", + "syn 2.0.96", +] + [[package]] name = "darling" version = "0.13.4" @@ -862,6 +1067,15 @@ dependencies = [ "syn 2.0.96", ] +[[package]] +name = "debugid" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6ee87af31d84ef885378aebca32be3d682b0e0dc119d5b4860a2c5bb5046730" +dependencies = [ + "uuid", +] + [[package]] name = "der" version = "0.7.9" @@ -991,6 +1205,12 @@ dependencies = [ "syn 2.0.96", ] +[[package]] +name = "dmsort" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0bc8fbe9441c17c9f46f75dfe27fa1ddb6c68a461ccaed0481419219d4f10d3" + [[package]] name = "dunce" version = "1.0.5" @@ -1051,6 +1271,16 @@ version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" +[[package]] +name = "elementtree" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f6319c9433cf1e95c60c8533978bccf0614f27f03bb4e514253468eeeaa7fe3" +dependencies = [ + "string_cache", + "xml-rs", +] + [[package]] name = "elliptic-curve" version = "0.13.8" @@ -1152,6 +1382,22 @@ dependencies = [ "rlp 0.6.1", ] +[[package]] +name = "eyre" +version = "0.6.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7cd915d99f24784cdc19fd37ef22b97e3ff0ae756c7e492e9fbfe897d61e2aec" +dependencies = [ + "indenter", + "once_cell", +] + +[[package]] +name = "fallible-iterator" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7" + [[package]] name = "fastrand" version = "2.3.0" @@ -1380,6 +1626,16 @@ dependencies = [ "wasi", ] +[[package]] +name = "gimli" +version = "0.26.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22030e2c5a68ec659fde1e949a745124b48e6fa8b045b7ed5bd1fe4ccc5c4e5d" +dependencies = [ + "fallible-iterator", + "stable_deref_trait", +] + [[package]] name = "gimli" version = "0.31.1" @@ -1392,6 +1648,17 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a8d1add55171497b4705a648c6b583acafb01d58050a51727785f0b2c8e0a2b2" +[[package]] +name = "goblin" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7666983ed0dd8d21a6f6576ee00053ca0926fb281a5522577a4dbd0f1b54143" +dependencies = [ + "log", + "plain", + "scroll 0.11.0", +] + [[package]] name = "group" version = "0.13.0" @@ -1525,6 +1792,12 @@ version = "1.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7d71d3574edd2771538b901e6549113b4006ece66150fb69c0fb6d9a2adae946" +[[package]] +name = "humantime" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" + [[package]] name = "hyper" version = "1.5.2" @@ -1803,6 +2076,18 @@ dependencies = [ "syn 2.0.96", ] +[[package]] +name = "indent_write" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0cfe9645a18782869361d9c8732246be7b410ad4e919d3609ebabdac00ba12c3" + +[[package]] +name = "indenter" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce23b50ad8242c51a442f3ff322d56b02f08852c77e4c0b4d3fd684abc89c683" + [[package]] name = "indexmap" version = "1.9.3" @@ -1873,6 +2158,12 @@ dependencies = [ "libc", ] +[[package]] +name = "joinery" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72167d68f5fce3b8655487b8038691a3c9984ee769590f93f2a631f4ad64e4f5" + [[package]] name = "js-sys" version = "0.3.76" @@ -1953,12 +2244,28 @@ dependencies = [ "spin", ] +[[package]] +name = "lazycell" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" + [[package]] name = "libc" version = "0.2.169" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a" +[[package]] +name = "libloading" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc2f4eb4bc735547cfed7c0a4922cbd04a4655978c09b54f1f7b228750664c34" +dependencies = [ + "cfg-if 1.0.0", + "windows-targets", +] + [[package]] name = "libm" version = "0.2.11" @@ -1976,6 +2283,15 @@ dependencies = [ "redox_syscall", ] +[[package]] +name = "link-cplusplus" +version = "1.0.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d240c6f7e1ba3a28b0249f774e6a9dd0175054b52dfbb61b16eb8505c3785c9" +dependencies = [ + "cc", +] + [[package]] name = "linux-raw-sys" version = "0.4.15" @@ -2019,6 +2335,15 @@ version = "2.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" +[[package]] +name = "memmap2" +version = "0.5.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83faa42c0a078c393f6b29d5db232d8be22776a891f8f56e5284faee4a20b327" +dependencies = [ + "libc", +] + [[package]] name = "memory_units" version = "0.4.0" @@ -2031,6 +2356,12 @@ version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" +[[package]] +name = "minimal-lexical" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" + [[package]] name = "miniz_oxide" version = "0.8.2" @@ -2582,6 +2913,35 @@ dependencies = [ "uriparse", ] +[[package]] +name = "new_debug_unreachable" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086" + +[[package]] +name = "nom" +version = "7.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" +dependencies = [ + "memchr", + "minimal-lexical", +] + +[[package]] +name = "nom-supreme" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aadc66631948f6b65da03be4c4cd8bd104d481697ecbb9bbd65719b1ec60bc9f" +dependencies = [ + "brownstone", + "indent_write", + "joinery", + "memchr", + "nom", +] + [[package]] name = "num-bigint" version = "0.3.3" @@ -2688,6 +3048,7 @@ name = "omni-tests" version = "0.1.0" dependencies = [ "anyhow", + "cargo-near-build", "near-sdk", "near-workspaces", "omni-types", @@ -2863,6 +3224,17 @@ dependencies = [ "sha2", ] +[[package]] +name = "pdb" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13f4d162ecaaa1467de5afbe62d597757b674b51da8bb4e587430c5fdb2af7aa" +dependencies = [ + "fallible-iterator", + "scroll 0.10.2", + "uuid", +] + [[package]] name = "percent-encoding" version = "2.3.1" @@ -2880,6 +3252,15 @@ dependencies = [ "ucd-trie", ] +[[package]] +name = "phf_shared" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096" +dependencies = [ + "siphasher", +] + [[package]] name = "pin-project" version = "1.1.8" @@ -2928,6 +3309,12 @@ version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2" +[[package]] +name = "plain" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4596b6d070b27117e987119b4dac604f3c58cfb0b191112e24771b2faeac1a6" + [[package]] name = "powerfmt" version = "0.2.0" @@ -2943,6 +3330,12 @@ dependencies = [ "zerocopy", ] +[[package]] +name = "precomputed-hash" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" + [[package]] name = "prettyplease" version = "0.1.25" @@ -3505,6 +3898,38 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" +[[package]] +name = "scratch" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3cf7c11c38cb994f3d40e8a8cde3bbd1f72a435e4c49e85d6553d8312306152" + +[[package]] +name = "scroll" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fda28d4b4830b807a8b43f7b0e6b5df875311b3e7621d84577188c175b6ec1ec" + +[[package]] +name = "scroll" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04c565b551bafbef4157586fa379538366e4385d42082f255bfd96e4fe8519da" +dependencies = [ + "scroll_derive", +] + +[[package]] +name = "scroll_derive" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1db149f81d46d2deba7cd3c50772474707729550221e69588478ebf9ada425ae" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.96", +] + [[package]] name = "sec1" version = "0.7.3" @@ -3575,6 +4000,9 @@ name = "semver" version = "1.0.24" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3cb6eb87a131f756572d7fb904f6e7b68633f09cca868c5df1c4b8d1a694bbba" +dependencies = [ + "serde", +] [[package]] name = "semver-parser" @@ -3831,6 +4259,20 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" +[[package]] +name = "string_cache" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f91138e76242f575eb1d3b38b4f1362f10d3a43f47d182a5b359af488a02293b" +dependencies = [ + "new_debug_unreachable", + "once_cell", + "parking_lot", + "phf_shared", + "precomputed-hash", + "serde", +] + [[package]] name = "strsim" version = "0.10.0" @@ -3890,6 +4332,48 @@ version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" +[[package]] +name = "symbolic-common" +version = "8.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f551f902d5642e58039aee6a9021a61037926af96e071816361644983966f540" +dependencies = [ + "debugid", + "memmap2", + "stable_deref_trait", + "uuid", +] + +[[package]] +name = "symbolic-debuginfo" +version = "8.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1165dabf9fc1d6bb6819c2c0e27c8dd0e3068d2c53cf186d319788e96517f0d6" +dependencies = [ + "bitvec", + "dmsort", + "elementtree", + "fallible-iterator", + "flate2", + "gimli 0.26.2", + "goblin", + "lazy_static", + "lazycell", + "nom", + "nom-supreme", + "parking_lot", + "pdb", + "regex", + "scroll 0.11.0", + "serde", + "serde_json", + "smallvec", + "symbolic-common", + "thiserror 1.0.69", + "wasmparser", + "zip 0.5.13", +] + [[package]] name = "syn" version = "1.0.109" @@ -3996,6 +4480,15 @@ dependencies = [ "windows-sys 0.59.0", ] +[[package]] +name = "termcolor" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755" +dependencies = [ + "winapi-util", +] + [[package]] name = "thiserror" version = "1.0.69" @@ -4335,6 +4828,12 @@ version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83" +[[package]] +name = "unicode-width" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" + [[package]] name = "unicode-xid" version = "0.2.6" @@ -4403,6 +4902,12 @@ version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" +[[package]] +name = "uuid" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7" + [[package]] name = "valuable" version = "0.1.0" @@ -4512,6 +5017,52 @@ version = "0.2.99" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "943aab3fdaaa029a6e0271b35ea10b72b943135afe9bffca82384098ad0e06a6" +[[package]] +name = "wasm-opt" +version = "0.116.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2fd87a4c135535ffed86123b6fb0f0a5a0bc89e50416c942c5f0662c645f679c" +dependencies = [ + "anyhow", + "libc", + "strum 0.24.1", + "strum_macros 0.24.3", + "tempfile", + "thiserror 1.0.69", + "wasm-opt-cxx-sys", + "wasm-opt-sys", +] + +[[package]] +name = "wasm-opt-cxx-sys" +version = "0.116.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c57b28207aa724318fcec6575fe74803c23f6f266fce10cbc9f3f116762f12e" +dependencies = [ + "anyhow", + "cxx", + "cxx-build", + "wasm-opt-sys", +] + +[[package]] +name = "wasm-opt-sys" +version = "0.116.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a1cce564dc768dacbdb718fc29df2dba80bd21cb47d8f77ae7e3d95ceb98cbe" +dependencies = [ + "anyhow", + "cc", + "cxx", + "cxx-build", +] + +[[package]] +name = "wasmparser" +version = "0.83.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "718ed7c55c2add6548cca3ddd6383d738cd73b892df400e96b9aa876f0141d7a" + [[package]] name = "web-sys" version = "0.3.76" @@ -4559,6 +5110,15 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" +[[package]] +name = "winapi-util" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" +dependencies = [ + "windows-sys 0.59.0", +] + [[package]] name = "winapi-x86_64-pc-windows-gnu" version = "0.4.0" @@ -4739,6 +5299,12 @@ dependencies = [ "rustix", ] +[[package]] +name = "xml-rs" +version = "0.8.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c5b940ebc25896e71dd073bad2dbaa2abfe97b0a391415e22ad1326d9c54e3c4" + [[package]] name = "yoke" version = "0.7.5" @@ -4860,6 +5426,18 @@ dependencies = [ "syn 2.0.96", ] +[[package]] +name = "zip" +version = "0.5.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93ab48844d61251bb3835145c521d88aa4031d7139e8485990f60ca911fa0815" +dependencies = [ + "byteorder", + "crc32fast", + "flate2", + "thiserror 1.0.69", +] + [[package]] name = "zip" version = "0.6.6" diff --git a/near/build.sh b/near/build.sh deleted file mode 100755 index a7c89ad2..00000000 --- a/near/build.sh +++ /dev/null @@ -1,101 +0,0 @@ -#!/usr/bin/env bash - -# Exit script as soon as a command fails. -set -e - -DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" -DEFAULT_RES_DIR="$DIR/res" -RES_DIR=$DEFAULT_RES_DIR - -show_help() { - echo "Usage: $0 [OPTION] [COMPONENT_DIR]" - echo - echo "Build NEAR smart contracts." - echo - echo "Options:" - echo " -h, --help Display this help message" - echo " -o, --output-dir DIR Specify output directory for WASM files (default: ./res)" - echo - echo "Arguments:" - echo " COMPONENT_DIR Optional. Directory name of the specific component to build" - echo " If not provided, builds all components" - echo - echo "Examples:" - echo " $0 # Build all contracts" - echo " $0 omni-bridge # Build only omni-bridge contract" - echo " $0 token-deployer # Build only token-deployer contract" - echo " $0 -o ../dist # Build all contracts and output to ../dist" - echo -} - -# Parse command line arguments -while [[ $# -gt 0 ]]; do - case $1 in - -h|--help) - show_help - exit 0 - ;; - -o|--output-dir) - if [ -z "$2" ]; then - echo "Error: Output directory not specified" - exit 1 - fi - RES_DIR="$2" - shift 2 - ;; - *) - COMPONENT="$1" - shift - ;; - esac -done - -# Determine Docker user flags -if [[ -z "$BUILDKITE" ]] && [[ "$(uname -s)" != "Darwin" ]]; -then - userflag="-u $UID:$UID" -else - userflag="" -fi - -# Determine architecture-specific tag -arch=`uname -m` -if [ "$arch" == "arm64" ] -then - tag=":latest-arm64" -else - tag="" -fi - -if [ -z "$COMPONENT" ]; then - BUILD_CMD="cargo build --workspace --target wasm32-unknown-unknown --release" - echo "Building entire workspace..." -else - if [ ! -d "$DIR/$COMPONENT" ]; then - echo "Error: Directory '$COMPONENT' not found in $DIR" - exit 1 - fi - BUILD_CMD="cargo build --manifest-path $COMPONENT/Cargo.toml --target wasm32-unknown-unknown --release" - echo "Building component: $COMPONENT" -fi - -docker run \ - --rm \ - --mount type=bind,source=$DIR,target=/host \ - --cap-add=SYS_PTRACE --security-opt seccomp=unconfined $userflag \ - -w /host \ - -e RUSTFLAGS='-C link-arg=-s' \ - nearprotocol/contract-builder$tag \ - /bin/bash -c "rustup target add wasm32-unknown-unknown && $BUILD_CMD" - -mkdir -p $RES_DIR - -if [ -z "$COMPONENT" ]; then - find $DIR/target/wasm32-unknown-unknown/release/ -name "*.wasm" -maxdepth 1 -exec cp -f {} $RES_DIR/ \; -else - binary_name=$(basename $COMPONENT | tr '-' '_') - find $DIR/target/wasm32-unknown-unknown/release/ -name "$binary_name.wasm" -maxdepth 1 -exec cp -f {} $RES_DIR/ \; -fi - -echo "Build completed! Contract files are in the $RES_DIR directory:" -ls -l $RES_DIR diff --git a/near/omni-tests/Cargo.toml b/near/omni-tests/Cargo.toml index cbbbb642..da17083f 100644 --- a/near/omni-tests/Cargo.toml +++ b/near/omni-tests/Cargo.toml @@ -9,9 +9,10 @@ publish = false crate-type = ["cdylib", "rlib"] [dev-dependencies] +cargo-near-build = "0.4.2" near-sdk.workspace = true near-workspaces.workspace = true tokio.workspace = true anyhow.workspace = true omni-types.workspace = true -rstest.workspace = true \ No newline at end of file +rstest.workspace = true diff --git a/near/omni-tests/src/fin_transfer.rs b/near/omni-tests/src/fin_transfer.rs index f3bb8bcd..bafd71be 100644 --- a/near/omni-tests/src/fin_transfer.rs +++ b/near/omni-tests/src/fin_transfer.rs @@ -2,7 +2,7 @@ mod tests { use crate::helpers::tests::{ account_n, eth_eoa_address, eth_factory_address, eth_token_address, relayer_account_id, - LOCKER_PATH, MOCK_PROVER_PATH, MOCK_TOKEN_PATH, NEP141_DEPOSIT, + LOCKER_WASM, MOCK_PROVER_WASM, MOCK_TOKEN_WASM, NEP141_DEPOSIT, }; use near_sdk::{borsh, json_types::U128, serde_json::json, AccountId}; use near_workspaces::types::NearToken; @@ -73,9 +73,9 @@ mod tests { "Expected an error but got success" ), Err(result_error) => { - let error = expected_error.expect(&format!( - "Got an error {result_error} when none was expected" - )); + let error = expected_error.unwrap_or_else(|| { + panic!("Got an error {result_error} when none was expected") + }); assert!( result_error.to_string().contains(error), "Wrong error. Got: {}, Expected: {}", @@ -92,8 +92,9 @@ mod tests { fee: u128, ) -> anyhow::Result<()> { let worker = near_workspaces::sandbox().await?; + // Deploy and init FT token - let token_contract = worker.dev_deploy(&std::fs::read(MOCK_TOKEN_PATH)?).await?; + let token_contract = worker.dev_deploy(&MOCK_TOKEN_WASM).await?; token_contract .call("new_default_meta") .args_json(json!({ @@ -105,9 +106,10 @@ mod tests { .await? .into_result()?; - let prover_contract = worker.dev_deploy(&std::fs::read(MOCK_PROVER_PATH)?).await?; + let prover_contract = worker.dev_deploy(&MOCK_PROVER_WASM).await?; + // Deploy and init locker - let locker_contract = worker.dev_deploy(&std::fs::read(LOCKER_PATH)?).await?; + let locker_contract = worker.dev_deploy(&LOCKER_WASM).await?; locker_contract .call("new") .args_json(json!({ diff --git a/near/omni-tests/src/helpers.rs b/near/omni-tests/src/helpers.rs index 72d667f0..fbc9569e 100644 --- a/near/omni-tests/src/helpers.rs +++ b/near/omni-tests/src/helpers.rs @@ -1,5 +1,7 @@ #[cfg(test)] pub mod tests { + use std::{str::FromStr, sync::LazyLock}; + use near_sdk::{borsh, json_types::U128, serde_json, AccountId}; use near_workspaces::types::NearToken; use omni_types::{ @@ -8,13 +10,67 @@ pub mod tests { BasicMetadata, ChainKind, Nonce, OmniAddress, TransferId, }; - pub const MOCK_TOKEN_PATH: &str = "./../target/wasm32-unknown-unknown/release/mock_token.wasm"; - pub const MOCK_PROVER_PATH: &str = - "./../target/wasm32-unknown-unknown/release/mock_prover.wasm"; - pub const LOCKER_PATH: &str = "./../target/wasm32-unknown-unknown/release/omni_bridge.wasm"; + //pub const MOCK_TOKEN_PATH: &str = "./../target/wasm32-unknown-unknown/release/mock_token.wasm"; + //pub const MOCK_PROVER_PATH: &str = + // "./../target/wasm32-unknown-unknown/release/mock_prover.wasm"; + //pub const LOCKER_PATH: &str = "./../target/wasm32-unknown-unknown/release/omni_bridge.wasm"; + //pub const TOKEN_DEPLOYER_PATH: &str = + // "./../target/wasm32-unknown-unknown/release/token_deployer.wasm"; + pub const NEP141_DEPOSIT: NearToken = NearToken::from_yoctonear(1250000000000000000000); - pub const TOKEN_DEPLOYER_PATH: &str = - "./../target/wasm32-unknown-unknown/release/token_deployer.wasm"; + + pub static MOCK_TOKEN_WASM: LazyLock> = LazyLock::new(|| { + let artifact = cargo_near_build::build(cargo_near_build::BuildOpts { + manifest_path: Some( + cargo_near_build::camino::Utf8PathBuf::from_str("../mock/mock-token/Cargo.toml") + .expect("camino PathBuf from str"), + ), + no_abi: true, + ..Default::default() + }) + .expect("building `mock-token` contract for tests"); + + std::fs::read(&artifact.path).unwrap() + }); + + pub static MOCK_PROVER_WASM: LazyLock> = LazyLock::new(|| { + let artifact = cargo_near_build::build(cargo_near_build::BuildOpts { + manifest_path: Some( + cargo_near_build::camino::Utf8PathBuf::from_str("../mock/mock-prover/Cargo.toml") + .expect("camino PathBuf from str"), + ), + no_abi: true, + ..Default::default() + }) + .expect("building `mock-prover` contract for tests"); + std::fs::read(&artifact.path).unwrap() + }); + + pub static LOCKER_WASM: LazyLock> = LazyLock::new(|| { + let artifact = cargo_near_build::build(cargo_near_build::BuildOpts { + manifest_path: Some( + cargo_near_build::camino::Utf8PathBuf::from_str("../omni-bridge/Cargo.toml") + .expect("camino PathBuf from str"), + ), + no_abi: true, + ..Default::default() + }) + .expect("building `omni-bridge` contract for tests"); + std::fs::read(&artifact.path).unwrap() + }); + + pub static TOKEN_DEPLOYER_WASM: LazyLock> = LazyLock::new(|| { + let artifact = cargo_near_build::build(cargo_near_build::BuildOpts { + manifest_path: Some( + cargo_near_build::camino::Utf8PathBuf::from_str("../token-deployer/Cargo.toml") + .expect("camino PathBuf from str"), + ), + no_abi: true, + ..Default::default() + }) + .expect("building `token-deployer` contract for tests"); + std::fs::read(&artifact.path).unwrap() + }); pub fn relayer_account_id() -> AccountId { "relayer".parse().unwrap() @@ -84,8 +140,8 @@ pub mod tests { ) -> ClaimFeeArgs { let fin_transfer = FinTransferMessage { transfer_id: TransferId { - origin_chain: origin_chain, - origin_nonce: origin_nonce, + origin_chain, + origin_nonce, }, fee_recipient: fee_recipient.clone(), amount: U128(amount), diff --git a/near/omni-tests/src/init_transfer.rs b/near/omni-tests/src/init_transfer.rs index 4e0b13bb..f30b0fe1 100644 --- a/near/omni-tests/src/init_transfer.rs +++ b/near/omni-tests/src/init_transfer.rs @@ -2,8 +2,8 @@ mod tests { use crate::helpers::tests::{ account_n, eth_eoa_address, eth_factory_address, eth_token_address, get_bind_token_args, - get_claim_fee_args_near, get_event_data, relayer_account_id, LOCKER_PATH, MOCK_PROVER_PATH, - MOCK_TOKEN_PATH, NEP141_DEPOSIT, + get_claim_fee_args_near, get_event_data, relayer_account_id, LOCKER_WASM, MOCK_PROVER_WASM, + MOCK_TOKEN_WASM, NEP141_DEPOSIT, }; use anyhow::Ok; use near_sdk::{ @@ -33,7 +33,7 @@ mod tests { async fn new(sender_balance_token: u128) -> anyhow::Result { let worker = near_workspaces::sandbox().await?; // Deploy and initialize FT token - let token_contract = worker.dev_deploy(&std::fs::read(MOCK_TOKEN_PATH)?).await?; + let token_contract = worker.dev_deploy(&MOCK_TOKEN_WASM).await?; token_contract .call("new_default_meta") .args_json(json!({ @@ -45,9 +45,9 @@ mod tests { .await? .into_result()?; - let prover_contract = worker.dev_deploy(&std::fs::read(MOCK_PROVER_PATH)?).await?; + let prover_contract = worker.dev_deploy(&MOCK_PROVER_WASM).await?; // Deploy and initialize locker - let locker_contract = worker.dev_deploy(&std::fs::read(LOCKER_PATH)?).await?; + let locker_contract = worker.dev_deploy(&LOCKER_WASM).await?; locker_contract .call("new") .args_json(json!({ @@ -146,7 +146,7 @@ mod tests { locker_contract .call("bind_token") .args_borsh(get_bind_token_args( - &token_contract.id(), + token_contract.id(), ð_token_address(), ð_factory_address, 24, @@ -259,7 +259,7 @@ mod tests { let claim_fee_args = get_claim_fee_args_near( ChainKind::Near, ChainKind::Eth, - transfer_message.origin_nonce.into(), + transfer_message.origin_nonce, env.relayer_account.id().clone(), transfer_amount - signing_fee.fee.0, env.eth_factory_address.clone(), @@ -338,8 +338,7 @@ mod tests { update_fee .native_fee .0 - .checked_sub(transfer_message.fee.native_fee.0) - .unwrap_or(0), + .saturating_sub(transfer_message.fee.native_fee.0), ), // To be updated once the proof is implemented UpdateFee::Proof(_) => NearToken::from_yoctonear(0), @@ -373,11 +372,11 @@ mod tests { } async fn get_test_balances(env: &TestEnv) -> anyhow::Result<(U128, U128, U128, NearToken)> { let user_balance_token: U128 = - get_token_balance(&env.token_contract, &env.sender_account.id()).await?; + get_token_balance(&env.token_contract, env.sender_account.id()).await?; let locker_balance_token: U128 = - get_token_balance(&env.token_contract, &env.locker_contract.id()).await?; + get_token_balance(&env.token_contract, env.locker_contract.id()).await?; let relayer_balance_token: U128 = - get_token_balance(&env.token_contract, &env.relayer_account.id()).await?; + get_token_balance(&env.token_contract, env.relayer_account.id()).await?; let relayer_balance_near: NearToken = env .worker .view_account(env.relayer_account.id()) @@ -662,7 +661,6 @@ mod tests { ) .await .unwrap(); - () } #[tokio::test] diff --git a/near/omni-tests/src/omni_token.rs b/near/omni-tests/src/omni_token.rs index 2a24c778..2691d7b7 100644 --- a/near/omni-tests/src/omni_token.rs +++ b/near/omni-tests/src/omni_token.rs @@ -1,12 +1,7 @@ #[cfg(test)] mod tests { - use crate::helpers::tests::{ - account_n, arb_factory_address, arb_token_address, base_factory_address, - base_token_address, eth_eoa_address, eth_factory_address, eth_token_address, - get_test_deploy_token_args, sol_factory_address, sol_token_address, LOCKER_PATH, - MOCK_PROVER_PATH, NEP141_DEPOSIT, TOKEN_DEPLOYER_PATH, - }; - use anyhow; + use std::str::FromStr; + use near_sdk::borsh; use near_sdk::json_types::U128; use near_sdk::serde_json::json; @@ -17,7 +12,13 @@ mod tests { use omni_types::Fee; use omni_types::{BasicMetadata, ChainKind, OmniAddress}; use rstest::rstest; - use std::str::FromStr; + + use crate::helpers::tests::{ + account_n, arb_factory_address, arb_token_address, base_factory_address, + base_token_address, eth_eoa_address, eth_factory_address, eth_token_address, + get_test_deploy_token_args, sol_factory_address, sol_token_address, LOCKER_WASM, + MOCK_PROVER_WASM, NEP141_DEPOSIT, TOKEN_DEPLOYER_WASM, + }; struct TestEnv { worker: near_workspaces::Worker, @@ -38,11 +39,11 @@ mod tests { }; // Setup prover - let prover_contract = worker.dev_deploy(&std::fs::read(MOCK_PROVER_PATH)?).await?; + let prover_contract = worker.dev_deploy(&MOCK_PROVER_WASM).await?; // Setup locker - let locker = worker.dev_deploy(&std::fs::read(LOCKER_PATH)?).await?; - locker + let locker_contract = worker.dev_deploy(&LOCKER_WASM).await?; + locker_contract .call("new") .args_json(json!({ "prover_account": prover_contract.id(), @@ -60,7 +61,7 @@ mod tests { .create_tla_and_deploy( account_n(1), worker.dev_generate().await.1, - &std::fs::read(TOKEN_DEPLOYER_PATH)?, + &TOKEN_DEPLOYER_WASM, ) .await? .unwrap(); @@ -68,7 +69,7 @@ mod tests { token_deployer .call("new") .args_json(json!({ - "controller": locker.id(), + "controller": locker_contract.id(), "dao": AccountId::from_str("dao.near").unwrap(), })) .max_gas() @@ -77,7 +78,7 @@ mod tests { .into_result()?; // Configure locker - locker + locker_contract .call("add_token_deployer") .args_json(json!({ "chain": init_token_address.get_chain(), @@ -96,7 +97,7 @@ mod tests { _ => panic!("Unsupported chain"), }; - locker + locker_contract .call("add_factory") .args_json(json!({ "address": factory_contract_address, @@ -109,7 +110,7 @@ mod tests { // Deploy token let token_contract = Self::deploy_token( &worker, - &locker, + &locker_contract, &init_token_address, &factory_contract_address, &token_metadata, @@ -118,7 +119,7 @@ mod tests { Ok(Self { worker, - locker, + locker: locker_contract, token_contract, init_token_address, factory_contract_address, @@ -168,7 +169,7 @@ mod tests { .call(locker.id(), "deploy_token") .args_borsh(get_test_deploy_token_args( init_token_address, - &factoty_contract_address, + factoty_contract_address, token_metadata, )) .deposit(required_storage) diff --git a/near/token-deployer/src/lib.rs b/near/token-deployer/src/lib.rs index 89e0b430..cdf4f745 100644 --- a/near/token-deployer/src/lib.rs +++ b/near/token-deployer/src/lib.rs @@ -12,8 +12,7 @@ const BRIDGE_TOKEN_INIT_BALANCE: NearToken = NearToken::from_near(3); const NO_DEPOSIT: NearToken = NearToken::from_near(0); const OMNI_TOKEN_INIT_GAS: Gas = Gas::from_tgas(10); -const BRIDGE_TOKEN_BINARY: &[u8] = - include_bytes!("../../target/wasm32-unknown-unknown/release/omni_token.wasm"); +const BRIDGE_TOKEN_BINARY: &[u8] = include_bytes!("../../target/near/omni_token/omni_token.wasm"); #[derive(AccessControlRole, Deserialize, Serialize, Copy, Clone)] #[serde(crate = "near_sdk::serde")] From 642e5cf6ce89b1818dfb491ab957f784edd10238 Mon Sep 17 00:00:00 2001 From: Ivan Frolov Date: Sun, 12 Jan 2025 18:29:29 -0500 Subject: [PATCH 10/73] fix: lint job --- .github/workflows/rust.yaml | 4 ++++ Makefile | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/.github/workflows/rust.yaml b/.github/workflows/rust.yaml index 53604f6c..85b9012c 100644 --- a/.github/workflows/rust.yaml +++ b/.github/workflows/rust.yaml @@ -36,6 +36,10 @@ jobs: cache-all-crates: true shared-key: "lint-${{ matrix.component }}" workspaces: ${{ matrix.component }} + + - name: Install cargo-near + run: | + curl --proto '=https' --tlsv1.2 -LsSf https://github.com/near/cargo-near/releases/latest/download/cargo-near-installer.sh | sh - name: Run clippy run: make clippy-${{ matrix.component }} diff --git a/Makefile b/Makefile index 355df567..7c10790d 100644 --- a/Makefile +++ b/Makefile @@ -13,7 +13,7 @@ OMNI_RELAYER_MANIFEST = ./omni-relayer/Cargo.toml clippy: clippy-near clippy-omni-relayer -clippy-near: rust-build-token +clippy-near: rust-build-omni-token cargo clippy --manifest-path $(NEAR_MANIFEST) -- $(LINT_OPTIONS) fmt-near: From e9c462a911c8f798abe92eb9e9083a00efe67ddb Mon Sep 17 00:00:00 2001 From: Ivan Frolov Date: Sun, 12 Jan 2025 19:53:23 -0500 Subject: [PATCH 11/73] chore: updated build process --- Makefile | 2 +- near/omni-tests/src/helpers.rs | 8 -------- 2 files changed, 1 insertion(+), 9 deletions(-) diff --git a/Makefile b/Makefile index 7c10790d..68c80f9f 100644 --- a/Makefile +++ b/Makefile @@ -42,7 +42,7 @@ rust-build-mock-token: rust-build-near: rust-build-omni-token rust-build-omni-bridge rust-build-token-deployer rust-build-mock-prover rust-build-mock-token -rust-build-tests: rust-build-token-deployer +rust-build-tests: rust-build-omni-token cargo build --manifest-path $(NEAR_MANIFEST) --tests --all-features rust-run-tests: rust-build-tests diff --git a/near/omni-tests/src/helpers.rs b/near/omni-tests/src/helpers.rs index fbc9569e..89e5919f 100644 --- a/near/omni-tests/src/helpers.rs +++ b/near/omni-tests/src/helpers.rs @@ -10,13 +10,6 @@ pub mod tests { BasicMetadata, ChainKind, Nonce, OmniAddress, TransferId, }; - //pub const MOCK_TOKEN_PATH: &str = "./../target/wasm32-unknown-unknown/release/mock_token.wasm"; - //pub const MOCK_PROVER_PATH: &str = - // "./../target/wasm32-unknown-unknown/release/mock_prover.wasm"; - //pub const LOCKER_PATH: &str = "./../target/wasm32-unknown-unknown/release/omni_bridge.wasm"; - //pub const TOKEN_DEPLOYER_PATH: &str = - // "./../target/wasm32-unknown-unknown/release/token_deployer.wasm"; - pub const NEP141_DEPOSIT: NearToken = NearToken::from_yoctonear(1250000000000000000000); pub static MOCK_TOKEN_WASM: LazyLock> = LazyLock::new(|| { @@ -29,7 +22,6 @@ pub mod tests { ..Default::default() }) .expect("building `mock-token` contract for tests"); - std::fs::read(&artifact.path).unwrap() }); From 6c94a7e7f9eb883c5dc6d6a909fc344478ee51f3 Mon Sep 17 00:00:00 2001 From: Ivan Frolov Date: Sun, 12 Jan 2025 20:37:23 -0500 Subject: [PATCH 12/73] chore: bring back `check_wasm.yaml` + `build.sh` for now --- .github/workflows/check_wasm.yaml | 25 ++++++++ near/build.sh | 101 ++++++++++++++++++++++++++++++ 2 files changed, 126 insertions(+) create mode 100644 .github/workflows/check_wasm.yaml create mode 100755 near/build.sh diff --git a/.github/workflows/check_wasm.yaml b/.github/workflows/check_wasm.yaml new file mode 100644 index 00000000..d06fb8e7 --- /dev/null +++ b/.github/workflows/check_wasm.yaml @@ -0,0 +1,25 @@ +on: + push: + branches: [ main, develop ] + pull_request: + +name: Check WASM files +jobs: + test: + runs-on: ubuntu-latest + name: Check wasm files + steps: + - name: Clone the repository + uses: actions/checkout@v3 + + - name: Build NEAR contracts + run: | + cd near + ./build.sh + git status + changed_files=$(git status --porcelain --untracked-files=no | wc -l) + if [ $changed_files -gt 0 ]; then + echo 'contract changed, please rebuild contract' + exit 1 + fi + timeout-minutes: 40 diff --git a/near/build.sh b/near/build.sh new file mode 100755 index 00000000..a7c89ad2 --- /dev/null +++ b/near/build.sh @@ -0,0 +1,101 @@ +#!/usr/bin/env bash + +# Exit script as soon as a command fails. +set -e + +DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" +DEFAULT_RES_DIR="$DIR/res" +RES_DIR=$DEFAULT_RES_DIR + +show_help() { + echo "Usage: $0 [OPTION] [COMPONENT_DIR]" + echo + echo "Build NEAR smart contracts." + echo + echo "Options:" + echo " -h, --help Display this help message" + echo " -o, --output-dir DIR Specify output directory for WASM files (default: ./res)" + echo + echo "Arguments:" + echo " COMPONENT_DIR Optional. Directory name of the specific component to build" + echo " If not provided, builds all components" + echo + echo "Examples:" + echo " $0 # Build all contracts" + echo " $0 omni-bridge # Build only omni-bridge contract" + echo " $0 token-deployer # Build only token-deployer contract" + echo " $0 -o ../dist # Build all contracts and output to ../dist" + echo +} + +# Parse command line arguments +while [[ $# -gt 0 ]]; do + case $1 in + -h|--help) + show_help + exit 0 + ;; + -o|--output-dir) + if [ -z "$2" ]; then + echo "Error: Output directory not specified" + exit 1 + fi + RES_DIR="$2" + shift 2 + ;; + *) + COMPONENT="$1" + shift + ;; + esac +done + +# Determine Docker user flags +if [[ -z "$BUILDKITE" ]] && [[ "$(uname -s)" != "Darwin" ]]; +then + userflag="-u $UID:$UID" +else + userflag="" +fi + +# Determine architecture-specific tag +arch=`uname -m` +if [ "$arch" == "arm64" ] +then + tag=":latest-arm64" +else + tag="" +fi + +if [ -z "$COMPONENT" ]; then + BUILD_CMD="cargo build --workspace --target wasm32-unknown-unknown --release" + echo "Building entire workspace..." +else + if [ ! -d "$DIR/$COMPONENT" ]; then + echo "Error: Directory '$COMPONENT' not found in $DIR" + exit 1 + fi + BUILD_CMD="cargo build --manifest-path $COMPONENT/Cargo.toml --target wasm32-unknown-unknown --release" + echo "Building component: $COMPONENT" +fi + +docker run \ + --rm \ + --mount type=bind,source=$DIR,target=/host \ + --cap-add=SYS_PTRACE --security-opt seccomp=unconfined $userflag \ + -w /host \ + -e RUSTFLAGS='-C link-arg=-s' \ + nearprotocol/contract-builder$tag \ + /bin/bash -c "rustup target add wasm32-unknown-unknown && $BUILD_CMD" + +mkdir -p $RES_DIR + +if [ -z "$COMPONENT" ]; then + find $DIR/target/wasm32-unknown-unknown/release/ -name "*.wasm" -maxdepth 1 -exec cp -f {} $RES_DIR/ \; +else + binary_name=$(basename $COMPONENT | tr '-' '_') + find $DIR/target/wasm32-unknown-unknown/release/ -name "$binary_name.wasm" -maxdepth 1 -exec cp -f {} $RES_DIR/ \; +fi + +echo "Build completed! Contract files are in the $RES_DIR directory:" +ls -l $RES_DIR From ca4faef2898f25a70898158758d8009d3bb3f6dc Mon Sep 17 00:00:00 2001 From: Ivan Frolov Date: Sun, 12 Jan 2025 20:40:18 -0500 Subject: [PATCH 13/73] chore: minor changes --- .github/workflows/{check_wasm.yaml => check-wasm.yaml} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename .github/workflows/{check_wasm.yaml => check-wasm.yaml} (100%) diff --git a/.github/workflows/check_wasm.yaml b/.github/workflows/check-wasm.yaml similarity index 100% rename from .github/workflows/check_wasm.yaml rename to .github/workflows/check-wasm.yaml From 973bb5293145fe6aed988472ddbb657e9b872cef Mon Sep 17 00:00:00 2001 From: Ivan Frolov Date: Sun, 12 Jan 2025 21:56:32 -0500 Subject: [PATCH 14/73] fix: dependency issue with `omni-token` --- Makefile | 6 +++--- near/Cargo.lock | 1 + near/Cargo.toml | 1 + near/build.sh | 4 ++-- near/omni-tests/Cargo.toml | 2 +- near/token-deployer/Cargo.toml | 3 +++ near/token-deployer/build.rs | 34 ++++++++++++++++++++++++++++++++++ near/token-deployer/src/lib.rs | 2 +- 8 files changed, 46 insertions(+), 7 deletions(-) create mode 100644 near/token-deployer/build.rs diff --git a/Makefile b/Makefile index 68c80f9f..78fcc416 100644 --- a/Makefile +++ b/Makefile @@ -13,7 +13,7 @@ OMNI_RELAYER_MANIFEST = ./omni-relayer/Cargo.toml clippy: clippy-near clippy-omni-relayer -clippy-near: rust-build-omni-token +clippy-near: cargo clippy --manifest-path $(NEAR_MANIFEST) -- $(LINT_OPTIONS) fmt-near: @@ -40,9 +40,9 @@ rust-build-mock-prover: rust-build-mock-token: cargo near build non-reproducible-wasm --manifest-path $(MOCK_TOKEN_MANIFEST) --no-abi -rust-build-near: rust-build-omni-token rust-build-omni-bridge rust-build-token-deployer rust-build-mock-prover rust-build-mock-token +rust-build-near: rust-build-omni-bridge rust-build-omni-token rust-build-token-deployer rust-build-mock-prover rust-build-mock-token -rust-build-tests: rust-build-omni-token +rust-build-tests: cargo build --manifest-path $(NEAR_MANIFEST) --tests --all-features rust-run-tests: rust-build-tests diff --git a/near/Cargo.lock b/near/Cargo.lock index 95241893..597f130f 100644 --- a/near/Cargo.lock +++ b/near/Cargo.lock @@ -4608,6 +4608,7 @@ name = "token-deployer" version = "0.1.0" dependencies = [ "borsh", + "cargo-near-build", "hex", "near-contract-standards", "near-plugins", diff --git a/near/Cargo.toml b/near/Cargo.toml index 10bcda2f..9853ff94 100644 --- a/near/Cargo.toml +++ b/near/Cargo.toml @@ -26,6 +26,7 @@ panic = "abort" overflow-checks = true [workspace.dependencies] +cargo-near-build = "0.4.2" near-sdk = "5.7.0" near-contract-standards = "5.7.0" hex = "0.4.2" diff --git a/near/build.sh b/near/build.sh index a7c89ad2..a891adcd 100755 --- a/near/build.sh +++ b/near/build.sh @@ -68,14 +68,14 @@ else fi if [ -z "$COMPONENT" ]; then - BUILD_CMD="cargo build --workspace --target wasm32-unknown-unknown --release" + BUILD_CMD="cargo build --workspace --target wasm32-unknown-unknown" echo "Building entire workspace..." else if [ ! -d "$DIR/$COMPONENT" ]; then echo "Error: Directory '$COMPONENT' not found in $DIR" exit 1 fi - BUILD_CMD="cargo build --manifest-path $COMPONENT/Cargo.toml --target wasm32-unknown-unknown --release" + BUILD_CMD="cargo build --manifest-path $COMPONENT/Cargo.toml --target wasm32-unknown-unknown" echo "Building component: $COMPONENT" fi diff --git a/near/omni-tests/Cargo.toml b/near/omni-tests/Cargo.toml index da17083f..45a0f05c 100644 --- a/near/omni-tests/Cargo.toml +++ b/near/omni-tests/Cargo.toml @@ -9,7 +9,7 @@ publish = false crate-type = ["cdylib", "rlib"] [dev-dependencies] -cargo-near-build = "0.4.2" +cargo-near-build.workspace = true near-sdk.workspace = true near-workspaces.workspace = true tokio.workspace = true diff --git a/near/token-deployer/Cargo.toml b/near/token-deployer/Cargo.toml index 589608ae..76e7f008 100644 --- a/near/token-deployer/Cargo.toml +++ b/near/token-deployer/Cargo.toml @@ -17,3 +17,6 @@ serde.workspace = true near-plugins.workspace = true omni-types.workspace = true omni-token = { path = "../omni-token"} + +[build-dependencies] +cargo-near-build = { workspace = true, features = ["build_script"] } diff --git a/near/token-deployer/build.rs b/near/token-deployer/build.rs new file mode 100644 index 00000000..13537238 --- /dev/null +++ b/near/token-deployer/build.rs @@ -0,0 +1,34 @@ +use std::str::FromStr; + +use cargo_near_build::{extended::BuildScriptOpts, BuildOpts}; + +fn main() -> Result<(), Box> { + println!( + "cargo:warning=`token-deployer` build script working dir: {:?}", + std::env::current_dir().expect("get current dir") + ); + + let opts = cargo_near_build::extended::BuildOptsExtended { + build_opts: BuildOpts { + manifest_path: Some( + cargo_near_build::camino::Utf8PathBuf::from_str("../omni-token/Cargo.toml") + .expect("camino PathBuf from str"), + ), + no_abi: true, + ..Default::default() + }, + build_script_opts: BuildScriptOpts { + result_env_key: Some("OMNI_TOKEN_WASM".to_string()), + rerun_if_changed_list: vec![ + "../omni-token".to_string(), + "Cargo.toml".to_string(), + "../Cargo.lock".to_string(), + ], + build_skipped_when_env_is: Vec::new().into(), + stub_path: None, + }, + }; + + cargo_near_build::extended::build(opts)?; + Ok(()) +} diff --git a/near/token-deployer/src/lib.rs b/near/token-deployer/src/lib.rs index cdf4f745..937eb54c 100644 --- a/near/token-deployer/src/lib.rs +++ b/near/token-deployer/src/lib.rs @@ -12,7 +12,7 @@ const BRIDGE_TOKEN_INIT_BALANCE: NearToken = NearToken::from_near(3); const NO_DEPOSIT: NearToken = NearToken::from_near(0); const OMNI_TOKEN_INIT_GAS: Gas = Gas::from_tgas(10); -const BRIDGE_TOKEN_BINARY: &[u8] = include_bytes!("../../target/near/omni_token/omni_token.wasm"); +const BRIDGE_TOKEN_BINARY: &[u8] = include_bytes!(env!("OMNI_TOKEN_WASM")); #[derive(AccessControlRole, Deserialize, Serialize, Copy, Clone)] #[serde(crate = "near_sdk::serde")] From 64fa0a28655921d62137f981dec28f32f0089f1a Mon Sep 17 00:00:00 2001 From: Ivan Frolov Date: Mon, 13 Jan 2025 15:37:32 -0500 Subject: [PATCH 15/73] chore: testing reproducible build --- near/omni-bridge/Cargo.toml | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/near/omni-bridge/Cargo.toml b/near/omni-bridge/Cargo.toml index 6f4e7999..10c53dbf 100644 --- a/near/omni-bridge/Cargo.toml +++ b/near/omni-bridge/Cargo.toml @@ -8,6 +8,23 @@ publish = false [lib] crate-type = ["cdylib", "rlib"] +# fields to configure build with WASM reproducibility, according to specs +# in https://github.com/near/NEPs/blob/master/neps/nep-0330.md +[package.metadata.near.reproducible_build] +# docker image, descriptor of build environment +image = "sourcescan/cargo-near:0.13.2-rust-1.84.0" +# tag after colon above serves only descriptive purpose; image is identified by digest +image_digest = "sha256:b41cb89907f92b114da9e2be4e109bff30ab792c22ddcbd2a4cff8e340cb9acb" +# list of environment variables names, whose values, if set, will be used as external build parameters +# in a reproducible manner +# supported by `sourcescan/cargo-near:0.10.1-rust-1.82.0` image or later images +passed_env = [] +# build command inside of docker container +# if docker image from default gallery is used https://hub.docker.com/r/sourcescan/cargo-near/tags, +# the command may be any combination of flags of `cargo-near`, +# supported by respective version of binary inside the container besides `--no-locked` flag +container_build_command = ["cargo", "near", "build", "non-reproducible-wasm", "--locked"] + [dependencies] near-sdk.workspace = true near-contract-standards.workspace = true From 50d11f4f1c9c3128b7868d0b541a2552d79cc1d4 Mon Sep 17 00:00:00 2001 From: Ivan Frolov Date: Wed, 15 Jan 2025 03:22:50 -0500 Subject: [PATCH 16/73] fix: added schemas for abi --- near/Cargo.lock | 80 ++++++++++++++++------------ near/Cargo.toml | 1 + near/omni-bridge/Cargo.toml | 18 +------ near/omni-bridge/src/storage.rs | 3 +- near/omni-types/Cargo.toml | 3 +- near/omni-types/src/lib.rs | 35 +++++++++--- near/omni-types/src/locker_args.rs | 15 +++--- near/omni-types/src/mpc_types.rs | 7 +-- near/omni-types/src/prover_result.rs | 22 ++++++-- near/omni-types/src/sol_address.rs | 7 ++- 10 files changed, 114 insertions(+), 77 deletions(-) diff --git a/near/Cargo.lock b/near/Cargo.lock index 597f130f..6037313d 100644 --- a/near/Cargo.lock +++ b/near/Cargo.lock @@ -357,9 +357,9 @@ checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" [[package]] name = "auto_impl" -version = "1.2.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c87f3f15e7794432337fc718554eaa4dc8f04c9677a950ffe366f20a162ae42" +checksum = "e12882f59de5360c748c4cbf569a042d5fb0eb515f7bea9c1f470b47f6ffbd73" dependencies = [ "proc-macro2", "quote", @@ -452,9 +452,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.7.0" +version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1be3f42a67d6d345ecd59f675f3f012d6974981560836e938c22b424b85ce1be" +checksum = "8f68f53c83ab957f72c32642f3868eec03eb974d1fb82e453128456482613d36" [[package]] name = "bitvec" @@ -523,9 +523,9 @@ dependencies = [ [[package]] name = "borsh" -version = "1.5.3" +version = "1.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2506947f73ad44e344215ccd6403ac2ae18cd8e046e581a441bf8d199f257f03" +checksum = "9fb65153674e51d3a42c8f27b05b9508cea85edfaade8aa46bc8fc18cecdfef3" dependencies = [ "borsh-derive", "cfg_aliases", @@ -533,9 +533,9 @@ dependencies = [ [[package]] name = "borsh-derive" -version = "1.5.3" +version = "1.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2593a3b8b938bd68373196c9832f516be11fa487ef4ae745eb282e6a56a7244" +checksum = "a396e17ad94059c650db3d253bb6e25927f1eb462eede7e7a153bb6e75dce0a7" dependencies = [ "once_cell", "proc-macro-crate 3.2.0", @@ -2166,9 +2166,9 @@ checksum = "72167d68f5fce3b8655487b8038691a3c9984ee769590f93f2a631f4ad64e4f5" [[package]] name = "js-sys" -version = "0.3.76" +version = "0.3.77" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6717b6b5b077764fb5966237269cb3c64edddde4b14ce42647430a78ced9e7b7" +checksum = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f" dependencies = [ "once_cell", "wasm-bindgen", @@ -2278,7 +2278,7 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" dependencies = [ - "bitflags 2.7.0", + "bitflags 2.8.0", "libc", "redox_syscall", ] @@ -2316,9 +2316,9 @@ dependencies = [ [[package]] name = "log" -version = "0.4.22" +version = "0.4.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" +checksum = "04cbf5b083de1c7e0222a7a51dbfdba1cbe1c6ab0b15e29fff3f6c077fd9cd9f" [[package]] name = "lru" @@ -2364,9 +2364,9 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" [[package]] name = "miniz_oxide" -version = "0.8.2" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ffbe83022cedc1d264172192511ae958937694cd57ce297164951b8b3568394" +checksum = "b8402cab7aefae129c6977bb0ff1b8fd9a04eb5b51efc50a70bea51cda0c7924" dependencies = [ "adler2", ] @@ -2475,6 +2475,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "35cbb989542587b47205e608324ddd391f0cee1c22b4b64ae49f458334b95907" dependencies = [ "borsh", + "schemars", "serde", ] @@ -2754,6 +2755,7 @@ dependencies = [ "base64 0.22.1", "borsh", "bs58 0.5.1", + "near-abi", "near-account-id", "near-crypto", "near-gas", @@ -2765,6 +2767,7 @@ dependencies = [ "near-token", "near-vm-runner", "once_cell", + "schemars", "serde", "serde_json", "wee_alloc", @@ -2816,6 +2819,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cd3e60aa26a74dc514b1b6408fdd06cefe2eb0ff029020956c1c6517594048fd" dependencies = [ "borsh", + "schemars", "serde", ] @@ -3030,6 +3034,7 @@ dependencies = [ "near-plugins", "near-sdk", "omni-types", + "schemars", "serde", ] @@ -3079,6 +3084,7 @@ dependencies = [ "near-contract-standards", "near-sdk", "rlp 0.6.1", + "schemars", "serde", "sha3", "strum_macros 0.26.4", @@ -3096,7 +3102,7 @@ version = "0.10.68" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6174bc48f102d208783c2c84bf931bb75927a617866870de8a4ea85597f871f5" dependencies = [ - "bitflags 2.7.0", + "bitflags 2.8.0", "cfg-if 1.0.0", "foreign-types", "libc", @@ -3436,7 +3442,7 @@ checksum = "b4c2511913b88df1637da85cc8d96ec8e43a3f8bb8ccb71ee1ac240d6f3df58d" dependencies = [ "bit-set", "bit-vec", - "bitflags 2.7.0", + "bitflags 2.8.0", "lazy_static", "num-traits", "rand", @@ -3536,7 +3542,7 @@ version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "03a862b389f93e68874fbf580b9de08dd02facb9a788ebadaf4a3fd33cf58834" dependencies = [ - "bitflags 2.7.0", + "bitflags 2.8.0", ] [[package]] @@ -3787,7 +3793,7 @@ version = "0.38.43" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a78891ee6bf2340288408954ac787aa063d8e8817e9f53abb37c695c6d834ef6" dependencies = [ - "bitflags 2.7.0", + "bitflags 2.8.0", "errno", "libc", "linux-raw-sys", @@ -3969,7 +3975,7 @@ version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" dependencies = [ - "bitflags 2.7.0", + "bitflags 2.8.0", "core-foundation", "core-foundation-sys", "libc", @@ -4434,7 +4440,7 @@ version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" dependencies = [ - "bitflags 2.7.0", + "bitflags 2.8.0", "core-foundation", "system-configuration-sys", ] @@ -4953,20 +4959,21 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.99" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a474f6281d1d70c17ae7aa6a613c87fce69a127e2624002df63dcb39d6cf6396" +checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5" dependencies = [ "cfg-if 1.0.0", "once_cell", + "rustversion", "wasm-bindgen-macro", ] [[package]] name = "wasm-bindgen-backend" -version = "0.2.99" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f89bb38646b4f81674e8f5c3fb81b562be1fd936d84320f3264486418519c79" +checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6" dependencies = [ "bumpalo", "log", @@ -4978,9 +4985,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-futures" -version = "0.4.49" +version = "0.4.50" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38176d9b44ea84e9184eff0bc34cc167ed044f816accfe5922e54d84cf48eca2" +checksum = "555d470ec0bc3bb57890405e5d4322cc9ea83cebb085523ced7be4144dac1e61" dependencies = [ "cfg-if 1.0.0", "js-sys", @@ -4991,9 +4998,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.99" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2cc6181fd9a7492eef6fef1f33961e3695e4579b9872a6f7c83aee556666d4fe" +checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -5001,9 +5008,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.99" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30d7a95b763d3c45903ed6c81f156801839e5ee968bb07e534c44df0fcd330c2" +checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" dependencies = [ "proc-macro2", "quote", @@ -5014,9 +5021,12 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.99" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "943aab3fdaaa029a6e0271b35ea10b72b943135afe9bffca82384098ad0e06a6" +checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d" +dependencies = [ + "unicode-ident", +] [[package]] name = "wasm-opt" @@ -5066,9 +5076,9 @@ checksum = "718ed7c55c2add6548cca3ddd6383d738cd73b892df400e96b9aa876f0141d7a" [[package]] name = "web-sys" -version = "0.3.76" +version = "0.3.77" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04dd7223427d52553d3702c004d3b2fe07c148165faa56313cb00211e31c12bc" +checksum = "33b6dd2ef9186f1f2072e409e99cd22a975331a6b3591b12c764e0e55c60d5d2" dependencies = [ "js-sys", "wasm-bindgen", diff --git a/near/Cargo.toml b/near/Cargo.toml index 9853ff94..6a6ad201 100644 --- a/near/Cargo.toml +++ b/near/Cargo.toml @@ -38,6 +38,7 @@ strum_macros = "0.26" near-workspaces = "0.16.0" tokio = "1.40" anyhow = "1" +schemars = "0.8" alloy-sol-types = "0.8" ethereum-types = { version = "0.15.1", default-features = false, features = ["rlp", "serialize"] } rlp = "0.6" diff --git a/near/omni-bridge/Cargo.toml b/near/omni-bridge/Cargo.toml index 10c53dbf..49127e45 100644 --- a/near/omni-bridge/Cargo.toml +++ b/near/omni-bridge/Cargo.toml @@ -8,23 +8,6 @@ publish = false [lib] crate-type = ["cdylib", "rlib"] -# fields to configure build with WASM reproducibility, according to specs -# in https://github.com/near/NEPs/blob/master/neps/nep-0330.md -[package.metadata.near.reproducible_build] -# docker image, descriptor of build environment -image = "sourcescan/cargo-near:0.13.2-rust-1.84.0" -# tag after colon above serves only descriptive purpose; image is identified by digest -image_digest = "sha256:b41cb89907f92b114da9e2be4e109bff30ab792c22ddcbd2a4cff8e340cb9acb" -# list of environment variables names, whose values, if set, will be used as external build parameters -# in a reproducible manner -# supported by `sourcescan/cargo-near:0.10.1-rust-1.82.0` image or later images -passed_env = [] -# build command inside of docker container -# if docker image from default gallery is used https://hub.docker.com/r/sourcescan/cargo-near/tags, -# the command may be any combination of flags of `cargo-near`, -# supported by respective version of binary inside the container besides `--no-locked` flag -container_build_command = ["cargo", "near", "build", "non-reproducible-wasm", "--locked"] - [dependencies] near-sdk.workspace = true near-contract-standards.workspace = true @@ -32,6 +15,7 @@ hex.workspace = true borsh.workspace = true serde.workspace = true near-plugins.workspace = true +schemars.workspace = true omni-types.workspace = true [dev-dependencies] diff --git a/near/omni-bridge/src/storage.rs b/near/omni-bridge/src/storage.rs index 72ca58b8..52c74996 100644 --- a/near/omni-bridge/src/storage.rs +++ b/near/omni-bridge/src/storage.rs @@ -2,6 +2,7 @@ use near_contract_standards::storage_management::{StorageBalance, StorageBalance use near_sdk::{assert_one_yocto, borsh}; use near_sdk::{env, near_bindgen, AccountId, NearToken}; use omni_types::TransferId; +use schemars::JsonSchema; use crate::{ require, BorshDeserialize, BorshSerialize, ChainKind, Contract, ContractExt, Deserialize, Fee, @@ -11,7 +12,7 @@ use crate::{ pub const BRIDGE_TOKEN_INIT_BALANCE: NearToken = NearToken::from_near(3); pub const NEP141_DEPOSIT: NearToken = NearToken::from_yoctonear(1_250_000_000_000_000_000_000); -#[derive(BorshDeserialize, BorshSerialize, Serialize, Deserialize, Debug, Clone)] +#[derive(JsonSchema, BorshDeserialize, BorshSerialize, Serialize, Deserialize, Debug, Clone)] pub struct TransferMessageStorageValue { pub message: TransferMessage, pub owner: AccountId, diff --git a/near/omni-types/Cargo.toml b/near/omni-types/Cargo.toml index 3ef2022a..edaed8a0 100644 --- a/near/omni-types/Cargo.toml +++ b/near/omni-types/Cargo.toml @@ -5,7 +5,7 @@ authors = ["Near Inc "] edition = "2021" [dependencies] -near-sdk.workspace = true +near-sdk = { workspace = true, features = ["abi"] } near-contract-standards.workspace = true hex.workspace = true borsh.workspace = true @@ -13,6 +13,7 @@ serde.workspace = true strum_macros.workspace = true ethereum-types.workspace = true rlp.workspace = true +schemars.workspace = true alloy-sol-types = "0.8" alloy-sol-macro = "0.8" alloy-primitives = { version = "0.8", features = ["rlp"] } diff --git a/near/omni-types/src/lib.rs b/near/omni-types/src/lib.rs index ffaf80d1..f7b79b89 100644 --- a/near/omni-types/src/lib.rs +++ b/near/omni-types/src/lib.rs @@ -1,3 +1,4 @@ +use borsh::BorshSchema; use core::fmt; use core::str::FromStr; use hex::FromHex; @@ -5,6 +6,7 @@ use near_sdk::borsh::{self, BorshDeserialize, BorshSerialize}; use near_sdk::json_types::U128; use near_sdk::serde::{Deserialize, Serialize}; use near_sdk::AccountId; +use schemars::JsonSchema; use serde::de::Visitor; use sol_address::SolAddress; @@ -20,7 +22,9 @@ pub mod utils; #[cfg(test)] mod tests; -#[derive(BorshDeserialize, BorshSerialize, Debug, Clone, PartialEq, Eq)] +#[derive( + JsonSchema, BorshSchema, BorshDeserialize, BorshSerialize, Debug, Clone, PartialEq, Eq, +)] pub struct H160(pub [u8; 20]); impl FromStr for H160 { @@ -134,6 +138,8 @@ impl Serialize for H160 { PartialEq, PartialOrd, Ord, + JsonSchema, + BorshSchema, BorshSerialize, BorshDeserialize, Serialize, @@ -183,7 +189,9 @@ pub type EvmAddress = H160; pub const ZERO_ACCOUNT_ID: &str = "0000000000000000000000000000000000000000000000000000000000000000"; -#[derive(BorshDeserialize, BorshSerialize, Debug, Clone, PartialEq, Eq)] +#[derive( + JsonSchema, BorshSchema, BorshDeserialize, BorshSerialize, Debug, Clone, PartialEq, Eq, +)] pub enum OmniAddress { Eth(EvmAddress), Near(AccountId), @@ -390,7 +398,16 @@ pub struct FeeRecipient { } #[derive( - BorshDeserialize, BorshSerialize, Serialize, Deserialize, Debug, Clone, PartialEq, Default, + JsonSchema, + BorshSchema, + BorshDeserialize, + BorshSerialize, + Serialize, + Deserialize, + Debug, + Clone, + PartialEq, + Default, )] pub struct Fee { pub fee: U128, @@ -404,6 +421,8 @@ impl Fee { } #[derive( + JsonSchema, + BorshSchema, BorshDeserialize, BorshSerialize, Serialize, @@ -422,7 +441,7 @@ pub struct TransferId { pub origin_nonce: Nonce, } -#[derive(BorshDeserialize, BorshSerialize, Serialize, Deserialize, Debug, Clone)] +#[derive(JsonSchema, BorshDeserialize, BorshSerialize, Serialize, Deserialize, Debug, Clone)] pub struct TransferMessage { pub origin_nonce: Nonce, pub token: OmniAddress, @@ -451,14 +470,14 @@ impl TransferMessage { } } -#[derive(BorshDeserialize, BorshSerialize, Serialize, Deserialize, Debug, Clone)] +#[derive(BorshSchema, BorshDeserialize, BorshSerialize, Serialize, Deserialize, Debug, Clone)] pub enum PayloadType { TransferMessage, Metadata, ClaimNativeFee, } -#[derive(BorshDeserialize, BorshSerialize, Serialize, Deserialize, Debug, Clone)] +#[derive(BorshSchema, BorshDeserialize, BorshSerialize, Serialize, Deserialize, Debug, Clone)] pub struct TransferMessagePayload { pub prefix: PayloadType, pub destination_nonce: Nonce, @@ -469,7 +488,7 @@ pub struct TransferMessagePayload { pub fee_recipient: Option, } -#[derive(BorshDeserialize, BorshSerialize, Serialize, Deserialize, Debug, Clone)] +#[derive(BorshSchema, BorshDeserialize, BorshSerialize, Serialize, Deserialize, Debug, Clone)] pub struct MetadataPayload { pub prefix: PayloadType, pub token: String, @@ -486,7 +505,7 @@ pub struct SignRequest { pub key_version: u32, } -#[derive(BorshDeserialize, BorshSerialize, Serialize, Deserialize, Debug, Clone)] +#[derive(JsonSchema, BorshDeserialize, BorshSerialize, Serialize, Deserialize, Debug, Clone)] pub enum UpdateFee { Fee(Fee), Proof(Vec), diff --git a/near/omni-types/src/locker_args.rs b/near/omni-types/src/locker_args.rs index 7ea3d8c4..4a3ce697 100644 --- a/near/omni-types/src/locker_args.rs +++ b/near/omni-types/src/locker_args.rs @@ -1,36 +1,39 @@ -use crate::ChainKind; +use borsh::BorshSchema; use near_sdk::{ borsh::{self, BorshDeserialize, BorshSerialize}, AccountId, }; +use schemars::JsonSchema; + +use crate::ChainKind; -#[derive(BorshDeserialize, BorshSerialize, Clone)] +#[derive(JsonSchema, BorshSchema, BorshDeserialize, BorshSerialize, Clone)] pub struct StorageDepositAction { pub token_id: AccountId, pub account_id: AccountId, pub storage_deposit_amount: Option, } -#[derive(BorshDeserialize, BorshSerialize, Clone)] +#[derive(JsonSchema, BorshSchema, BorshDeserialize, BorshSerialize, Clone)] pub struct FinTransferArgs { pub chain_kind: ChainKind, pub storage_deposit_actions: Vec, pub prover_args: Vec, } -#[derive(BorshDeserialize, BorshSerialize, Clone)] +#[derive(JsonSchema, BorshSchema, BorshDeserialize, BorshSerialize, Clone)] pub struct ClaimFeeArgs { pub chain_kind: ChainKind, pub prover_args: Vec, } -#[derive(BorshDeserialize, BorshSerialize, Clone)] +#[derive(JsonSchema, BorshSchema, BorshDeserialize, BorshSerialize, Clone)] pub struct BindTokenArgs { pub chain_kind: ChainKind, pub prover_args: Vec, } -#[derive(BorshDeserialize, BorshSerialize, Clone)] +#[derive(JsonSchema, BorshSchema, BorshDeserialize, BorshSerialize, Clone)] pub struct DeployTokenArgs { pub chain_kind: ChainKind, pub prover_args: Vec, diff --git a/near/omni-types/src/mpc_types.rs b/near/omni-types/src/mpc_types.rs index fb3320d9..cb5de7e3 100644 --- a/near/omni-types/src/mpc_types.rs +++ b/near/omni-types/src/mpc_types.rs @@ -1,16 +1,17 @@ use near_sdk::serde::{Deserialize, Serialize}; +use schemars::JsonSchema; -#[derive(Serialize, Deserialize, Clone, Debug)] +#[derive(JsonSchema, Serialize, Deserialize, Clone, Debug)] pub struct AffinePoint { pub affine_point: String, } -#[derive(Serialize, Deserialize, Clone, Debug)] +#[derive(JsonSchema, Serialize, Deserialize, Clone, Debug)] pub struct Scalar { pub scalar: String, } -#[derive(Serialize, Deserialize, Clone, Debug)] +#[derive(JsonSchema, Serialize, Deserialize, Clone, Debug)] #[serde(crate = "near_sdk::serde")] pub struct SignatureResponse { pub big_r: AffinePoint, diff --git a/near/omni-types/src/prover_result.rs b/near/omni-types/src/prover_result.rs index 9a40b1aa..4ab8c34c 100644 --- a/near/omni-types/src/prover_result.rs +++ b/near/omni-types/src/prover_result.rs @@ -1,11 +1,15 @@ +use borsh::BorshSchema; use near_sdk::borsh::{self, BorshDeserialize, BorshSerialize}; use near_sdk::json_types::U128; use near_sdk::serde::{Deserialize, Serialize}; use near_sdk::AccountId; +use schemars::JsonSchema; use crate::{Fee, Nonce, OmniAddress, TransferId}; -#[derive(BorshDeserialize, BorshSerialize, Serialize, Deserialize, Debug, Clone)] +#[derive( + JsonSchema, BorshSchema, BorshDeserialize, BorshSerialize, Serialize, Deserialize, Debug, Clone, +)] pub struct InitTransferMessage { pub origin_nonce: Nonce, pub token: OmniAddress, @@ -17,7 +21,9 @@ pub struct InitTransferMessage { pub emitter_address: OmniAddress, } -#[derive(BorshDeserialize, BorshSerialize, Serialize, Deserialize, Debug, Clone)] +#[derive( + JsonSchema, BorshSchema, BorshDeserialize, BorshSerialize, Serialize, Deserialize, Debug, Clone, +)] pub struct FinTransferMessage { pub transfer_id: TransferId, pub fee_recipient: AccountId, @@ -25,7 +31,9 @@ pub struct FinTransferMessage { pub emitter_address: OmniAddress, } -#[derive(BorshDeserialize, BorshSerialize, Serialize, Deserialize, Debug, Clone)] +#[derive( + JsonSchema, BorshSchema, BorshDeserialize, BorshSerialize, Serialize, Deserialize, Debug, Clone, +)] pub struct DeployTokenMessage { pub token: AccountId, pub token_address: OmniAddress, @@ -34,7 +42,9 @@ pub struct DeployTokenMessage { pub emitter_address: OmniAddress, } -#[derive(BorshDeserialize, BorshSerialize, Serialize, Deserialize, Debug, Clone)] +#[derive( + JsonSchema, BorshSchema, BorshDeserialize, BorshSerialize, Serialize, Deserialize, Debug, Clone, +)] pub struct LogMetadataMessage { pub token_address: OmniAddress, pub name: String, @@ -43,7 +53,9 @@ pub struct LogMetadataMessage { pub emitter_address: OmniAddress, } -#[derive(BorshDeserialize, BorshSerialize, Serialize, Deserialize, Debug, Clone)] +#[derive( + JsonSchema, BorshSchema, BorshDeserialize, BorshSerialize, Serialize, Deserialize, Debug, Clone, +)] pub enum ProverResult { InitTransfer(InitTransferMessage), FinTransfer(FinTransferMessage), diff --git a/near/omni-types/src/sol_address.rs b/near/omni-types/src/sol_address.rs index 91e7af27..1bd96755 100644 --- a/near/omni-types/src/sol_address.rs +++ b/near/omni-types/src/sol_address.rs @@ -1,11 +1,16 @@ use core::fmt; use core::str::FromStr; + +use borsh::BorshSchema; use near_sdk::borsh::{self, BorshDeserialize, BorshSerialize}; use near_sdk::bs58; use near_sdk::serde::{Deserialize, Serialize}; +use schemars::JsonSchema; use serde::de::Visitor; -#[derive(BorshDeserialize, BorshSerialize, Debug, Clone, PartialEq, Eq)] +#[derive( + JsonSchema, BorshSchema, BorshDeserialize, BorshSerialize, Debug, Clone, PartialEq, Eq, +)] pub struct SolAddress(pub [u8; 32]); impl SolAddress { From 135f87882e9bf4f05f3cf08db451740251cd21e0 Mon Sep 17 00:00:00 2001 From: Ivan Frolov Date: Wed, 15 Jan 2025 22:52:44 -0500 Subject: [PATCH 17/73] feat: properly added json/borsh schemas for abi generation --- Makefile | 10 +- near/Cargo.lock | 47 ++++---- near/Cargo.toml | 2 +- near/mock/mock-token/src/lib.rs | 2 +- near/omni-bridge/Cargo.toml | 1 - near/omni-bridge/src/storage.rs | 16 +-- near/omni-prover/evm-prover/src/lib.rs | 10 +- near/omni-prover/omni-prover/src/lib.rs | 4 +- .../wormhole-omni-prover-proxy/src/lib.rs | 9 +- near/omni-tests/src/helpers.rs | 4 - near/omni-types/Cargo.toml | 2 +- near/omni-types/src/lib.rs | 102 +++++++----------- near/omni-types/src/locker_args.rs | 22 ++-- near/omni-types/src/mpc_types.rs | 13 +-- near/omni-types/src/near_events.rs | 5 +- near/omni-types/src/prover_args.rs | 15 +-- near/omni-types/src/prover_result.rs | 36 +++---- near/omni-types/src/sol_address.rs | 10 +- near/token-deployer/build.rs | 1 - near/token-deployer/src/lib.rs | 5 +- 20 files changed, 139 insertions(+), 177 deletions(-) diff --git a/Makefile b/Makefile index 78fcc416..66518cb2 100644 --- a/Makefile +++ b/Makefile @@ -26,19 +26,19 @@ clippy-omni-relayer: cargo clippy --manifest-path $(OMNI_RELAYER_MANIFEST) -- $(LINT_OPTIONS) rust-build-omni-bridge: - cargo near build non-reproducible-wasm --manifest-path $(OMNI_BRIDGE_MANIFEST) --no-abi + cargo near build non-reproducible-wasm --manifest-path $(OMNI_BRIDGE_MANIFEST) rust-build-omni-token: - cargo near build non-reproducible-wasm --manifest-path $(OMNI_TOKEN_MANIFEST) --no-abi + cargo near build non-reproducible-wasm --manifest-path $(OMNI_TOKEN_MANIFEST) rust-build-token-deployer: - cargo near build non-reproducible-wasm --manifest-path $(TOKEN_DEPLOYER) --no-abi + cargo near build non-reproducible-wasm --manifest-path $(TOKEN_DEPLOYER) rust-build-mock-prover: - cargo near build non-reproducible-wasm --manifest-path $(MOCK_PROVER_MANIFEST) --no-abi + cargo near build non-reproducible-wasm --manifest-path $(MOCK_PROVER_MANIFEST) rust-build-mock-token: - cargo near build non-reproducible-wasm --manifest-path $(MOCK_TOKEN_MANIFEST) --no-abi + cargo near build non-reproducible-wasm --manifest-path $(MOCK_TOKEN_MANIFEST) rust-build-near: rust-build-omni-bridge rust-build-omni-token rust-build-token-deployer rust-build-mock-prover rust-build-mock-token diff --git a/near/Cargo.lock b/near/Cargo.lock index 6037313d..c2dcd628 100644 --- a/near/Cargo.lock +++ b/near/Cargo.lock @@ -55,9 +55,9 @@ checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" [[package]] name = "alloy-json-abi" -version = "0.8.18" +version = "0.8.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "731ea743b3d843bc657e120fb1d1e9cc94f5dab8107e35a82125a63e6420a102" +checksum = "24acd2f5ba97c7a320e67217274bc81fe3c3174b8e6144ec875d9d54e760e278" dependencies = [ "alloy-primitives", "alloy-sol-type-parser", @@ -67,9 +67,9 @@ dependencies = [ [[package]] name = "alloy-primitives" -version = "0.8.18" +version = "0.8.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "788bb18e8f61d5d9340b52143f27771daf7e1dccbaf2741621d2493f9debf52e" +checksum = "ec878088ec6283ce1e90d280316aadd3d6ce3de06ff63d68953c855e7e447e92" dependencies = [ "alloy-rlp", "bytes", @@ -104,9 +104,9 @@ dependencies = [ [[package]] name = "alloy-sol-macro" -version = "0.8.18" +version = "0.8.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a07b74d48661ab2e4b50bb5950d74dbff5e61dd8ed03bb822281b706d54ebacb" +checksum = "8d039d267aa5cbb7732fa6ce1fd9b5e9e29368f580f80ba9d7a8450c794de4b2" dependencies = [ "alloy-sol-macro-expander", "alloy-sol-macro-input", @@ -118,9 +118,9 @@ dependencies = [ [[package]] name = "alloy-sol-macro-expander" -version = "0.8.18" +version = "0.8.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19cc9c7f20b90f9be1a8f71a3d8e283a43745137b0837b1a1cb13159d37cad72" +checksum = "620ae5eee30ee7216a38027dec34e0585c55099f827f92f50d11e3d2d3a4a954" dependencies = [ "alloy-sol-macro-input", "const-hex", @@ -136,9 +136,9 @@ dependencies = [ [[package]] name = "alloy-sol-macro-input" -version = "0.8.18" +version = "0.8.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "713b7e6dfe1cb2f55c80fb05fd22ed085a1b4e48217611365ed0ae598a74c6ac" +checksum = "ad9f7d057e00f8c5994e4ff4492b76532c51ead39353aa2ed63f8c50c0f4d52e" dependencies = [ "const-hex", "dunce", @@ -151,9 +151,9 @@ dependencies = [ [[package]] name = "alloy-sol-type-parser" -version = "0.8.18" +version = "0.8.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1eda2711ab2e1fb517fc6e2ffa9728c9a232e296d16810810e6957b781a1b8bc" +checksum = "74e60b084fe1aef8acecda2743ff2d93c18ff3eb67a2d3b12f62582a1e66ef5e" dependencies = [ "serde", "winnow", @@ -161,9 +161,9 @@ dependencies = [ [[package]] name = "alloy-sol-types" -version = "0.8.18" +version = "0.8.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3b478bc9c0c4737a04cd976accde4df7eba0bdc0d90ad6ff43d58bc93cf79c1" +checksum = "c1382302752cd751efd275f4d6ef65877ddf61e0e6f5ac84ef4302b79a33a31a" dependencies = [ "alloy-json-abi", "alloy-primitives", @@ -636,15 +636,14 @@ dependencies = [ [[package]] name = "cargo-near-build" -version = "0.4.2" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e79fd27a64c34c965d14a81c28c93e512f77439fa4a8a501bb6c262e9e792fe" +checksum = "33da359f840830cccaedd09d58f78d468c948b9d17e31e3d8e83bf0859f6a38b" dependencies = [ "bon", "bs58 0.5.1", "camino", "cargo_metadata", - "cc", "colored", "dunce", "eyre", @@ -658,7 +657,6 @@ dependencies = [ "serde_json", "sha2", "symbolic-debuginfo", - "tempfile", "tracing", "wasm-opt", "zstd 0.13.2", @@ -689,9 +687,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.2.1" +version = "1.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd9de9f2205d5ef3fd67e685b0df337994ddd4495e2a28d185500d0e1edfea47" +checksum = "c8293772165d9345bdaaa39b45b2109591e63fe5e6fbc23c6ff930a048aa310b" dependencies = [ "jobserver", "libc", @@ -2475,7 +2473,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "35cbb989542587b47205e608324ddd391f0cee1c22b4b64ae49f458334b95907" dependencies = [ "borsh", - "schemars", "serde", ] @@ -2755,7 +2752,6 @@ dependencies = [ "base64 0.22.1", "borsh", "bs58 0.5.1", - "near-abi", "near-account-id", "near-crypto", "near-gas", @@ -2767,7 +2763,6 @@ dependencies = [ "near-token", "near-vm-runner", "once_cell", - "schemars", "serde", "serde_json", "wee_alloc", @@ -2819,7 +2814,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cd3e60aa26a74dc514b1b6408fdd06cefe2eb0ff029020956c1c6517594048fd" dependencies = [ "borsh", - "schemars", "serde", ] @@ -3034,7 +3028,6 @@ dependencies = [ "near-plugins", "near-sdk", "omni-types", - "schemars", "serde", ] @@ -4404,9 +4397,9 @@ dependencies = [ [[package]] name = "syn-solidity" -version = "0.8.18" +version = "0.8.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31e89d8bf2768d277f40573c83a02a099e96d96dd3104e13ea676194e61ac4b0" +checksum = "b84e4d83a0a6704561302b917a932484e1cae2d8c6354c64be8b7bac1c1fe057" dependencies = [ "paste", "proc-macro2", diff --git a/near/Cargo.toml b/near/Cargo.toml index 6a6ad201..63a68395 100644 --- a/near/Cargo.toml +++ b/near/Cargo.toml @@ -26,7 +26,7 @@ panic = "abort" overflow-checks = true [workspace.dependencies] -cargo-near-build = "0.4.2" +cargo-near-build = "0.3.0" near-sdk = "5.7.0" near-contract-standards = "5.7.0" hex = "0.4.2" diff --git a/near/mock/mock-token/src/lib.rs b/near/mock/mock-token/src/lib.rs index 9d24a28e..aed5cb60 100644 --- a/near/mock/mock-token/src/lib.rs +++ b/near/mock/mock-token/src/lib.rs @@ -14,8 +14,8 @@ use near_sdk::{ env, log, near, require, AccountId, BorshStorageKey, NearToken, PanicOnDefault, PromiseOrValue, }; -#[derive(PanicOnDefault)] #[near(contract_state)] +#[derive(PanicOnDefault)] pub struct Contract { token: FungibleToken, metadata: LazyOption, diff --git a/near/omni-bridge/Cargo.toml b/near/omni-bridge/Cargo.toml index 49127e45..6f4e7999 100644 --- a/near/omni-bridge/Cargo.toml +++ b/near/omni-bridge/Cargo.toml @@ -15,7 +15,6 @@ hex.workspace = true borsh.workspace = true serde.workspace = true near-plugins.workspace = true -schemars.workspace = true omni-types.workspace = true [dev-dependencies] diff --git a/near/omni-bridge/src/storage.rs b/near/omni-bridge/src/storage.rs index 52c74996..505c0805 100644 --- a/near/omni-bridge/src/storage.rs +++ b/near/omni-bridge/src/storage.rs @@ -1,24 +1,25 @@ use near_contract_standards::storage_management::{StorageBalance, StorageBalanceBounds}; -use near_sdk::{assert_one_yocto, borsh}; +use near_sdk::{assert_one_yocto, borsh, near}; use near_sdk::{env, near_bindgen, AccountId, NearToken}; use omni_types::TransferId; -use schemars::JsonSchema; use crate::{ - require, BorshDeserialize, BorshSerialize, ChainKind, Contract, ContractExt, Deserialize, Fee, - OmniAddress, Promise, SdkExpect, Serialize, TransferMessage, U128, + require, ChainKind, Contract, ContractExt, Fee, OmniAddress, Promise, SdkExpect, + TransferMessage, U128, }; pub const BRIDGE_TOKEN_INIT_BALANCE: NearToken = NearToken::from_near(3); pub const NEP141_DEPOSIT: NearToken = NearToken::from_yoctonear(1_250_000_000_000_000_000_000); -#[derive(JsonSchema, BorshDeserialize, BorshSerialize, Serialize, Deserialize, Debug, Clone)] +#[near(serializers=[borsh, json])] +#[derive(Debug, Clone)] pub struct TransferMessageStorageValue { pub message: TransferMessage, pub owner: AccountId, } -#[derive(BorshDeserialize, BorshSerialize, Serialize, Deserialize, Debug, Clone)] +#[near(serializers=[borsh, json])] +#[derive(Debug, Clone)] pub enum TransferMessageStorage { V0(TransferMessageStorageValue), } @@ -41,7 +42,8 @@ impl TransferMessageStorage { } } -#[derive(BorshDeserialize, BorshSerialize, Debug, Clone, Copy, PartialEq, Eq)] +#[near(serializers=[borsh, json])] +#[derive(Debug, Clone, Copy, PartialEq, Eq)] pub struct Decimals { pub decimals: u8, pub origin_decimals: u8, diff --git a/near/omni-prover/evm-prover/src/lib.rs b/near/omni-prover/evm-prover/src/lib.rs index 40b49629..2f3e402d 100644 --- a/near/omni-prover/evm-prover/src/lib.rs +++ b/near/omni-prover/evm-prover/src/lib.rs @@ -1,5 +1,7 @@ -use near_sdk::borsh::{self, BorshDeserialize, BorshSerialize}; -use near_sdk::{env, ext_contract, near_bindgen, require, AccountId, Gas, PanicOnDefault, Promise}; +use borsh::BorshDeserialize; +use near_sdk::{ + env, ext_contract, near, near_bindgen, require, AccountId, Gas, PanicOnDefault, Promise, +}; use omni_types::evm::events::parse_evm_event; use omni_types::evm::header::BlockHeader; use omni_types::evm::receipt::{LogEntry, Receipt}; @@ -23,8 +25,8 @@ pub trait EvmClient { fn block_hash_safe(&self, #[serializer(borsh)] index: u64) -> Option; } -#[near_bindgen] -#[derive(BorshDeserialize, BorshSerialize, PanicOnDefault)] +#[near(contract_state)] +#[derive(PanicOnDefault)] pub struct EvmProver { pub light_client: AccountId, pub chain_kind: ChainKind, diff --git a/near/omni-prover/omni-prover/src/lib.rs b/near/omni-prover/omni-prover/src/lib.rs index 5a664616..2f07a17c 100644 --- a/near/omni-prover/omni-prover/src/lib.rs +++ b/near/omni-prover/omni-prover/src/lib.rs @@ -33,8 +33,8 @@ enum StorageKey { RegisteredProvers, } -#[near_bindgen] -#[derive(BorshDeserialize, BorshSerialize, PanicOnDefault, Pausable, Upgradable)] +#[near(contract_state)] +#[derive(PanicOnDefault, Pausable, Upgradable)] #[access_control(role_type(Role))] #[pausable(manager_roles(Role::PauseManager, Role::DAO))] #[upgradable(access_control_roles( diff --git a/near/omni-prover/wormhole-omni-prover-proxy/src/lib.rs b/near/omni-prover/wormhole-omni-prover-proxy/src/lib.rs index 3b413398..1b748a6a 100644 --- a/near/omni-prover/wormhole-omni-prover-proxy/src/lib.rs +++ b/near/omni-prover/wormhole-omni-prover-proxy/src/lib.rs @@ -1,6 +1,7 @@ -use near_sdk::borsh::{self, BorshDeserialize, BorshSerialize}; +use near_sdk::borsh::BorshDeserialize; use near_sdk::{ - env, ext_contract, near_bindgen, require, AccountId, Gas, PanicOnDefault, Promise, PromiseError, + env, ext_contract, near, near_bindgen, require, AccountId, Gas, PanicOnDefault, Promise, + PromiseError, }; use omni_types::prover_args::WormholeVerifyProofArgs; use omni_types::prover_result::{ProofKind, ProverResult}; @@ -16,8 +17,8 @@ pub trait Prover { fn verify_vaa(&self, vaa: &str) -> u32; } -#[near_bindgen] -#[derive(BorshDeserialize, BorshSerialize, PanicOnDefault)] +#[near(contract_state)] +#[derive(PanicOnDefault)] pub struct WormholeOmniProverProxy { pub prover_account: AccountId, } diff --git a/near/omni-tests/src/helpers.rs b/near/omni-tests/src/helpers.rs index 89e5919f..7e68dd2d 100644 --- a/near/omni-tests/src/helpers.rs +++ b/near/omni-tests/src/helpers.rs @@ -18,7 +18,6 @@ pub mod tests { cargo_near_build::camino::Utf8PathBuf::from_str("../mock/mock-token/Cargo.toml") .expect("camino PathBuf from str"), ), - no_abi: true, ..Default::default() }) .expect("building `mock-token` contract for tests"); @@ -31,7 +30,6 @@ pub mod tests { cargo_near_build::camino::Utf8PathBuf::from_str("../mock/mock-prover/Cargo.toml") .expect("camino PathBuf from str"), ), - no_abi: true, ..Default::default() }) .expect("building `mock-prover` contract for tests"); @@ -44,7 +42,6 @@ pub mod tests { cargo_near_build::camino::Utf8PathBuf::from_str("../omni-bridge/Cargo.toml") .expect("camino PathBuf from str"), ), - no_abi: true, ..Default::default() }) .expect("building `omni-bridge` contract for tests"); @@ -57,7 +54,6 @@ pub mod tests { cargo_near_build::camino::Utf8PathBuf::from_str("../token-deployer/Cargo.toml") .expect("camino PathBuf from str"), ), - no_abi: true, ..Default::default() }) .expect("building `token-deployer` contract for tests"); diff --git a/near/omni-types/Cargo.toml b/near/omni-types/Cargo.toml index edaed8a0..9201979a 100644 --- a/near/omni-types/Cargo.toml +++ b/near/omni-types/Cargo.toml @@ -5,7 +5,7 @@ authors = ["Near Inc "] edition = "2021" [dependencies] -near-sdk = { workspace = true, features = ["abi"] } +near-sdk.workspace = true near-contract-standards.workspace = true hex.workspace = true borsh.workspace = true diff --git a/near/omni-types/src/lib.rs b/near/omni-types/src/lib.rs index f7b79b89..8c7981dc 100644 --- a/near/omni-types/src/lib.rs +++ b/near/omni-types/src/lib.rs @@ -1,11 +1,9 @@ -use borsh::BorshSchema; use core::fmt; use core::str::FromStr; use hex::FromHex; -use near_sdk::borsh::{self, BorshDeserialize, BorshSerialize}; use near_sdk::json_types::U128; use near_sdk::serde::{Deserialize, Serialize}; -use near_sdk::AccountId; +use near_sdk::{near, AccountId}; use schemars::JsonSchema; use serde::de::Visitor; use sol_address::SolAddress; @@ -22,9 +20,8 @@ pub mod utils; #[cfg(test)] mod tests; -#[derive( - JsonSchema, BorshSchema, BorshDeserialize, BorshSerialize, Debug, Clone, PartialEq, Eq, -)] +#[near(serializers = [borsh])] +#[derive(Debug, Clone, PartialEq, Eq)] pub struct H160(pub [u8; 20]); impl FromStr for H160 { @@ -130,23 +127,8 @@ impl Serialize for H160 { } } -#[derive( - Debug, - Eq, - Clone, - Copy, - PartialEq, - PartialOrd, - Ord, - JsonSchema, - BorshSchema, - BorshSerialize, - BorshDeserialize, - Serialize, - Deserialize, - strum_macros::AsRefStr, - Default, -)] +#[near(serializers = [borsh, json])] +#[derive(Debug, Eq, Clone, Copy, PartialEq, PartialOrd, Ord, strum_macros::AsRefStr, Default)] pub enum ChainKind { #[default] Eth, @@ -189,9 +171,8 @@ pub type EvmAddress = H160; pub const ZERO_ACCOUNT_ID: &str = "0000000000000000000000000000000000000000000000000000000000000000"; -#[derive( - JsonSchema, BorshSchema, BorshDeserialize, BorshSerialize, Debug, Clone, PartialEq, Eq, -)] +#[near(serializers=[borsh])] +#[derive(Debug, Clone, PartialEq, Eq)] pub enum OmniAddress { Eth(EvmAddress), Near(AccountId), @@ -349,6 +330,20 @@ impl fmt::Display for OmniAddress { } } +impl JsonSchema for OmniAddress { + fn is_referenceable() -> bool { + false + } + + fn schema_name() -> String { + String::schema_name() + } + + fn json_schema(gen: &mut schemars::gen::SchemaGenerator) -> schemars::schema::Schema { + String::json_schema(gen) + } +} + impl Serialize for OmniAddress { fn serialize(&self, serializer: S) -> Result where @@ -391,24 +386,15 @@ pub struct InitTransferMsg { pub native_token_fee: U128, } -#[derive(BorshDeserialize, BorshSerialize, Serialize, Deserialize, Debug, Clone)] +#[near(serializers=[borsh, json])] +#[derive(Debug, Clone)] pub struct FeeRecipient { pub recipient: AccountId, pub native_fee_recipient: OmniAddress, } -#[derive( - JsonSchema, - BorshSchema, - BorshDeserialize, - BorshSerialize, - Serialize, - Deserialize, - Debug, - Clone, - PartialEq, - Default, -)] +#[near(serializers=[borsh, json])] +#[derive(Debug, Clone, PartialEq, Default)] pub struct Fee { pub fee: U128, pub native_fee: U128, @@ -420,20 +406,8 @@ impl Fee { } } -#[derive( - JsonSchema, - BorshSchema, - BorshDeserialize, - BorshSerialize, - Serialize, - Deserialize, - Debug, - Clone, - PartialEq, - Eq, - Default, - Copy, -)] +#[near(serializers = [borsh, json])] +#[derive(Debug, Clone, PartialEq, Eq, Default, Copy)] pub struct TransferId { // The origin chain kind pub origin_chain: ChainKind, @@ -441,7 +415,8 @@ pub struct TransferId { pub origin_nonce: Nonce, } -#[derive(JsonSchema, BorshDeserialize, BorshSerialize, Serialize, Deserialize, Debug, Clone)] +#[near(serializers=[borsh, json])] +#[derive(Debug, Clone)] pub struct TransferMessage { pub origin_nonce: Nonce, pub token: OmniAddress, @@ -470,14 +445,16 @@ impl TransferMessage { } } -#[derive(BorshSchema, BorshDeserialize, BorshSerialize, Serialize, Deserialize, Debug, Clone)] +#[near(serializers = [borsh, json])] +#[derive(Debug, Clone)] pub enum PayloadType { TransferMessage, Metadata, ClaimNativeFee, } -#[derive(BorshSchema, BorshDeserialize, BorshSerialize, Serialize, Deserialize, Debug, Clone)] +#[near(serializers=[borsh, json])] +#[derive(Debug, Clone)] pub struct TransferMessagePayload { pub prefix: PayloadType, pub destination_nonce: Nonce, @@ -488,7 +465,8 @@ pub struct TransferMessagePayload { pub fee_recipient: Option, } -#[derive(BorshSchema, BorshDeserialize, BorshSerialize, Serialize, Deserialize, Debug, Clone)] +#[near(serializers = [borsh, json])] +#[derive(Debug, Clone)] pub struct MetadataPayload { pub prefix: PayloadType, pub token: String, @@ -497,15 +475,16 @@ pub struct MetadataPayload { pub decimals: u8, } -#[derive(Deserialize, Serialize, Clone)] -#[serde(crate = "near_sdk::serde")] +#[near(serializers=[borsh, json])] +#[derive(Clone)] pub struct SignRequest { pub payload: [u8; 32], pub path: String, pub key_version: u32, } -#[derive(JsonSchema, BorshDeserialize, BorshSerialize, Serialize, Deserialize, Debug, Clone)] +#[near(serializers=[borsh, json])] +#[derive(Debug, Clone)] pub enum UpdateFee { Fee(Fee), Proof(Vec), @@ -517,7 +496,8 @@ pub fn stringify(item: T) -> String { item.to_string() } -#[derive(Deserialize, Serialize, Clone)] +#[near(serializers=[json])] +#[derive(Clone)] pub struct BasicMetadata { pub name: String, pub symbol: String, diff --git a/near/omni-types/src/locker_args.rs b/near/omni-types/src/locker_args.rs index 4a3ce697..6d90b708 100644 --- a/near/omni-types/src/locker_args.rs +++ b/near/omni-types/src/locker_args.rs @@ -1,39 +1,39 @@ -use borsh::BorshSchema; -use near_sdk::{ - borsh::{self, BorshDeserialize, BorshSerialize}, - AccountId, -}; -use schemars::JsonSchema; +use near_sdk::{near, AccountId}; use crate::ChainKind; -#[derive(JsonSchema, BorshSchema, BorshDeserialize, BorshSerialize, Clone)] +#[near(serializers = [borsh, json])] +#[derive(Clone)] pub struct StorageDepositAction { pub token_id: AccountId, pub account_id: AccountId, pub storage_deposit_amount: Option, } -#[derive(JsonSchema, BorshSchema, BorshDeserialize, BorshSerialize, Clone)] +#[near(serializers = [borsh, json])] +#[derive(Clone)] pub struct FinTransferArgs { pub chain_kind: ChainKind, pub storage_deposit_actions: Vec, pub prover_args: Vec, } -#[derive(JsonSchema, BorshSchema, BorshDeserialize, BorshSerialize, Clone)] +#[near(serializers = [borsh, json])] +#[derive(Clone)] pub struct ClaimFeeArgs { pub chain_kind: ChainKind, pub prover_args: Vec, } -#[derive(JsonSchema, BorshSchema, BorshDeserialize, BorshSerialize, Clone)] +#[near(serializers = [borsh, json])] +#[derive(Clone)] pub struct BindTokenArgs { pub chain_kind: ChainKind, pub prover_args: Vec, } -#[derive(JsonSchema, BorshSchema, BorshDeserialize, BorshSerialize, Clone)] +#[near(serializers = [borsh, json])] +#[derive(Clone)] pub struct DeployTokenArgs { pub chain_kind: ChainKind, pub prover_args: Vec, diff --git a/near/omni-types/src/mpc_types.rs b/near/omni-types/src/mpc_types.rs index cb5de7e3..2130cd8c 100644 --- a/near/omni-types/src/mpc_types.rs +++ b/near/omni-types/src/mpc_types.rs @@ -1,18 +1,19 @@ -use near_sdk::serde::{Deserialize, Serialize}; -use schemars::JsonSchema; +use near_sdk::near; -#[derive(JsonSchema, Serialize, Deserialize, Clone, Debug)] +#[near(serializers = [json])] +#[derive(Clone, Debug)] pub struct AffinePoint { pub affine_point: String, } -#[derive(JsonSchema, Serialize, Deserialize, Clone, Debug)] +#[near(serializers = [json])] +#[derive(Clone, Debug)] pub struct Scalar { pub scalar: String, } -#[derive(JsonSchema, Serialize, Deserialize, Clone, Debug)] -#[serde(crate = "near_sdk::serde")] +#[near(serializers = [json])] +#[derive(Clone, Debug)] pub struct SignatureResponse { pub big_r: AffinePoint, pub s: Scalar, diff --git a/near/omni-types/src/near_events.rs b/near/omni-types/src/near_events.rs index e3dd1025..d24fbd1d 100644 --- a/near/omni-types/src/near_events.rs +++ b/near/omni-types/src/near_events.rs @@ -1,10 +1,11 @@ -use near_sdk::serde::{Deserialize, Serialize}; +use near_sdk::near; use near_sdk::serde_json::json; use crate::mpc_types::SignatureResponse; use crate::{MetadataPayload, TransferMessage, TransferMessagePayload}; -#[derive(Deserialize, Serialize, Clone, Debug)] +#[near(serializers=[json])] +#[derive(Clone, Debug)] pub enum OmniBridgeEvent { InitTransferEvent { transfer_message: TransferMessage, diff --git a/near/omni-types/src/prover_args.rs b/near/omni-types/src/prover_args.rs index f4551512..a1a33bc7 100644 --- a/near/omni-types/src/prover_args.rs +++ b/near/omni-types/src/prover_args.rs @@ -1,29 +1,32 @@ -use near_sdk::borsh::{self, BorshDeserialize, BorshSerialize}; -use near_sdk::serde::{Deserialize, Serialize}; +use near_sdk::near; use crate::prover_result::ProofKind; pub type ProverId = String; -#[derive(BorshDeserialize, BorshSerialize, Serialize, Deserialize, Clone)] +#[near(serializers=[borsh, json])] +#[derive(Debug, Clone)] pub struct VerifyProofArgs { pub prover_id: ProverId, pub prover_args: Vec, } -#[derive(BorshDeserialize, BorshSerialize, Clone)] +#[near(serializers=[borsh])] +#[derive(Debug, Clone)] pub struct EvmVerifyProofArgs { pub proof_kind: ProofKind, pub proof: EvmProof, } -#[derive(BorshDeserialize, BorshSerialize, Clone)] +#[near(serializers=[borsh])] +#[derive(Debug, Clone)] pub struct WormholeVerifyProofArgs { pub proof_kind: ProofKind, pub vaa: String, } -#[derive(Default, BorshDeserialize, BorshSerialize, Serialize, Deserialize, Clone)] +#[near(serializers=[borsh])] +#[derive(Default, Debug, Clone)] pub struct EvmProof { pub log_index: u64, pub log_entry_data: Vec, diff --git a/near/omni-types/src/prover_result.rs b/near/omni-types/src/prover_result.rs index 4ab8c34c..65e3a2c7 100644 --- a/near/omni-types/src/prover_result.rs +++ b/near/omni-types/src/prover_result.rs @@ -1,15 +1,10 @@ -use borsh::BorshSchema; -use near_sdk::borsh::{self, BorshDeserialize, BorshSerialize}; use near_sdk::json_types::U128; -use near_sdk::serde::{Deserialize, Serialize}; -use near_sdk::AccountId; -use schemars::JsonSchema; +use near_sdk::{near, AccountId}; use crate::{Fee, Nonce, OmniAddress, TransferId}; -#[derive( - JsonSchema, BorshSchema, BorshDeserialize, BorshSerialize, Serialize, Deserialize, Debug, Clone, -)] +#[near(serializers=[borsh, json])] +#[derive(Debug, Clone)] pub struct InitTransferMessage { pub origin_nonce: Nonce, pub token: OmniAddress, @@ -21,9 +16,8 @@ pub struct InitTransferMessage { pub emitter_address: OmniAddress, } -#[derive( - JsonSchema, BorshSchema, BorshDeserialize, BorshSerialize, Serialize, Deserialize, Debug, Clone, -)] +#[near(serializers=[borsh, json])] +#[derive(Debug, Clone)] pub struct FinTransferMessage { pub transfer_id: TransferId, pub fee_recipient: AccountId, @@ -31,9 +25,8 @@ pub struct FinTransferMessage { pub emitter_address: OmniAddress, } -#[derive( - JsonSchema, BorshSchema, BorshDeserialize, BorshSerialize, Serialize, Deserialize, Debug, Clone, -)] +#[near(serializers=[borsh, json])] +#[derive(Debug, Clone)] pub struct DeployTokenMessage { pub token: AccountId, pub token_address: OmniAddress, @@ -42,9 +35,8 @@ pub struct DeployTokenMessage { pub emitter_address: OmniAddress, } -#[derive( - JsonSchema, BorshSchema, BorshDeserialize, BorshSerialize, Serialize, Deserialize, Debug, Clone, -)] +#[near(serializers=[borsh, json])] +#[derive(Debug, Clone)] pub struct LogMetadataMessage { pub token_address: OmniAddress, pub name: String, @@ -53,9 +45,8 @@ pub struct LogMetadataMessage { pub emitter_address: OmniAddress, } -#[derive( - JsonSchema, BorshSchema, BorshDeserialize, BorshSerialize, Serialize, Deserialize, Debug, Clone, -)] +#[near(serializers=[borsh, json])] +#[derive(Debug, Clone)] pub enum ProverResult { InitTransfer(InitTransferMessage), FinTransfer(FinTransferMessage), @@ -63,9 +54,8 @@ pub enum ProverResult { LogMetadata(LogMetadataMessage), } -#[derive( - BorshDeserialize, BorshSerialize, Serialize, Deserialize, Debug, Clone, Copy, Eq, PartialEq, -)] +#[near(serializers=[borsh, json])] +#[derive(Debug, Clone, Copy, Eq, PartialEq)] pub enum ProofKind { InitTransfer, FinTransfer, diff --git a/near/omni-types/src/sol_address.rs b/near/omni-types/src/sol_address.rs index 1bd96755..47327073 100644 --- a/near/omni-types/src/sol_address.rs +++ b/near/omni-types/src/sol_address.rs @@ -1,16 +1,12 @@ use core::fmt; use core::str::FromStr; -use borsh::BorshSchema; -use near_sdk::borsh::{self, BorshDeserialize, BorshSerialize}; -use near_sdk::bs58; use near_sdk::serde::{Deserialize, Serialize}; -use schemars::JsonSchema; +use near_sdk::{bs58, near}; use serde::de::Visitor; -#[derive( - JsonSchema, BorshSchema, BorshDeserialize, BorshSerialize, Debug, Clone, PartialEq, Eq, -)] +#[near(serializers=[borsh])] +#[derive(Debug, Clone, PartialEq, Eq)] pub struct SolAddress(pub [u8; 32]); impl SolAddress { diff --git a/near/token-deployer/build.rs b/near/token-deployer/build.rs index 13537238..b69c686a 100644 --- a/near/token-deployer/build.rs +++ b/near/token-deployer/build.rs @@ -14,7 +14,6 @@ fn main() -> Result<(), Box> { cargo_near_build::camino::Utf8PathBuf::from_str("../omni-token/Cargo.toml") .expect("camino PathBuf from str"), ), - no_abi: true, ..Default::default() }, build_script_opts: BuildScriptOpts { diff --git a/near/token-deployer/src/lib.rs b/near/token-deployer/src/lib.rs index 937eb54c..62a89027 100644 --- a/near/token-deployer/src/lib.rs +++ b/near/token-deployer/src/lib.rs @@ -3,7 +3,6 @@ use near_plugins::{ }; use near_sdk::borsh::BorshDeserialize; use near_sdk::json_types::Base58CryptoHash; -use near_sdk::serde::{Deserialize, Serialize}; use near_sdk::serde_json::json; use near_sdk::{env, near, require, AccountId, Gas, NearToken, PanicOnDefault, Promise}; use omni_types::BasicMetadata; @@ -14,8 +13,8 @@ const OMNI_TOKEN_INIT_GAS: Gas = Gas::from_tgas(10); const BRIDGE_TOKEN_BINARY: &[u8] = include_bytes!(env!("OMNI_TOKEN_WASM")); -#[derive(AccessControlRole, Deserialize, Serialize, Copy, Clone)] -#[serde(crate = "near_sdk::serde")] +#[near(serializers = [json])] +#[derive(AccessControlRole, Copy, Clone)] pub enum Role { DAO, PauseManager, From d859bdf1fba86203d707bdc0c9295f0e85d744a8 Mon Sep 17 00:00:00 2001 From: Ivan Frolov Date: Wed, 15 Jan 2025 23:55:35 -0500 Subject: [PATCH 18/73] chore: added reproducible info in tomls --- near/Cargo.toml | 1 + near/omni-bridge/Cargo.lock | 883 ------------------ near/omni-bridge/Cargo.toml | 1 + near/omni-prover/evm-prover/Cargo.toml | 1 + near/omni-prover/omni-prover/Cargo.toml | 1 + .../wormhole-omni-prover-proxy/Cargo.toml | 1 + near/omni-token/Cargo.toml | 1 + near/rust-toolchain | 1 + near/token-deployer/Cargo.toml | 18 + near/token-deployer/build.rs | 12 +- 10 files changed, 35 insertions(+), 885 deletions(-) delete mode 100644 near/omni-bridge/Cargo.lock diff --git a/near/Cargo.toml b/near/Cargo.toml index 63a68395..4832006b 100644 --- a/near/Cargo.toml +++ b/near/Cargo.toml @@ -1,5 +1,6 @@ [workspace.package] authors = ["Karim Alabtakh "] +repository = "https://github.com/Near-One/omni-bridge" [workspace] resolver = "2" diff --git a/near/omni-bridge/Cargo.lock b/near/omni-bridge/Cargo.lock deleted file mode 100644 index fd37f2d2..00000000 --- a/near/omni-bridge/Cargo.lock +++ /dev/null @@ -1,883 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 3 - -[[package]] -name = "Inflector" -version = "0.11.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3" - -[[package]] -name = "arrayvec" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b" - -[[package]] -name = "base64" -version = "0.21.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" - -[[package]] -name = "bitflags" -version = "1.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" - -[[package]] -name = "bitvec" -version = "0.17.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41262f11d771fd4a61aa3ce019fca363b4b6c282fca9da2a31186d3965a47a5c" -dependencies = [ - "either", - "radium", -] - -[[package]] -name = "borsh" -version = "1.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6362ed55def622cddc70a4746a68554d7b687713770de539e59a739b249f8ed" -dependencies = [ - "borsh-derive", - "cfg_aliases", -] - -[[package]] -name = "borsh-derive" -version = "1.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3ef8005764f53cd4dca619f5bf64cafd4664dada50ece25e4d81de54c80cc0b" -dependencies = [ - "once_cell", - "proc-macro-crate 3.1.0", - "proc-macro2", - "quote", - "syn 2.0.75", - "syn_derive", -] - -[[package]] -name = "bs58" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf88ba1141d185c399bee5288d850d63b8369520c1eafc32a0430b5b6c287bf4" -dependencies = [ - "tinyvec", -] - -[[package]] -name = "byte-slice-cast" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0a5e3906bcbf133e33c1d4d95afc664ad37fbdb9f6568d8043e7ea8c27d93d3" - -[[package]] -name = "byteorder" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" - -[[package]] -name = "cfg-if" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" - -[[package]] -name = "cfg-if" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" - -[[package]] -name = "cfg_aliases" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" - -[[package]] -name = "crunchy" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" - -[[package]] -name = "darling" -version = "0.13.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a01d95850c592940db9b8194bc39f4bc0e89dee5c4265e4b1807c34a9aba453c" -dependencies = [ - "darling_core 0.13.4", - "darling_macro 0.13.4", -] - -[[package]] -name = "darling" -version = "0.20.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f63b86c8a8826a49b8c21f08a2d07338eec8d900540f8630dc76284be802989" -dependencies = [ - "darling_core 0.20.10", - "darling_macro 0.20.10", -] - -[[package]] -name = "darling_core" -version = "0.13.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "859d65a907b6852c9361e3185c862aae7fafd2887876799fa55f5f99dc40d610" -dependencies = [ - "fnv", - "ident_case", - "proc-macro2", - "quote", - "strsim", - "syn 1.0.109", -] - -[[package]] -name = "darling_core" -version = "0.20.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95133861a8032aaea082871032f5815eb9e98cef03fa916ab4500513994df9e5" -dependencies = [ - "fnv", - "ident_case", - "proc-macro2", - "quote", - "syn 2.0.75", -] - -[[package]] -name = "darling_macro" -version = "0.13.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c972679f83bdf9c42bd905396b6c3588a843a17f0f16dfcfa3e2c5d57441835" -dependencies = [ - "darling_core 0.13.4", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "darling_macro" -version = "0.20.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" -dependencies = [ - "darling_core 0.20.10", - "quote", - "syn 2.0.75", -] - -[[package]] -name = "either" -version = "1.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" - -[[package]] -name = "equivalent" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" - -[[package]] -name = "ethabi" -version = "12.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "052a565e3de82944527d6d10a465697e6bb92476b772ca7141080c901f6a63c6" -dependencies = [ - "ethereum-types", - "rustc-hex", - "serde", - "serde_json", - "tiny-keccak 1.5.0", - "uint", -] - -[[package]] -name = "ethbloom" -version = "0.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71a6567e6fd35589fea0c63b94b4cf2e55573e413901bdbe60ab15cf0e25e5df" -dependencies = [ - "crunchy", - "fixed-hash", - "impl-rlp", - "impl-serde", - "tiny-keccak 2.0.2", -] - -[[package]] -name = "ethereum-types" -version = "0.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "473aecff686bd8e7b9db0165cbbb53562376b39bf35b427f0c60446a9e1634b0" -dependencies = [ - "ethbloom", - "fixed-hash", - "impl-rlp", - "impl-serde", - "primitive-types", - "uint", -] - -[[package]] -name = "fixed-hash" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11498d382790b7a8f2fd211780bec78619bba81cdad3a283997c0c41f836759c" -dependencies = [ - "byteorder", - "rand", - "rustc-hex", - "static_assertions", -] - -[[package]] -name = "fnv" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" - -[[package]] -name = "getrandom" -version = "0.1.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" -dependencies = [ - "cfg-if 1.0.0", - "libc", - "wasi", -] - -[[package]] -name = "hashbrown" -version = "0.14.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" - -[[package]] -name = "heck" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" - -[[package]] -name = "hex" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" - -[[package]] -name = "ident_case" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" - -[[package]] -name = "impl-codec" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1be51a921b067b0eaca2fad532d9400041561aa922221cc65f95a85641c6bf53" -dependencies = [ - "parity-scale-codec", -] - -[[package]] -name = "impl-rlp" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f7a72f11830b52333f36e3b09a288333888bf54380fd0ac0790a3c31ab0f3c5" -dependencies = [ - "rlp", -] - -[[package]] -name = "impl-serde" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4551f042f3438e64dbd6226b20527fc84a6e1fe65688b58746a2f53623f25f5c" -dependencies = [ - "serde", -] - -[[package]] -name = "indexmap" -version = "2.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93ead53efc7ea8ed3cfb0c79fc8023fbb782a5432b52830b6518941cebe6505c" -dependencies = [ - "equivalent", - "hashbrown", -] - -[[package]] -name = "itoa" -version = "1.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" - -[[package]] -name = "libc" -version = "0.2.158" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8adc4bb1803a324070e64a98ae98f38934d91957a99cfb3a43dcbc01bc56439" - -[[package]] -name = "memchr" -version = "2.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" - -[[package]] -name = "memory_units" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8452105ba047068f40ff7093dd1d9da90898e63dd61736462e9cdda6a90ad3c3" - -[[package]] -name = "near-account-id" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35cbb989542587b47205e608324ddd391f0cee1c22b4b64ae49f458334b95907" -dependencies = [ - "borsh", - "serde", -] - -[[package]] -name = "near-contract-standards" -version = "5.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41c8a6923acd33d2cc0e64ba9bc626746f178bca4490e5742ec9c6d2f6f5a0a9" -dependencies = [ - "near-sdk", -] - -[[package]] -name = "near-gas" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14e75c875026229902d065e4435804497337b631ec69ba746b102954273e9ad1" -dependencies = [ - "borsh", - "serde", -] - -[[package]] -name = "near-plugins" -version = "0.2.0" -source = "git+https://github.com/aurora-is-near/near-plugins?tag=v0.3.0#eff928fda517caf4276b9b58b5a3ece0c48ba5ed" -dependencies = [ - "bitflags", - "near-plugins-derive", - "near-sdk", - "serde", -] - -[[package]] -name = "near-plugins-derive" -version = "0.2.0" -source = "git+https://github.com/aurora-is-near/near-plugins?tag=v0.3.0#eff928fda517caf4276b9b58b5a3ece0c48ba5ed" -dependencies = [ - "darling 0.13.4", - "proc-macro-crate 0.1.5", - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "near-sdk" -version = "5.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d817ec6e678b52ad82d2e05886fb0c379b44beaedf5df6141b2365aadcd7a482" -dependencies = [ - "base64", - "borsh", - "bs58", - "near-account-id", - "near-gas", - "near-sdk-macros", - "near-sys", - "near-token", - "once_cell", - "serde", - "serde_json", - "wee_alloc", -] - -[[package]] -name = "near-sdk-macros" -version = "5.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2046b1c44f866e46c2ed6944a43c8caab125cc216322ab1f552a02e9c2bcda8a" -dependencies = [ - "Inflector", - "darling 0.20.10", - "proc-macro2", - "quote", - "serde", - "serde_json", - "strum", - "strum_macros", - "syn 2.0.75", -] - -[[package]] -name = "near-sys" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbf4ca5c805cb78700e10e43484902d8da05f25788db277999d209568aaf4c8e" - -[[package]] -name = "near-token" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3b497804ec8f603fd11edc3d3b7b19f07c0beb9fe47c8a536eea1867097fd40" -dependencies = [ - "borsh", - "serde", -] - -[[package]] -name = "omni-nep141-locker" -version = "0.2.0" -dependencies = [ - "borsh", - "ethabi", - "hex", - "near-contract-standards", - "near-plugins", - "near-sdk", - "serde", -] - -[[package]] -name = "once_cell" -version = "1.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" - -[[package]] -name = "parity-scale-codec" -version = "1.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4b26b16c7687c3075982af47719e481815df30bc544f7a6690763a25ca16e9d" -dependencies = [ - "arrayvec", - "bitvec", - "byte-slice-cast", - "serde", -] - -[[package]] -name = "ppv-lite86" -version = "0.2.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04" -dependencies = [ - "zerocopy", -] - -[[package]] -name = "primitive-types" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7dd39dcacf71411ba488570da7bbc89b717225e46478b30ba99b92db6b149809" -dependencies = [ - "fixed-hash", - "impl-codec", - "impl-rlp", - "impl-serde", - "uint", -] - -[[package]] -name = "proc-macro-crate" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d6ea3c4595b96363c13943497db34af4460fb474a95c43f4446ad341b8c9785" -dependencies = [ - "toml", -] - -[[package]] -name = "proc-macro-crate" -version = "3.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284" -dependencies = [ - "toml_edit", -] - -[[package]] -name = "proc-macro-error" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" -dependencies = [ - "proc-macro-error-attr", - "proc-macro2", - "quote", - "version_check", -] - -[[package]] -name = "proc-macro-error-attr" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" -dependencies = [ - "proc-macro2", - "quote", - "version_check", -] - -[[package]] -name = "proc-macro2" -version = "1.0.86" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "quote" -version = "1.0.36" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" -dependencies = [ - "proc-macro2", -] - -[[package]] -name = "radium" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "def50a86306165861203e7f84ecffbbdfdea79f0e51039b33de1e952358c47ac" - -[[package]] -name = "rand" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" -dependencies = [ - "getrandom", - "libc", - "rand_chacha", - "rand_core", - "rand_hc", -] - -[[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", -] - -[[package]] -name = "rand_core" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" -dependencies = [ - "getrandom", -] - -[[package]] -name = "rand_hc" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" -dependencies = [ - "rand_core", -] - -[[package]] -name = "rlp" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1190dcc8c3a512f1eef5d09bb8c84c7f39e1054e174d1795482e18f5272f2e73" -dependencies = [ - "rustc-hex", -] - -[[package]] -name = "rustc-hex" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e75f6a532d0fd9f7f13144f392b6ad56a32696bfcd9c78f797f16bbb6f072d6" - -[[package]] -name = "rustversion" -version = "1.0.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "955d28af4278de8121b7ebeb796b6a45735dc01436d898801014aced2773a3d6" - -[[package]] -name = "ryu" -version = "1.0.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" - -[[package]] -name = "serde" -version = "1.0.208" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cff085d2cb684faa248efb494c39b68e522822ac0de72ccf08109abde717cfb2" -dependencies = [ - "serde_derive", -] - -[[package]] -name = "serde_derive" -version = "1.0.208" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24008e81ff7613ed8e5ba0cfaf24e2c2f1e5b8a0495711e44fcd4882fca62bcf" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.75", -] - -[[package]] -name = "serde_json" -version = "1.0.125" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83c8e735a073ccf5be70aa8066aa984eaf2fa000db6c8d0100ae605b366d31ed" -dependencies = [ - "itoa", - "memchr", - "ryu", - "serde", -] - -[[package]] -name = "static_assertions" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" - -[[package]] -name = "strsim" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" - -[[package]] -name = "strum" -version = "0.26.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fec0f0aef304996cf250b31b5a10dee7980c85da9d759361292b8bca5a18f06" - -[[package]] -name = "strum_macros" -version = "0.26.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c6bee85a5a24955dc440386795aa378cd9cf82acd5f764469152d2270e581be" -dependencies = [ - "heck", - "proc-macro2", - "quote", - "rustversion", - "syn 2.0.75", -] - -[[package]] -name = "syn" -version = "1.0.109" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "syn" -version = "2.0.75" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6af063034fc1935ede7be0122941bafa9bacb949334d090b77ca98b5817c7d9" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "syn_derive" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1329189c02ff984e9736652b1631330da25eaa6bc639089ed4915d25446cbe7b" -dependencies = [ - "proc-macro-error", - "proc-macro2", - "quote", - "syn 2.0.75", -] - -[[package]] -name = "tiny-keccak" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d8a021c69bb74a44ccedb824a046447e2c84a01df9e5c20779750acb38e11b2" -dependencies = [ - "crunchy", -] - -[[package]] -name = "tiny-keccak" -version = "2.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237" -dependencies = [ - "crunchy", -] - -[[package]] -name = "tinyvec" -version = "1.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "445e881f4f6d382d5f27c034e25eb92edd7c784ceab92a0937db7f2e9471b938" -dependencies = [ - "tinyvec_macros", -] - -[[package]] -name = "tinyvec_macros" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" - -[[package]] -name = "toml" -version = "0.5.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" -dependencies = [ - "serde", -] - -[[package]] -name = "toml_datetime" -version = "0.6.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" - -[[package]] -name = "toml_edit" -version = "0.21.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1" -dependencies = [ - "indexmap", - "toml_datetime", - "winnow", -] - -[[package]] -name = "uint" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9db035e67dfaf7edd9aebfe8676afcd63eed53c8a4044fed514c8cccf1835177" -dependencies = [ - "byteorder", - "crunchy", - "rustc-hex", - "static_assertions", -] - -[[package]] -name = "unicode-ident" -version = "1.0.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" - -[[package]] -name = "version_check" -version = "0.9.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" - -[[package]] -name = "wasi" -version = "0.9.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" - -[[package]] -name = "wee_alloc" -version = "0.4.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbb3b5a6b2bb17cb6ad44a2e68a43e8d2722c997da10e928665c72ec6c0a0b8e" -dependencies = [ - "cfg-if 0.1.10", - "libc", - "memory_units", - "winapi", -] - -[[package]] -name = "winapi" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" -dependencies = [ - "winapi-i686-pc-windows-gnu", - "winapi-x86_64-pc-windows-gnu", -] - -[[package]] -name = "winapi-i686-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" - -[[package]] -name = "winapi-x86_64-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" - -[[package]] -name = "winnow" -version = "0.5.40" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" -dependencies = [ - "memchr", -] - -[[package]] -name = "zerocopy" -version = "0.7.35" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" -dependencies = [ - "byteorder", - "zerocopy-derive", -] - -[[package]] -name = "zerocopy-derive" -version = "0.7.35" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.75", -] diff --git a/near/omni-bridge/Cargo.toml b/near/omni-bridge/Cargo.toml index 6f4e7999..bc3847fb 100644 --- a/near/omni-bridge/Cargo.toml +++ b/near/omni-bridge/Cargo.toml @@ -4,6 +4,7 @@ version = "0.1.0" authors = ["Karim Alabtakh "] edition = "2021" publish = false +repository.workspace = true [lib] crate-type = ["cdylib", "rlib"] diff --git a/near/omni-prover/evm-prover/Cargo.toml b/near/omni-prover/evm-prover/Cargo.toml index b6e876fd..184d1d53 100644 --- a/near/omni-prover/evm-prover/Cargo.toml +++ b/near/omni-prover/evm-prover/Cargo.toml @@ -3,6 +3,7 @@ name = "evm-prover" version = "0.1.0" authors = ["Karim Alabtakh "] edition = "2021" +repository.workspace = true [lib] crate-type = ["cdylib", "rlib"] diff --git a/near/omni-prover/omni-prover/Cargo.toml b/near/omni-prover/omni-prover/Cargo.toml index 9baabb35..d19a178f 100644 --- a/near/omni-prover/omni-prover/Cargo.toml +++ b/near/omni-prover/omni-prover/Cargo.toml @@ -3,6 +3,7 @@ name = "omni-prover" version = "2.0.0" authors = ["Near Inc "] edition = "2021" +repository.workspace = true [lib] crate-type = ["cdylib", "rlib"] diff --git a/near/omni-prover/wormhole-omni-prover-proxy/Cargo.toml b/near/omni-prover/wormhole-omni-prover-proxy/Cargo.toml index ed289810..86f84068 100644 --- a/near/omni-prover/wormhole-omni-prover-proxy/Cargo.toml +++ b/near/omni-prover/wormhole-omni-prover-proxy/Cargo.toml @@ -3,6 +3,7 @@ name = "wormhole-omni-prover-proxy" version = "2.0.0" authors = ["Near Inc "] edition = "2021" +repository.workspace = true [lib] crate-type = ["cdylib", "rlib"] diff --git a/near/omni-token/Cargo.toml b/near/omni-token/Cargo.toml index 575720b9..dfdce8f2 100644 --- a/near/omni-token/Cargo.toml +++ b/near/omni-token/Cargo.toml @@ -4,6 +4,7 @@ version = "0.1.0" authors = ["Karim Alabtakh "] edition = "2021" publish = false +repository.workspace = true [lib] crate-type = ["cdylib", "rlib"] diff --git a/near/rust-toolchain b/near/rust-toolchain index e17bbf13..f8c2ce7d 100644 --- a/near/rust-toolchain +++ b/near/rust-toolchain @@ -1,3 +1,4 @@ [toolchain] channel = "1.80.0" components = ["clippy", "rustfmt"] +targets = ["wasm32-unknown-unknown"] diff --git a/near/token-deployer/Cargo.toml b/near/token-deployer/Cargo.toml index 76e7f008..c35179d3 100644 --- a/near/token-deployer/Cargo.toml +++ b/near/token-deployer/Cargo.toml @@ -4,6 +4,24 @@ version = "0.1.0" authors = ["Karim Alabtakh "] edition = "2021" publish = false +repository.workspace = true + +# fields to configure build with WASM reproducibility, according to specs +# in https://github.com/near/NEPs/blob/master/neps/nep-0330.md +[package.metadata.near.reproducible_build] +# docker image, descriptor of build environment +image = "sourcescan/cargo-near:0.13.2-rust-1.84.0" +# tag after colon above serves only descriptive purpose; image is identified by digest +image_digest = "sha256:b41cb89907f92b114da9e2be4e109bff30ab792c22ddcbd2a4cff8e340cb9acb" +# list of environment variables names, whose values, if set, will be used as external build parameters +# in a reproducible manner +# supported by `sourcescan/cargo-near:0.10.1-rust-1.82.0` image or later images +passed_env = [] +# build command inside of docker container +# if docker image from default gallery is used https://hub.docker.com/r/sourcescan/cargo-near/tags, +# the command may be any combination of flags of `cargo-near`, +# supported by respective version of binary inside the container besides `--no-locked` flag +container_build_command = ["cargo", "near", "build", "non-reproducible-wasm", "--locked"] [lib] crate-type = ["cdylib", "rlib"] diff --git a/near/token-deployer/build.rs b/near/token-deployer/build.rs index b69c686a..a59a6be6 100644 --- a/near/token-deployer/build.rs +++ b/near/token-deployer/build.rs @@ -14,6 +14,10 @@ fn main() -> Result<(), Box> { cargo_near_build::camino::Utf8PathBuf::from_str("../omni-token/Cargo.toml") .expect("camino PathBuf from str"), ), + env: vec![( + cargo_near_build::env_keys::nep330::CONTRACT_PATH.to_string(), + "omni-token".to_string(), + )], ..Default::default() }, build_script_opts: BuildScriptOpts { @@ -23,8 +27,12 @@ fn main() -> Result<(), Box> { "Cargo.toml".to_string(), "../Cargo.lock".to_string(), ], - build_skipped_when_env_is: Vec::new().into(), - stub_path: None, + build_skipped_when_env_is: vec![ + ("PROFILE", "debug"), + (cargo_near_build::env_keys::BUILD_RS_ABI_STEP_HINT, "true"), + ] + .into(), + stub_path: Some("../target/omni-token.bin".into()), }, }; From 0e3cef71ea8c7a7842f1013590e07f704e40b594 Mon Sep 17 00:00:00 2001 From: Ivan Frolov Date: Thu, 16 Jan 2025 00:12:29 -0500 Subject: [PATCH 19/73] chore: updated `cargo-near-build` --- near/Cargo.lock | 10 ++++++---- near/Cargo.toml | 2 +- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/near/Cargo.lock b/near/Cargo.lock index c2dcd628..d8e4310f 100644 --- a/near/Cargo.lock +++ b/near/Cargo.lock @@ -636,14 +636,15 @@ dependencies = [ [[package]] name = "cargo-near-build" -version = "0.3.2" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33da359f840830cccaedd09d58f78d468c948b9d17e31e3d8e83bf0859f6a38b" +checksum = "5e79fd27a64c34c965d14a81c28c93e512f77439fa4a8a501bb6c262e9e792fe" dependencies = [ "bon", "bs58 0.5.1", "camino", "cargo_metadata", + "cc", "colored", "dunce", "eyre", @@ -657,6 +658,7 @@ dependencies = [ "serde_json", "sha2", "symbolic-debuginfo", + "tempfile", "tracing", "wasm-opt", "zstd 0.13.2", @@ -687,9 +689,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.2.9" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8293772165d9345bdaaa39b45b2109591e63fe5e6fbc23c6ff930a048aa310b" +checksum = "fd9de9f2205d5ef3fd67e685b0df337994ddd4495e2a28d185500d0e1edfea47" dependencies = [ "jobserver", "libc", diff --git a/near/Cargo.toml b/near/Cargo.toml index 4832006b..4a5fb91b 100644 --- a/near/Cargo.toml +++ b/near/Cargo.toml @@ -27,7 +27,7 @@ panic = "abort" overflow-checks = true [workspace.dependencies] -cargo-near-build = "0.3.0" +cargo-near-build = "0.4.2" near-sdk = "5.7.0" near-contract-standards = "5.7.0" hex = "0.4.2" From ae1c25ad9be6c6044b51c8a863e0665c54494fa7 Mon Sep 17 00:00:00 2001 From: Ivan Frolov Date: Thu, 16 Jan 2025 01:31:07 -0500 Subject: [PATCH 20/73] fix: deadlock during builing token-deployer --- near/token-deployer/build.rs | 110 ++++++++++++++++++++++----------- near/token-deployer/src/lib.rs | 2 +- 2 files changed, 76 insertions(+), 36 deletions(-) diff --git a/near/token-deployer/build.rs b/near/token-deployer/build.rs index a59a6be6..2cab7775 100644 --- a/near/token-deployer/build.rs +++ b/near/token-deployer/build.rs @@ -1,41 +1,81 @@ +//use std::str::FromStr; +// +//use cargo_near_build::{extended::BuildScriptOpts, BuildOpts}; +// +//fn main() -> Result<(), Box> { +// println!( +// "cargo:warning=`token-deployer` build script working dir: {:?}", +// std::env::current_dir().expect("get current dir") +// ); +// +// let opts = cargo_near_build::extended::BuildOptsExtended { +// build_opts: BuildOpts { +// manifest_path: Some( +// cargo_near_build::camino::Utf8PathBuf::from_str("../omni-token/Cargo.toml") +// .expect("camino PathBuf from str"), +// ), +// env: vec![( +// cargo_near_build::env_keys::nep330::CONTRACT_PATH.to_string(), +// "omni-token".to_string(), +// )], +// override_cargo_target_dir +// ..Default::default() +// }, +// build_script_opts: BuildScriptOpts { +// result_env_key: Some("OMNI_TOKEN_WASM".to_string()), +// rerun_if_changed_list: vec![ +// "../omni-token".to_string(), +// "Cargo.toml".to_string(), +// "../Cargo.lock".to_string(), +// ], +// build_skipped_when_env_is: vec![ +// ("PROFILE", "debug"), +// (cargo_near_build::env_keys::BUILD_RS_ABI_STEP_HINT, "true"), +// ] +// .into(), +// stub_path: Some("../target/omni-token.bin".into()), +// }, +// }; +// +// cargo_near_build::extended::build(opts)?; +// Ok(()) +//} + use std::str::FromStr; -use cargo_near_build::{extended::BuildScriptOpts, BuildOpts}; +use cargo_near_build::BuildOpts; +use cargo_near_build::{bon, camino, extended}; fn main() -> Result<(), Box> { - println!( - "cargo:warning=`token-deployer` build script working dir: {:?}", - std::env::current_dir().expect("get current dir") - ); - - let opts = cargo_near_build::extended::BuildOptsExtended { - build_opts: BuildOpts { - manifest_path: Some( - cargo_near_build::camino::Utf8PathBuf::from_str("../omni-token/Cargo.toml") - .expect("camino PathBuf from str"), - ), - env: vec![( - cargo_near_build::env_keys::nep330::CONTRACT_PATH.to_string(), - "omni-token".to_string(), - )], - ..Default::default() - }, - build_script_opts: BuildScriptOpts { - result_env_key: Some("OMNI_TOKEN_WASM".to_string()), - rerun_if_changed_list: vec![ - "../omni-token".to_string(), - "Cargo.toml".to_string(), - "../Cargo.lock".to_string(), - ], - build_skipped_when_env_is: vec![ - ("PROFILE", "debug"), - (cargo_near_build::env_keys::BUILD_RS_ABI_STEP_HINT, "true"), - ] - .into(), - stub_path: Some("../target/omni-token.bin".into()), - }, - }; - - cargo_near_build::extended::build(opts)?; + let workdir = "../omni-token"; + let nep330_contract_path = "near/omni-token"; + + let manifest = camino::Utf8PathBuf::from_str(workdir) + .expect("pathbuf from str") + .join("Cargo.toml"); + + let build_opts = BuildOpts::builder() + .manifest_path(manifest) + .no_locked(true) + .override_nep330_contract_path(nep330_contract_path) + .override_cargo_target_dir("../target/build-rs-omni-token") + .build(); + + let build_script_opts = extended::BuildScriptOpts::builder() + .rerun_if_changed_list(bon::vec![workdir, "Cargo.toml", "../Cargo.lock"]) + .build_skipped_when_env_is(vec![( + cargo_near_build::env_keys::BUILD_RS_ABI_STEP_HINT, + "true", + )]) + .stub_path("../target/omni-token.bin") + .result_env_key("BUILD_RS_SUB_BUILD_OMNI-TOKEN") + .build(); + + let extended_opts = extended::BuildOptsExtended::builder() + .build_opts(build_opts) + .build_script_opts(build_script_opts) + .build(); + + cargo_near_build::extended::build(extended_opts)?; Ok(()) } diff --git a/near/token-deployer/src/lib.rs b/near/token-deployer/src/lib.rs index 62a89027..f50db030 100644 --- a/near/token-deployer/src/lib.rs +++ b/near/token-deployer/src/lib.rs @@ -11,7 +11,7 @@ const BRIDGE_TOKEN_INIT_BALANCE: NearToken = NearToken::from_near(3); const NO_DEPOSIT: NearToken = NearToken::from_near(0); const OMNI_TOKEN_INIT_GAS: Gas = Gas::from_tgas(10); -const BRIDGE_TOKEN_BINARY: &[u8] = include_bytes!(env!("OMNI_TOKEN_WASM")); +const BRIDGE_TOKEN_BINARY: &[u8] = include_bytes!(env!("BUILD_RS_SUB_BUILD_OMNI-TOKEN")); #[near(serializers = [json])] #[derive(AccessControlRole, Copy, Clone)] From 7f0e759500179bb6738d9b1a850cdda86c6c8a0a Mon Sep 17 00:00:00 2001 From: Ivan Frolov Date: Thu, 16 Jan 2025 01:35:45 -0500 Subject: [PATCH 21/73] feat: added reproducible section to all contracts toml --- near/omni-bridge/Cargo.toml | 17 +++++++++++++++++ near/omni-prover/evm-prover/Cargo.toml | 17 +++++++++++++++++ near/omni-prover/omni-prover/Cargo.toml | 17 +++++++++++++++++ .../wormhole-omni-prover-proxy/Cargo.toml | 17 +++++++++++++++++ near/omni-token/Cargo.toml | 17 +++++++++++++++++ 5 files changed, 85 insertions(+) diff --git a/near/omni-bridge/Cargo.toml b/near/omni-bridge/Cargo.toml index bc3847fb..ffb2c66a 100644 --- a/near/omni-bridge/Cargo.toml +++ b/near/omni-bridge/Cargo.toml @@ -6,6 +6,23 @@ edition = "2021" publish = false repository.workspace = true +# fields to configure build with WASM reproducibility, according to specs +# in https://github.com/near/NEPs/blob/master/neps/nep-0330.md +[package.metadata.near.reproducible_build] +# docker image, descriptor of build environment +image = "sourcescan/cargo-near:0.13.2-rust-1.84.0" +# tag after colon above serves only descriptive purpose; image is identified by digest +image_digest = "sha256:b41cb89907f92b114da9e2be4e109bff30ab792c22ddcbd2a4cff8e340cb9acb" +# list of environment variables names, whose values, if set, will be used as external build parameters +# in a reproducible manner +# supported by `sourcescan/cargo-near:0.10.1-rust-1.82.0` image or later images +passed_env = [] +# build command inside of docker container +# if docker image from default gallery is used https://hub.docker.com/r/sourcescan/cargo-near/tags, +# the command may be any combination of flags of `cargo-near`, +# supported by respective version of binary inside the container besides `--no-locked` flag +container_build_command = ["cargo", "near", "build", "non-reproducible-wasm", "--locked"] + [lib] crate-type = ["cdylib", "rlib"] diff --git a/near/omni-prover/evm-prover/Cargo.toml b/near/omni-prover/evm-prover/Cargo.toml index 184d1d53..80938a2b 100644 --- a/near/omni-prover/evm-prover/Cargo.toml +++ b/near/omni-prover/evm-prover/Cargo.toml @@ -5,6 +5,23 @@ authors = ["Karim Alabtakh "] edition = "2021" repository.workspace = true +# fields to configure build with WASM reproducibility, according to specs +# in https://github.com/near/NEPs/blob/master/neps/nep-0330.md +[package.metadata.near.reproducible_build] +# docker image, descriptor of build environment +image = "sourcescan/cargo-near:0.13.2-rust-1.84.0" +# tag after colon above serves only descriptive purpose; image is identified by digest +image_digest = "sha256:b41cb89907f92b114da9e2be4e109bff30ab792c22ddcbd2a4cff8e340cb9acb" +# list of environment variables names, whose values, if set, will be used as external build parameters +# in a reproducible manner +# supported by `sourcescan/cargo-near:0.10.1-rust-1.82.0` image or later images +passed_env = [] +# build command inside of docker container +# if docker image from default gallery is used https://hub.docker.com/r/sourcescan/cargo-near/tags, +# the command may be any combination of flags of `cargo-near`, +# supported by respective version of binary inside the container besides `--no-locked` flag +container_build_command = ["cargo", "near", "build", "non-reproducible-wasm", "--locked"] + [lib] crate-type = ["cdylib", "rlib"] diff --git a/near/omni-prover/omni-prover/Cargo.toml b/near/omni-prover/omni-prover/Cargo.toml index d19a178f..c4f6d947 100644 --- a/near/omni-prover/omni-prover/Cargo.toml +++ b/near/omni-prover/omni-prover/Cargo.toml @@ -5,6 +5,23 @@ authors = ["Near Inc "] edition = "2021" repository.workspace = true +# fields to configure build with WASM reproducibility, according to specs +# in https://github.com/near/NEPs/blob/master/neps/nep-0330.md +[package.metadata.near.reproducible_build] +# docker image, descriptor of build environment +image = "sourcescan/cargo-near:0.13.2-rust-1.84.0" +# tag after colon above serves only descriptive purpose; image is identified by digest +image_digest = "sha256:b41cb89907f92b114da9e2be4e109bff30ab792c22ddcbd2a4cff8e340cb9acb" +# list of environment variables names, whose values, if set, will be used as external build parameters +# in a reproducible manner +# supported by `sourcescan/cargo-near:0.10.1-rust-1.82.0` image or later images +passed_env = [] +# build command inside of docker container +# if docker image from default gallery is used https://hub.docker.com/r/sourcescan/cargo-near/tags, +# the command may be any combination of flags of `cargo-near`, +# supported by respective version of binary inside the container besides `--no-locked` flag +container_build_command = ["cargo", "near", "build", "non-reproducible-wasm", "--locked"] + [lib] crate-type = ["cdylib", "rlib"] diff --git a/near/omni-prover/wormhole-omni-prover-proxy/Cargo.toml b/near/omni-prover/wormhole-omni-prover-proxy/Cargo.toml index 86f84068..1da7d72d 100644 --- a/near/omni-prover/wormhole-omni-prover-proxy/Cargo.toml +++ b/near/omni-prover/wormhole-omni-prover-proxy/Cargo.toml @@ -5,6 +5,23 @@ authors = ["Near Inc "] edition = "2021" repository.workspace = true +# fields to configure build with WASM reproducibility, according to specs +# in https://github.com/near/NEPs/blob/master/neps/nep-0330.md +[package.metadata.near.reproducible_build] +# docker image, descriptor of build environment +image = "sourcescan/cargo-near:0.13.2-rust-1.84.0" +# tag after colon above serves only descriptive purpose; image is identified by digest +image_digest = "sha256:b41cb89907f92b114da9e2be4e109bff30ab792c22ddcbd2a4cff8e340cb9acb" +# list of environment variables names, whose values, if set, will be used as external build parameters +# in a reproducible manner +# supported by `sourcescan/cargo-near:0.10.1-rust-1.82.0` image or later images +passed_env = [] +# build command inside of docker container +# if docker image from default gallery is used https://hub.docker.com/r/sourcescan/cargo-near/tags, +# the command may be any combination of flags of `cargo-near`, +# supported by respective version of binary inside the container besides `--no-locked` flag +container_build_command = ["cargo", "near", "build", "non-reproducible-wasm", "--locked"] + [lib] crate-type = ["cdylib", "rlib"] diff --git a/near/omni-token/Cargo.toml b/near/omni-token/Cargo.toml index dfdce8f2..c03da01b 100644 --- a/near/omni-token/Cargo.toml +++ b/near/omni-token/Cargo.toml @@ -6,6 +6,23 @@ edition = "2021" publish = false repository.workspace = true +# fields to configure build with WASM reproducibility, according to specs +# in https://github.com/near/NEPs/blob/master/neps/nep-0330.md +[package.metadata.near.reproducible_build] +# docker image, descriptor of build environment +image = "sourcescan/cargo-near:0.13.2-rust-1.84.0" +# tag after colon above serves only descriptive purpose; image is identified by digest +image_digest = "sha256:b41cb89907f92b114da9e2be4e109bff30ab792c22ddcbd2a4cff8e340cb9acb" +# list of environment variables names, whose values, if set, will be used as external build parameters +# in a reproducible manner +# supported by `sourcescan/cargo-near:0.10.1-rust-1.82.0` image or later images +passed_env = [] +# build command inside of docker container +# if docker image from default gallery is used https://hub.docker.com/r/sourcescan/cargo-near/tags, +# the command may be any combination of flags of `cargo-near`, +# supported by respective version of binary inside the container besides `--no-locked` flag +container_build_command = ["cargo", "near", "build", "non-reproducible-wasm", "--locked"] + [lib] crate-type = ["cdylib", "rlib"] From 4914b6cfb173e84f729caa040328fcef475d6950 Mon Sep 17 00:00:00 2001 From: Ivan Frolov Date: Thu, 16 Jan 2025 02:07:12 -0500 Subject: [PATCH 22/73] feat: migration to reproducible builds --- .github/workflows/check-wasm.yaml | 3 +- Makefile | 30 ++++++--- near/build.sh | 101 ------------------------------ 3 files changed, 21 insertions(+), 113 deletions(-) delete mode 100755 near/build.sh diff --git a/.github/workflows/check-wasm.yaml b/.github/workflows/check-wasm.yaml index d06fb8e7..00247b54 100644 --- a/.github/workflows/check-wasm.yaml +++ b/.github/workflows/check-wasm.yaml @@ -14,8 +14,7 @@ jobs: - name: Build NEAR contracts run: | - cd near - ./build.sh + make rust-build-near git status changed_files=$(git status --porcelain --untracked-files=no | wc -l) if [ $changed_files -gt 0 ]; then diff --git a/Makefile b/Makefile index 66518cb2..099aaa04 100644 --- a/Makefile +++ b/Makefile @@ -6,8 +6,9 @@ NEAR_MANIFEST = ./near/Cargo.toml OMNI_BRIDGE_MANIFEST = ./near/omni-bridge/Cargo.toml OMNI_TOKEN_MANIFEST = ./near/omni-token/Cargo.toml TOKEN_DEPLOYER = ./near/token-deployer/Cargo.toml -MOCK_PROVER_MANIFEST = ./near/mock/mock-prover/Cargo.toml -MOCK_TOKEN_MANIFEST = ./near/mock/mock-token/Cargo.toml +OMNI_PROVER_MANIFEST = ./near/omni-prover/omni-prover/Cargo.toml +EVM_PROVER_MANIFEST = ./near/omni-prover/evm-prover/Cargo.toml +WORMHOLE_OMNI_PROVER_PROXY_MANIFEST = ./near/omni-prover/wormhole-omni-prover-proxy/Cargo.toml OMNI_RELAYER_MANIFEST = ./omni-relayer/Cargo.toml @@ -26,21 +27,30 @@ clippy-omni-relayer: cargo clippy --manifest-path $(OMNI_RELAYER_MANIFEST) -- $(LINT_OPTIONS) rust-build-omni-bridge: - cargo near build non-reproducible-wasm --manifest-path $(OMNI_BRIDGE_MANIFEST) + cargo near build reproducible-wasm --manifest-path $(OMNI_BRIDGE_MANIFEST) + cp $(TARGET_WASM_DIR)/omni_bridge/omni_bridge.wasm $(RES_DIR)/omni_bridge.wasm rust-build-omni-token: - cargo near build non-reproducible-wasm --manifest-path $(OMNI_TOKEN_MANIFEST) + cargo near build reproducible-wasm --manifest-path $(OMNI_TOKEN_MANIFEST) + cp $(TARGET_WASM_DIR)/omni_token/omni_token.wasm $(RES_DIR)/omni_token.wasm rust-build-token-deployer: - cargo near build non-reproducible-wasm --manifest-path $(TOKEN_DEPLOYER) + cargo near build reproducible-wasm --manifest-path $(TOKEN_DEPLOYER) + cp $(TARGET_WASM_DIR)/token_deployer/token_deployer.wasm $(RES_DIR)/token_deployer.wasm -rust-build-mock-prover: - cargo near build non-reproducible-wasm --manifest-path $(MOCK_PROVER_MANIFEST) +rust-build-omni-prover: + cargo near build reproducible-wasm --manifest-path $(OMNI_PROVER_MANIFEST) + cp $(TARGET_WASM_DIR)/omni_prover/omni_prover.wasm $(RES_DIR)/omni_prover.wasm -rust-build-mock-token: - cargo near build non-reproducible-wasm --manifest-path $(MOCK_TOKEN_MANIFEST) +rust-build-evm-prover: + cargo near build reproducible-wasm --manifest-path $(EVM_PROVER_MANIFEST) + cp $(TARGET_WASM_DIR)/evm_prover/evm_prover.wasm $(RES_DIR)/evm_prover.wasm + +rust-build-wormhole-omni-prover-proxy: + cargo near build reproducible-wasm --manifest-path $(WORMHOLE_OMNI_PROVER_PROXY_MANIFEST) + cp $(TARGET_WASM_DIR)/wormhole_omni_prover_proxy/wormhole_omni_prover_proxy.wasm $(RES_DIR)/wormhole_omni_prover_proxy.wasm -rust-build-near: rust-build-omni-bridge rust-build-omni-token rust-build-token-deployer rust-build-mock-prover rust-build-mock-token +rust-build-near: rust-build-omni-bridge rust-build-omni-token rust-build-token-deployer rust-build-omni-prover rust-build-evm-prover rust-build-wormhole-omni-prover-proxy rust-build-tests: cargo build --manifest-path $(NEAR_MANIFEST) --tests --all-features diff --git a/near/build.sh b/near/build.sh deleted file mode 100755 index a891adcd..00000000 --- a/near/build.sh +++ /dev/null @@ -1,101 +0,0 @@ -#!/usr/bin/env bash - -# Exit script as soon as a command fails. -set -e - -DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" -DEFAULT_RES_DIR="$DIR/res" -RES_DIR=$DEFAULT_RES_DIR - -show_help() { - echo "Usage: $0 [OPTION] [COMPONENT_DIR]" - echo - echo "Build NEAR smart contracts." - echo - echo "Options:" - echo " -h, --help Display this help message" - echo " -o, --output-dir DIR Specify output directory for WASM files (default: ./res)" - echo - echo "Arguments:" - echo " COMPONENT_DIR Optional. Directory name of the specific component to build" - echo " If not provided, builds all components" - echo - echo "Examples:" - echo " $0 # Build all contracts" - echo " $0 omni-bridge # Build only omni-bridge contract" - echo " $0 token-deployer # Build only token-deployer contract" - echo " $0 -o ../dist # Build all contracts and output to ../dist" - echo -} - -# Parse command line arguments -while [[ $# -gt 0 ]]; do - case $1 in - -h|--help) - show_help - exit 0 - ;; - -o|--output-dir) - if [ -z "$2" ]; then - echo "Error: Output directory not specified" - exit 1 - fi - RES_DIR="$2" - shift 2 - ;; - *) - COMPONENT="$1" - shift - ;; - esac -done - -# Determine Docker user flags -if [[ -z "$BUILDKITE" ]] && [[ "$(uname -s)" != "Darwin" ]]; -then - userflag="-u $UID:$UID" -else - userflag="" -fi - -# Determine architecture-specific tag -arch=`uname -m` -if [ "$arch" == "arm64" ] -then - tag=":latest-arm64" -else - tag="" -fi - -if [ -z "$COMPONENT" ]; then - BUILD_CMD="cargo build --workspace --target wasm32-unknown-unknown" - echo "Building entire workspace..." -else - if [ ! -d "$DIR/$COMPONENT" ]; then - echo "Error: Directory '$COMPONENT' not found in $DIR" - exit 1 - fi - BUILD_CMD="cargo build --manifest-path $COMPONENT/Cargo.toml --target wasm32-unknown-unknown" - echo "Building component: $COMPONENT" -fi - -docker run \ - --rm \ - --mount type=bind,source=$DIR,target=/host \ - --cap-add=SYS_PTRACE --security-opt seccomp=unconfined $userflag \ - -w /host \ - -e RUSTFLAGS='-C link-arg=-s' \ - nearprotocol/contract-builder$tag \ - /bin/bash -c "rustup target add wasm32-unknown-unknown && $BUILD_CMD" - -mkdir -p $RES_DIR - -if [ -z "$COMPONENT" ]; then - find $DIR/target/wasm32-unknown-unknown/release/ -name "*.wasm" -maxdepth 1 -exec cp -f {} $RES_DIR/ \; -else - binary_name=$(basename $COMPONENT | tr '-' '_') - find $DIR/target/wasm32-unknown-unknown/release/ -name "$binary_name.wasm" -maxdepth 1 -exec cp -f {} $RES_DIR/ \; -fi - -echo "Build completed! Contract files are in the $RES_DIR directory:" -ls -l $RES_DIR From 91be708abd04a39f79aca297ecdfe6a971e539cf Mon Sep 17 00:00:00 2001 From: Ivan Frolov Date: Thu, 16 Jan 2025 02:08:11 -0500 Subject: [PATCH 23/73] chore: install cargo-near --- .github/workflows/check-wasm.yaml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/check-wasm.yaml b/.github/workflows/check-wasm.yaml index 00247b54..4dcce760 100644 --- a/.github/workflows/check-wasm.yaml +++ b/.github/workflows/check-wasm.yaml @@ -12,6 +12,10 @@ jobs: - name: Clone the repository uses: actions/checkout@v3 + - name: Install cargo-near + run: | + curl --proto '=https' --tlsv1.2 -LsSf https://github.com/near/cargo-near/releases/latest/download/cargo-near-installer.sh | sh + - name: Build NEAR contracts run: | make rust-build-near From 6e56fb9185d7b3fcc2103e66da1ed61ed61be1a0 Mon Sep 17 00:00:00 2001 From: Ivan Frolov Date: Thu, 16 Jan 2025 02:13:34 -0500 Subject: [PATCH 24/73] chore: create res dir before copying --- Makefile | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Makefile b/Makefile index 099aaa04..f4a3dc09 100644 --- a/Makefile +++ b/Makefile @@ -26,27 +26,27 @@ fmt-omni-relayer: clippy-omni-relayer: cargo clippy --manifest-path $(OMNI_RELAYER_MANIFEST) -- $(LINT_OPTIONS) -rust-build-omni-bridge: +rust-build-omni-bridge: $(RES_DIR) cargo near build reproducible-wasm --manifest-path $(OMNI_BRIDGE_MANIFEST) cp $(TARGET_WASM_DIR)/omni_bridge/omni_bridge.wasm $(RES_DIR)/omni_bridge.wasm -rust-build-omni-token: +rust-build-omni-token: $(RES_DIR) cargo near build reproducible-wasm --manifest-path $(OMNI_TOKEN_MANIFEST) cp $(TARGET_WASM_DIR)/omni_token/omni_token.wasm $(RES_DIR)/omni_token.wasm -rust-build-token-deployer: +rust-build-token-deployer: $(RES_DIR) cargo near build reproducible-wasm --manifest-path $(TOKEN_DEPLOYER) cp $(TARGET_WASM_DIR)/token_deployer/token_deployer.wasm $(RES_DIR)/token_deployer.wasm -rust-build-omni-prover: +rust-build-omni-prover: $(RES_DIR) cargo near build reproducible-wasm --manifest-path $(OMNI_PROVER_MANIFEST) cp $(TARGET_WASM_DIR)/omni_prover/omni_prover.wasm $(RES_DIR)/omni_prover.wasm -rust-build-evm-prover: +rust-build-evm-prover: $(RES_DIR) cargo near build reproducible-wasm --manifest-path $(EVM_PROVER_MANIFEST) cp $(TARGET_WASM_DIR)/evm_prover/evm_prover.wasm $(RES_DIR)/evm_prover.wasm -rust-build-wormhole-omni-prover-proxy: +rust-build-wormhole-omni-prover-proxy: $(RES_DIR) cargo near build reproducible-wasm --manifest-path $(WORMHOLE_OMNI_PROVER_PROXY_MANIFEST) cp $(TARGET_WASM_DIR)/wormhole_omni_prover_proxy/wormhole_omni_prover_proxy.wasm $(RES_DIR)/wormhole_omni_prover_proxy.wasm From f8ea53270a6d39505a76765a868a98058da67c84 Mon Sep 17 00:00:00 2001 From: Ivan Frolov Date: Thu, 16 Jan 2025 02:28:13 -0500 Subject: [PATCH 25/73] chore: pushed wasm files --- near/res/evm_prover.wasm | Bin 232515 -> 0 bytes near/res/omni_bridge.wasm | Bin 577370 -> 0 bytes near/res/omni_prover.wasm | Bin 329724 -> 0 bytes near/res/omni_token.wasm | Bin 256703 -> 0 bytes near/res/token_deployer.wasm | Bin 599002 -> 0 bytes near/res/wormhole_omni_prover_proxy.wasm | Bin 169593 -> 0 bytes 6 files changed, 0 insertions(+), 0 deletions(-) delete mode 100755 near/res/evm_prover.wasm delete mode 100755 near/res/omni_bridge.wasm delete mode 100755 near/res/omni_prover.wasm delete mode 100755 near/res/omni_token.wasm delete mode 100755 near/res/token_deployer.wasm delete mode 100755 near/res/wormhole_omni_prover_proxy.wasm diff --git a/near/res/evm_prover.wasm b/near/res/evm_prover.wasm deleted file mode 100755 index d62777b9af5b25e277c7d86f19b5090813f48eee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 232515 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%0D4ck=#mCEOa1F3n04k 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

(fJk>0( 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 diff --git a/near/res/omni_bridge.wasm b/near/res/omni_bridge.wasm deleted file mode 100755 index 3501964828297b720393ffb539a0d518d893a234..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 577370 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

Y%1@vn(fYZyvnp!|gvRIBG6 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

Xo5bfj|_`m^#1%@dJf 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%0DY=Bi0Y`pXlYTqA9&z@^Z`Mhcb(X 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

  • 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μ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 H2lPJxW!Wi< diff --git a/near/res/omni_token.wasm b/near/res/omni_token.wasm deleted file mode 100755 index c5058897bc5c61cc48ae3b9b30cb4b30c555d220..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 256703 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%0Apsc$U$}P!&F9?qBLs3Qg$M5g((TLipzcQ zly}ysYEV2NffFFMZ~&uxlNV#f8QoH^V{0)?QorI-jdmJcUZYz9gM^UTt->N|>4aEi zZBE4U(G)pf-@_C+45r!%75LI&y0!^)(`z-?(pq%C>vZ;;XlD_h0)Y~)Ag=OxMOB{5 zxAJ$5T5snJZnRh&udPO!>$vW1QPS)P_;}A7=t8qXF}#Cnj!b^k8kS)F0+ZAy!D)Fl zw>VyNRFc#m-1S5SnnV&4hMuq6%dShZVo#{_NYXX5NYKT#5+r54_eV5qp|VzbVKrx< z#z$)5aX(zLLi2nAfmAMK%W&DQBOnCA)@@dUtNT?0Y1&7k<8ncrG@WX8kv;}6AFmY; zsETdSLcLq#R_=~EX84BexTK#tuZDEu>=?l8(`Mw9L~(lV9=>wt2T*&x>gcw$j^=F(4+eGAz7DkzA-)$IrH-P$RcWAd_)|- zIXX*0IIX_phY{0{N{(>a;LLs+m;O>{ zcCns{{i{SN^V}c=tVho4sDDu(uvFVz-)szhBy19_XXv3ktwAFLup6LpmunuBexX2w zIZPJCLp72aqohw4_djXgohbO${@13qD<=}=vLpsv*IL#$sD7tOowi*#+W3nic#k2c zUVPpXOU-82+VEo}j=R=3$lxY;Vg{HNX-y_)WoKJJyH8h&S0x@Z z?uyKgCuMiYgFTuT&iaPPLaJXU!%39Ke8!E>{Na>Rvo*$+(gU1a?p2>`Q4JeM>;#Ou zT~7##kFr;3O<~KkmI92b;DRNUo|PA<5>X#nAB{wx_%2iCfn+hP-|^h*#|J>s?{I8I z|LOpbF8X9u!;s3T**Fm!ckDrUI~ou;S54(C&fn(^9)YTW06iaD^4fRTaw_1mT~9vI zD?Yp^=gJG!>NrR7(c3!$eKUfg>(UbdF6)eVP!4I=X*kMPD>sT_v&V;+D4~bmZVJ10VehbjLi--ZOjz$@pp)VS^5_cUen3IEZ!ktA+saVo z+u1i@Hf4S=;_~QiV9}S?7hS##u-_CxdZelWg4j};m0~bA*%d9YqBLI(x2#Y&b3siE zcg>NX>s1Z=iUeC_{L}L9Rblh;L%$rs7s&-qr%AvT-TSMJie24&Ix+q-$Pn>8DSsx6 zGPJb6UOyPiv~ei|DSz0j-1}yLD8Hv{4{4G&F4mW~w=h6n^$CB=@eeP-53 ze@2BYu~LctP*tj4c3D_j1>(;ep*S8rwfddWHRSP{#5MMX+(W%*9Dpy@@gy#O>fDRXPb< z`Ha~#3|6!DLT#}#blm@s{?@@&I&7yN!u9dd45}!aMorV2r{hk$cfnhM?Ke9tAR*)K z!!J>om)mx$H)1|*y}BNN?V~!$x9D%2{#J1SR+RTKiK`1Gl0P znAjnyw4(|~Q0WWBxqZGx+#YhSLUJBKF;1U~pN>GAE?;4W6La}PxnJ*b5ZI_J+xeAU ztk$c|^Xt*c5n-h)?MbjfL=v&o(}=CRgvET{z%s|Jf&UCxV2UtacLB?PpBS?!GAcPM z05N;2LZrClpc5%VR&Y|EPla}GDS6w2Hx_)9YGo4?HhHqdM|iHW#2v;XJd?iCgFrkK zqhdKzFqaD%*F?5dd!0fQ{)pdvAOM{D7pPK3f19qb$;4^QA z@}jW(sKvSx03C`FY$D2V*q}XN;QFa%`vm$Uos(UjI4%06HkogE7)a%mw3C4X_7ut6 zJp!H-(z^*kZ0)Sgd7&!~%>tvv1vrw@@uwlc@}EI{Qr|ishv)=*I((-1@eRR65LAT7ds;`fp&@LTJZeNvaFJnAd>A_|yHTt-1wMzHz zhE1gqTXo+W^im)zH4O)@1l>~CCDw2+ks}6HG5M8LcDU1Upr<$PCDE_scvAR)%Fn|V zlppEvR(>A6SiVQ>g|UPxqR+>cl`bE6xm64`afzhmSBs67PaV-?Y3G{8(snk33i={aD_zl1y5mAYO!z1EE=s&dYcAB%{QH7x|i1Wg`t> z*Pk$>-!Hg~3dJf5zsg^U=|mQ&awVzYtrVOp6akRHev<;)wSC&5d-D5 zYPMDXv_4zk&L8Vn&L8fqFlSh(uYqONu?4J#3?>-JlegFJQMLcR*rieJ?TA%8uNT#C z1@hpprEXjU%oaRHCqq-~YCbwrrY)#6QsNO}5z-M)2>>5@AL^Qt*#w+cDILIn=gQ81 z2Z^ShMoYMapk$oJiD#`UqP>x()*%D=DX}Bl;^+}|()#je(kk?IU~Nsn=TTKzlLAyT ztP#(>G1p#c%&K6(?h~zcPDLxbrZx0k)h8XGj}J-fiNX4GIx%5&Q=jF!XFw}lN&T8j z#jTBrGMq;-O?78dwD1MVgZhAv6Mj>}Xij7%60d2J5DWSY46C{@%zljrV5k6qQHuK6 zF@uK$*+c><_7YTGJN@2;>K4wsqCtnlVWM$@*$V_lxb-#_(%b5)wD^459fL-%Y{ij_ z*N{;85m(V@DRe()^B-3k`+eebDu8h;JA>6D#{o{zqB`GNIfjA77^*#Y%aqRx)wGas zSV$y_)}asK4KXk;djZVF+)@AT;yk$GbXdlMU3E35h!B6ES$fZ~{HTgc#qBgAJfiOY zu)q4!<@^MaG=TN;FH}g||BUKe-lNnRUh<+L6WSk< z)%KxM0ah67CZ(K+c~#K{u?Nw{{Bc;(_El5xR1j@{Z|Hp(-m{d@Mr5W=ldsim}6;mACssZC6b4sGf)VR8!ZDwIR$;na8 z>@v&6s;5K_i~IDvcQZR+843Drryfds?R0#!*GY3-8qIYwP}i@#R2o@htHUZSRoS*) zpRh+c=^fNcia%Oy^#h8?1~Tr!seSZ+Fj?LZ>G$sRqM5qT{#d%kjl3_U9Yk_(>NFPC zqL>gG1CVS8EP}L|TlsLN)~XnY8UxTVJd(00{IKW6Lx}-si#wOq+?DVn*?&+fdPbQ& z2U}z)XKMhq3R?q0%x~MNu$vf9GB+m8K}^u*9R2lHsjkFCXW<-s)fHIEBkT9|$t8CmR24`KDU63Ggq{Gp1iSQY1u>S)7DyDEOc z)yqiRX{HdG>y|mH<;A1H$SF?IVWBkd@O;YQ4$XTg0zHFD zQe4@S1Q?{JBERTl7y|LRW`pV`4jz(J}GA# z$pO^qqO>mDh4O`|73-#oG3A6AbgDJ`vvYFw{$*glNw6mc9&-#r9DE;AE26uUsKi7s%(QP&0K>vh3%Md-qy--T=YU3l{9L+Z`P z@^3AIOcC@>Gv{~B$czLTS_Pvq`(mf<9i!}1NT}|8VdzX?VT{->t-mC2>Ypn=roMxD znv44_2OH*l#InLYAm8K#Ihrvf9n?lsiubMcXRiE?8sJ#7vP9T>dUSTzu)lXz*ne!; z+iODaHthec&yWyE2Yn!r@;$LR09OpM`l7c9Ne^w2r0ue>Z-&LP*=5!7ewel$>tb?n zJ1P{{cgzITkQIl^grsi^Nm3UY6m=SZaicc9x{%eV#U0$6@D+&kqVN;c59q|G!2i4a ze&|ewti#6Fj{HIr9JuAUF2-=!ilE#wi_#Ho`w{tD{^I(qusm7$cdE=OBx?5%o4Zb! zMxT7s`$8%?oa3M##~EJt=3>B*_o01BVcsdn#U8nfw!PDRTphwTcfA8kTOcBSj-u&7 zeGHJ5-!o7H)Ok8CS0X+ir$3J_zuk78*Ny$o>lh{#EaMtV_f(i)O)%~~E5V0l8x>pE zQiH^(;()O&>_qoUAVy3Z*Fffl>(ORj??AXHtzgl|GHCODF-5y#s!@X);; z=f7#Y`mcGMF+=pDW;TP27_a&PrKC1%fO0w3`=C!42#szYZAT2sNVL#ySlGETtl~9@ zP`vd54xS;m^=G~QY%IShOj#=f^OyxxgeL}HTWdON(d@Owy}J5hZ;!TzZJW<(rN1gK zUhQ*;{lj;1oJhmSme-5BfjF(XjJ&>1b+Rq9oRn8)WO?8?epRS*3}vLyTHcrK4^$)QW$0U%lvvL=h># zs*kzwNZgQPVOgba=%#zNDAp*SyD`KTJ7l zs++FbuE;{s(6Od^O0ioV`amy`5Y-sE-HCVO@MInSBTtYYBHRy$te;P=`18~a zS}sana?(k{0y#!rDAH2h7qxq2bzuOp2vjYulP8Z;vRERAI#cSzb@F5|K%MekCPS5l zJ`r^wN~}PbC{|Yqv-n|rOeD(jie?^)zp684%^{V+MZJAlu(-v&9SrW>NIMuj@Oe_=2s9PY z6nGK(e4WM?y#VA6xZBh>IaEx!m_@>+xM13E;dqT`S7Jvqo2vkj) z<`BrEe5lUUY4HomNZUN!6u$+(xbN9%6JwMcfYu9mPWP|J59I-@lTc+=l16G$8`E93-2`a6E-x(ZEhmq>K&hl-J%UXHtXnqY~HH3APJ>KuYFOJ zZAG)pIi#w~>oZs&GzN^HFifo)_v{WPYK^$3&&Ysv{2-Fc@*fR~R|%g9k3tC%y12r} zNZ}7iXGFm1?GZ1a>Vo))@ws_y04eUs`{S8jKN>bH$%c27bD{BLWXXuQT?kX1#$N^??x>jiw}8 zZoybsy5z6l^Wh5s%D@0r0}ND7i29LlPHNl!UA6s8{dtD|{I&=6XNE!UZDha2*j2Q+ z9~z!SR$m&_)o@`9A+zt8%+|GR|Fg;Wk7ga+X>ytl1ra6as$AzSek>(eLsG98BV3k^YDqH8-HcsNmF>Mmk4A@6J-gLx-=hd#@#aR zxk1&h@m}O38~Bys7?cUBM%&e-XrMOp1BjbkTZQHT$Ff8&zh}fui{R?pY_M7zV!gpI zYM4I(B$g65=xMva)1h8ao0!AO@4JersCW2&^T0&Yz3K6DE6~{SkVO|#PG~eoF~5nU z7$+I?=J>(z0ZlS)!sa$V37g03Nl4YzVI5MHv5!=96KO)~OBaqvO0x=b4V@%AuPcq1oK*BMq_H@0Q zdpnHg(Cy9Hv&`Py@HB?6puXRZy1lzUAVwwnq-~lC1v(3 z@{O$2AUVx;jIA5wF9-=*KhMk-jD4d?2bsf+u`k>n0A{ulPIt6(JV&$Wj?;?#DZJ66 zop@sJ1W@4N51N`mh@cdf+0*n?^{;4@88>u3s5P`wGRP7Xt*S%hT~9^RzD=2FNaKwV z79*$LV{PE!EDQjl(^i0lYpvbH89+ZerC}KL z=@cF8ed-3sRuBroEIg#d4x=JaTE9Y&pk#25<#c^RfJmdD;GRZ0)EV0i=RX4t^7q=b z{OjGKLsM`oCM{b<5)msRQBA<2=g>7{;9Y7jV&E#CMZS2Rt7(tyxvH8D))xt;`a#V+ zuu^>m53`~&wHU-R0#-5?{s^pW+lv*t7Z36$%2JdrX-}qh!&-FqNtNI8u(|ULDQL<;|)sA(P6LIwO$AJQAFn$@6ca=EeuX$J#m9DmyT>+BQvivAL0iw32^rS<>m>#^S7o>q&+=*ZeqDg>}l`4>p zvPP=$sytx7czUOoFeX_@tsJG19qszYK%#c64`+A*j*an!bAX&f5=>xf{XF%Q$5wX# zbE>TlUG19&*zpF&yNWYHZ`k*;2CGjcVa{Y_`O+$n-@@ zdtIRAXR&QOn^6Uo&%BE2R-;SOlB)X^~X zweN3OYF(2wVr#doLG3Dgg0NYfeK%06R*drTu-gSArco?G=lvDl2D z?`LH!+ql z^iW!2yuo%T#t}|n1^8-ynhsz_B@dH(WI2NEJrSJov(0WAQWKw9VJTt!qo8%4ha%C? zZ`Z)us_i!`qKC0e8;_(^4K+Cl^VYM1x}acbD*jKV-=TOL-a?0-DgV?Xr=&1o0oLQN zhzuuJvTkJa)7?U|mL1RNoi-FiatKbFPI2@mxV)rqxr~LP7R!;Ll{F5 z?j8Y*bl=I(m4CJ@zIhJHFB3lO)2k*j0&SeChW;=zLZ~vxbossX#^1dtLod8j)a!z( zMlc8aMF5jZ5k1-n3d^-#+rr=~T~LHSNr3t>4P#NO2a8{g!5(oEguswJN2V%~Ll`lk zUdww?jNx2L(bhb)DC?p03I!sD4@EbFr^E`7u_{Eu1$tze{VpM}*`mE6>l5x$N4Rk| z7*a`t0X4n;ks3oNp%Qi&;0S)`z-H;%rshcHkWmZ$Rsk(0oT;*t&{>7t-bnBXIeRk6 z=0awH0mlQYftAAg8UbA&*TbP0g3Qt4{M(QNQuJA*L?H@+@N%1^rTAx9|5T4>_)#;z zXbINjFTqDT!T|ux7`=ArY7 zqskc2rjY{^1=QV%0&au?S@DjvQ&T5)(@}O&28l|x+R2$i_z0cboRKNNAaul&Go3dq z-TO-K!?$hg(cH!eey;n#2;G$v(Z2x5e`&~yFe0n>1(17vISj~mhc3P(-C3=5KukJ z_j-10ouE)X*zA0>_UpJAQ+z!~89pP)5HYMk%9rovWAX1N1VS3b1SOcrs9tVq7b+i* zjk5?hJhW%KA?{ug#%nA|;G%BKEr}3!$8E~Ck}eR-D-DOX6F?0e+Q=HLL@nnnt1Ic} zv|j#&DuB84e6hL}pTDhi?o;f8)Gl-^mvFIC*c$a_>BGyGPS5wRDDgr+T^7=54=1Oq z^s>5>)BAf)PSW_=hNKFttFnb9{>Q>;j+$`vlRI%0u6*IUJc@4-rD#JkQ;914X#J&@ zF~rhm21_&Bx70899j6+OP;1tdF+>pBt|hBhRxc;r^ttpt^-gyj{Q6>jwO=lLzxon4 zUMIc2qqb_b6S2G`oQ4-8e6f7B#-+SfaIiS;Iou@0$rI>~HTlL4pjRk`er^Ve?b$$p zif3P6{pSMe`>NQtwsM3-;VSKu1#8$VOFyIXVw1)lX+InoBsbh7Jc~e-i*3S;V3^gE zcuLr7ZigapFnc+-eps!2R5dZ9fjP2#&G~9DaaIi#O&&||UzS}<9}z&ULx5w<^u3-@gbo;k;vGGzwM*T4CMX> z#&B32I9W=fT1w%xWn7p4QkF5`X0!TE{x_{_0WxS2bAmS6L` z#7=nsy541eY@qZ%UlZv1$!Lt%|Ubz|hGY9%Bo6N&0gslyuXn*{=o>-bcD*e_}Mk(dYz zy)`_lJh56`eh^DvPX*0wP`_z;ao0^<9%}_7@o}|UmwUBV)EbbmG8W-mRF}dF^4ad_ za6CeBIV6W@gzB+nK@!?4iWg~J0rw7sfl2`q!i$-i%`7o9h9E6-P%gRCu7bH28Ayf9 z#?nLpTwOx)K?1KT-1}K^zEso^*#0yfUpJ zjP?%rw1{f5sAUlI4b4xY2U)HOz`LQ*`&}E$fIX@YF`^K5M1%bhaMexZu6rJD>urGz zG)n*mY!xE#SW|$6-)Ry?a5Sp^eHU+QtJz6tGMy_jNH01keT%nOhxt}$$soWKJs<`W zJ(>zIt-$twDk#Tk-05I`v9#m>M$#ZJ{TB`I^=!f{X!PSc4kG~&rQxn;aW3L(G{#1( zn9~wvy5=<3q@43#r3g7GhE3fT!yOUY$f!7z3iF$3QO9BbaKUBxAf=D3(@`OePyskn z1I<0NL3<4=tSa9Q1zzn@eP6oTS=pc)054($Kypop8M}9f4nN0KgNTA!rPRGGh=-=! zWY{_@>T95Fa?*cs#}!`GT5S#1Dm*|Wa=g#qEj)mJvVr??V&StNUIJ4PgjuY3VU`Yi z8ehK2+Gmidu~!z(Qb*^p_kw(`4bQjAv<&rY%brz-49e(oNLjv5Ym%8pU}_gbcWt+U z;ON47GVrrb9nu1@4AbRCEsnT8NZn!Kc*gvcnqWhUT+HE8DfOp0lsi=u??H1gje6x& z-zt`FmlSSeV~bZtUj>buIOE906(y>&}XtS=NeuN@oCQJz{j?KMFwHDtM9atXBr zxIhSNlm86S+L;k+fRPpf%rmyQzFBqYx(2^_QKnn`x;Gx#tqUI%yvWa}8Q`VppY0$+(g8&p>+i=m0HCd<5D5I8k!o-NQ zMxVw;w)|nZuT~UNj2qYMr3pUVqvt9q9vPbQm_eCd1WHDg?N!6PWe!;DapZ-ionscK z`>SMs>Fa@$;t3Pr3?qT~9xcm2rU^+B@618HAp(<(A6fZ+jS5fA+*~|{u@%ikE|x~Q z`xao3+Vdvny;Q;JkkWjL22D_@uE-9kd zLkIyJD568nA$xw_ebMuE3238>fTbrRuoxvJN+}d`(!@?lx`{+1o4d-g5YH6n2W=Im z`%Ai}N=!O&>{>*(6iv;LA~o}Xroh8D(`>3ca?v55xkGaTOsmn&&uDL_A80Tn@hXDB z^T!KV&Otz%OaPjb$1s;pukvSIeXAKDDEb;EX$cIYjXTV+GFt>UVA5Gm*Q0vrqsy?2 zL%>seSeixs3|hzYXMg#8fi8;;@I|@U4Olgjk)B*_dxR$5M_^`ofx9i?UZqOp zPg1_niH>2L?N7Ejj3dBi2E!Tu`WUyb%-k$Q;=+uJsjSP@cW zCf0+WrUr_=VGSW8r^ny@5?n)3bSUYG1NzT!Vl zl#CjKWU5MnhEP(yc!c&rKuvjp>*(!khAS!b-KfjTmnlc_J8VX`E+;)i4XH$1-(XlS z_2JA9b%&;?qNzt{!)K5aJDgQ1U+!k*tQ^tT3|7cqUg$=f#5jVlaN=)GbTUd;5iD}; z8@qv3B9+OsVKrf0bE^f_!Q!!n;1Sdtg^<|vm1=BZ*UoXWkUrgNQd%YZ)@E6nNvhPT zBH*PV=6EpWaJNU8rYYi+2w2WnG^J}DHgXAP05~7 zoWT&Z2d5ZNyV6|Hx z!YRTEdM99&0_0e&WDTe@CNQ$dOx;aKz8j(j}k0_Q16_ zyMCw_Q@CU<6O@V6=>1n{Xp-^K&wjJOs828RQ#aX{+U|DmmT%` zQ3(pWKGCjK+VG~813n6odfz0wRG>iw9|VX-!5!>KNW^C@(@@C(@xF2FHQ72Ds(cag z2i-S)l8QZbhE|Tt?HXL#wv6K&Y5O1@B?k`2S{CMccJ?5UIjq?J`rUJxFQ)T)D~Lp6g~jn50mYMPMbIJW)0+UR?HPS!iw zEk;3v0LBG4ZAHKZ?rQD4wH;v1Y+-LU4zaG^@eo60arYvtfBG@7u7UiRph8@HR|(B9 z)bIbeKL78{SIR${wRE)AdZi_GDh@ExFFrwl%@dzJO!3`BfTO3jLJGEonw_8Gza$V| zO4b)$t0t$*D+Q1{pwyQ;b*4#$wa#C%bPZNJf<} zQ)d7VWGJyCQ-&mjVwe>86=S`hfawd`+T87(yr5f1<~53Palv#p>Ll%iM3Eo>Fxsvk z#SfP7w+RHXzW&*`L8q6zxUrZaO@$sEgbp+!<&*p5bT#2NzCFsvb1eXT>bCv}n;UY5 zv43T#Lim`WlyREsDN-DsblP}U&U~E5(A8@cIXc;pAGZ6_;i-5m$6fM6U>)dDx=0`8oRk~0PCr80MgSXt01A^FoftsK8CjGqYK^m=r1Obqpad)&C#7r&%c;hk@m=hU$nF-~K`c&di^QNt|kXO2oz zUr|Tq8IS>q%SOiR67GCuha=T)q47eZ^onk#uIPg(7S%%Zs=dQ$u7=wC5xBYhkk*{c zw>l`IT6cd!sm*0_Dg3RWztDF0CY5Hk#?7a? zyeQ=UZ;BT2Lc=;#?zw?OVy`tH!g3quH43z`9z;me`}(uIDju0J!-gU{S-s8b7EiHXf!g*SIV;!TSTZR@^6WgX_c&qmy&D}>XV9C(}GzDVhy&Co)2N! z*IUP@>hG$7dP_SA$sQF7>ejDdDi#NU&+;nO!}dwfg8X(T{aVzTtE7U@!L=Q`bXX{Z z$gA`ZP)Tn8Bn>sz*?P~X^cEv2=srB?giEblo8tWwdojF>4Y;XDmnzm*xL|V~cT#6( z6b}hmMtr87tNS&dqnSxPXTHX6kjXNi);mud+n{aN0m62kX5t`u$FZm_$_x92QuviA zyTfF8dL^>OX|962z^U2Fw51|+AH(%&u7o^#N(xyc! z+?kRe`~ICmg|;}Gf6z0ElMK5?t}(&{gQlWJ&%hFlDD_r}j0Vb;sVG(5p{mB&R&8wV z3gSGgS@j3~AG|+hjq30NEBd;`d|WPJm_WwrMXE7)q5GKP>P#J{xD1c>=HUlLx}LV6*fXiK~&9PQ@}6!=#Zri;{P)yU9h(oZO^74GojmiEEf=AG=0ZZX!F6 zJV$)gl;XgjhH_2C#oSz6%GICaxoXXcYeX<}6@|A~(@e@wqCJjDp2p?Ch;wXCR4s~8 zD;VpU5@u^Cc8*ede9q#S`VyXJwg=n`#WaODz;d7wU@mT8q@vKZgv;$s)U$#dO+c5a z&O(%;(ixNUOnB3H;n-aboQSWNKspnsG<7vk2p+Cj?nFBlOIK5qU^8!;Gu# zBT?pA#+;xbw>uKH;1Rp#LXRtE^(mB7>LH(xyV^J8U46*wYbM@q@LNNZlW#ZobN+eS zO+1rp?kb}vY1n+HTQ&_**_#=y32)aTQt0^OWK-XWrD} zkspMQez*Y(g(<974_#YiNM}bI=vMC-4ZbD#fd!hTV*d%S%JUG?i;_*`V3{UeGjB#B z6%8_W9_$)~a6jRr0w`LGPP{-l8~)e$eG2O5Y%wxXjn~Gru?+=(g6Lab^__1%p84YdsUTEZsdMvh|F#e6dMF+e;F`Oq%6Olp--l zxNqtBEc@1J5g@6%Nvte&%6T(sQ7;YI5l&9z*XY%dx-4#Svd3vnsm(l|FiY|S{rPq& zjxC+)MF&~tPF<{Dl%b^xw{d3~6^EKyeS?YXz+VYlF_>U|egExQ{drder;*SPt%nKI z{#W_dAjavFIxcM38huetF7v;vJ&->wd$6QvLEYN&(sZza=+WT{QU$Wo4i3d-c9~DJ zt*X4rAD+I9xsX?}(w;0FRmZD9DmWka<`jg87!LK7>eZOMRB1$nuLZ9fS2ABo*4L!? zudtMw8mX$L?QE-C55xz{qMj_)?o90In43@4H*hRBEOyAn^Ia2avTfpbjKokU(!y11 z{-#8ro{YAECFEfHh}YOZ@r`aFs&Dy>#wf}-U=L^vUAPnrk#dh1qa-dPR#(}2s(Judl6+;{_(_DaW{;JOVn?ssGzetVv8h52wz@+7m#a+eG zIM)j4>Vp2miSRO6wr*1&Vpk7tkNgE0_OXT6|;vgZM-G?mZK!>Q8 zw071&FnOXXbO}9hf~m#wRZ#1-MtpB*83-a&b}1*t|Iv**)5b88wNFe5l)QY0kV!LIjf|%vTEGxfT4P-0 z6Ur@>dRvLQskrZLG(&@dV*!86%fd&$@y>6);m23L?iO1UlZ8vZb^fb9_?4yQ@9=(~ z-bwxM*o3WQwVcOoCrWc`*swdE0n)XsVON|t9^k~3ojur9b4g_!$t{FEiI>>4Eus1rVI{&Q|j!q_Km0UCdp5$Z%+PT zi~@Z|ec4|wFC~i)Pm*6vKv>ODHjFRZSoEaTj12!HvYxs<6k3^G?XXEQSh({;Uwrt} zF%S(|B~9ZvY6HMEH&An9X{^IrREGs{^RF5TsGE|<)1_%`P~br<8m!OefKQc&K1>Oe z=?Jv}S^jayh-f+_qIRIkED{Oif-))Z;=4~IxKZ>-1fmFMg-jyoqM--Fjzp#cI4b}L!{B(z zM8d;RWa9p7s9_Qg!cF!R`8kPa%4my2IFqw`B$=T}h7DFknd;%<$vB!1Ko+m4;ckrP zWQq6|8K-{&c*Q!$N0Jt#0C56%zyv8n2mNF=5^GuTF_Fh)J}{L+aj4%2iSm1%s;mHd zV$GfUgC>>fR&{xK#$3=X%40hfI3!Wk(~{Oi*1D~rwn~cKADJsX4O=DGpHX>iI8qDGJu?FE!Hh9dY#XH6I~K`^HXeT~Tg`P+5ud+EgNmG`t3DUIV`fT1GA zG6Opj`Um+E1fVVZ)Kwu0kJ&H+=uSR$#Q-^)Pg@JhKV4U~U43i|YFQQPqXV#L*1oHL zm!^!jGU83kp`wVxUh%AazJ~`=X_U?4T3njC9eO+(2XVUgvV}n^KM;l}^B}Py&;Ps? z=?r)r>oc~5dP?FIh%_YnQ_2)Jc6cO22FuYV>X5x-)Qhp4TjzBYL$up`S07`RvR@vU z+bo#<t^t*4N;}J)-M8Gc734>Pk^p&?&O=8o_MyHrQk+866$4U=IrR`KUfhdtW#2 zpN-I4-ZG<<6tMz1ZR&HE)fq4VR3!6&;`uSxq87()7=Dta#mfZ!F?NFD-}InLikD0h zUtDas4-io$vnQbH6h-+VHIQvpUGX|nbn*`?QEI(-MuQ>L+Bizio_W;pmmg7Xa@Ftp z{4&#fv_aB9OC3Am1+SHCY*VFbQK)na==*@>qY4bVZ`c;CN3(GwTY?=>yuxf}?w9UL zGiF%W;G!I31Uj|7(!~40vi9@|Moc4Jf>LCG#a$)a7!Q>R{)iem*VaP5- ziNmTmHX|ldFl8&qw)AfC>oWq>!}XpqH-SB^UoR()mg8pe{M2?#$gSe+APSk!va4{Cd#!ychoiw3Uq??3!NJcPNAn58U zvl!t4j1~!iG1BB$*`c7n;1h1@iGtH6BupMF)Ov~kp1|UEqJv4kHQTB$BGhgQMF>*4 z5bLQyd;C@ln(YzUO0I3X^ZaZAqr=doNYY4zOL6tE6Pda-PR#0qx{!~8)D-q6rh{zY zMQn{z5?rialV9>@WVY`79EqiD_SHnJtt+!{M*j94_7#%jyBw~f0u@9R@olB$m=5I} zM=KHvO|N)tL@VU8EHPAXsc-FzqgF^Qd9yDHsb{Q){PH?s3TXohFJebkvPQEr@gG0! zA%*s(05SlKt>vw-B0fxw;nazu*L9JB^NwRKZc%en)jrV&qx+7Bc#u?f*qgP+6 zJuPgb!E{7*-d$w4?6Q{IWv%$n6AUmpZ!!F4!17ZD3$?)PApKxYs*W`7FhK?O16Bdt zV=o;C08l}v0SMbarZT|c@W`p6lU=9F^fQNvOE%qyNT~P|*4^CttKQ=T5h$`)SiN3| z%!T#a)SI0#QLjD;%Hsc8y$UGXRp_^=Le{q)Xd?bj`BZNiqn6lPPy_K7zno-@RHeJQ z>%Ah@dUJhspJ-u!&6$9 zh9X?lYD8x!(U{C%XyPMQw1kp)6sKb}>GB4ro1Mv8zQC_D@_KYGWG7@=e$L4N6h#~= z2eB9t@uDb2hzSf&@@B`9R(WoHuv|;vylS@Xz;ex<=52n(bw# zym5Vym0vJCi5UMFJ|G;n=(|y{x%e$JIAs|DsZ!R<#5|q}9Zagc-ZdaES(xVKUp8;C zf6VL$t6arJc{c2pWCs}V!6r|2o+i41wgRZM=3gL(soGn8Q}rJ$a>gdtiY#~^P?9bE znk&od&GqpOgfTFkVc%jBx0n9pV5O4-m4<;zJy2|{$dHMk*7Y*XxQdO#9KhX{qH={jDsNPW z<@Lr8A3mQAqleE&Wsvu8(;AU`wmlL(c&fp$hN1kbu`E+8=M5uX9}<9Ij8+1hii{L1 zZ35<0Fe6X!a6YeEm8-CxiLJX@quMHxovV3~{F#*{t{sWDL6wV7sL_!dtbjb}OYy@d6Y zWzNMmLmojmpOYxml`LJnB#9(=D4=a@qbdsDwaaY+D>l3gjOkVr#CQK1))H}>|UkL2_-?4 zf+tCMt2UAZk#X@oYz>mAeNmnY*Z8VOXnLoz23)5k2Ffq%0}JO{ z14zD=^#Z|^ks?hC(`}t%c9dk53O2yXN{E*(kPFD7BIagqO;pm;B|; z!bY*;`qrjbW;5mbenhOG!twl^u+Zj=U`2vFaE z#+HWi+XjM+8KiFV0Wa*HR(O;o{cFX*cp3&ms`?@&R7stdw?+Up4p?nk0BKw5OcRc# zx8i)-1i9z2R_jIXS6ii)H{-0UlHurA*<0?|LqL38MISK@SW)~(k)(|L{9rchMK>}z z?gmGuKvU;W!mG9Uz(G`!6u;6vKKCbs!>OVjcL+N$bThfM0VlD$Hm72h`ZZm1@~-6z8ZqnN!0P z5jr8*X5+eT8?(<`ur+aEo_FR&;nNlHmH%W+!Z4f+lHtmUp|=zpgklN05iRIe--;DG za03w$4ylbY5Q0*8Q!RRj=FkX~mnl~OHJC20Pge^&q@HB-4Y0;gwCseY&3UAp3`dp} zmQ0pbY_QfSU}5R0`8Fk^ZeeOW1RjD5f@GwY!azuzq56g|FUxn2X+m-8(e*_dSA2!U z^3S6wk~#!4JFx0h1fxf2UgzeWsQY$L)ODiT{ecIxW!DSVV@Tc2j2%DiF-w+)0~`Xz zPrFX9f9}k%vo6~;sE%QJ0L=29aY4*SRXE1yQB{u5!x`4d<&x(Nn8ZAk$NUibC9;eC z@^%~F%Xx26k*yg`hR$f{$@IezdV2Q>{b8+~^`vc*2IGti)A5)7QKJ#}9N(CyQ@!an zN?b?<9-h;LZ@+dBiqB-Ak|BJJ6-4qq%m)^L^^0$#RwUr-B5pF0%RkdgxY3qb0)kGh z5^2Xw-x->uyiIxh+GfYcM`W&5sJ0L^d4>G}iQ4*VxAY$UMXS<2ZF<5uZRH=M8Ogo+KUCB{GNn79sKa zSy*jqSaJe!uI~zLFm;KTY*=5c6-JDgW4AMpFUNcA^ncM`5lY}_HT%gfu9h6yV z$hd>-cQi~mM2OBJ*5de7dE>D}^1SXg6TVU(~DfilOPA@IAvQ)a;`ZHJF zp(eoy>sFGb7XC1%WC9G@>LiK^%rh4TQDV`FY8mn0ry(aszRcHTNDw4KHFTFeTHgD7 z*$Uv;7sWa&w`UmOQOOgf)9C6(vA(og7@DzV6c}4A@5!Yd7HC~NELpJc@W!TwqQbJA zQih{KhRq?vCf@i~A)a)4GywV{^;i|^m@WLriM z+XbCp;xMIlGt_>Ne94jFOr4L7f*jwV)U3yLqz(^;I_j79hul)xB351KO(U#1Xzw45 z4TYrCt&oP<;&@8pSehJTt1<4Cj3SwID6QY{LBOvR#r9~1Oef{q*M^obtuyPtNf?df z|9T1Y6Ak@@g!yqykzQqyf`CvcEQ^M{eX4R|D@Y*1o)9T7I9PsUP>aNIg&WJi7WrYp zK-VNc4uU!0WkPWLlUYS7oHUY%mQ^JAN>RZ=skM$EDwMaj;pA)s9LpbA5xJtgZgC?guqs zt~NRuEr1*?D)h%sJ$02W(5S8ovyq+;fmTn*hezv;Ml1Kni&|EWme3mXU^T*+O94J; zlw6~lUY&#TD%a_izUq{xhn9Q5$8xW~0)OTNMWmgg%QWH{f7vyO`p5Q4LXBXs$F?qd z&+Pfm007#l4+jmb)SE+mn8 zaPjB_DXDcnqRcv^kObTuODi7V^|z;kSqn;Cclk>51QI@YHSo}GK5I&Am1kK?w zAxs?tVM2sg%FVEo?3gM-Ua@0>JhO&8-FUm;?*PIsOmY6>)YjbvjrHp-eIvt#lk3;W z5@Ev5G@XQhN*DxdI4eTDW#UmFE%Y>RNSrE5&z8?|3^KGZT)zhaD z9j{tb|N3b=LX;`q<|f{X=8Xw}FcSkBSz5X#!8%ayvNH?sGB(#|(|w*xJ)c$YbUtnk z@WCb>HI;52LQsH~qagG_)sb}Mmy=}ALVBJq;<;Z% z8FtN#^XkFaMYRskm3P*WVX7mPW43w-xOo6O)1||_V|OL!$z#_HX=-WqkI+BhU$Ua>FYHUQY0J>1`nDA*+#xejZvnh)`9Kg;GBJmBo7Qja-D`~|qk+0n&*<2aT^NS- zk@nYQM0H_xC1NMg20rM2uh#E8KeDFC;HbyabAC6|#rmXhDG4EHEFw^$+oF5Bq5?%l zD*f41|JWQqD&MYZHBizt*fQmO-M|pA=vOsYbu}1b3U7>!uRo~qStKdZYb1#%tgbG* z_>#rGOBx@u&wy21MyHQfIU1M5bze-6Ae@q>#l$8A%B;wv9{^j{eici!^ zn#Zph)VFE}9$&pnWW;Y=hclD0H2pw?qLuo9TW$}0iFQ}yxV4`Hc(Lk_WIw!BGjwCv ztS{;3($GtQchfr(Uo(ChrZ1*$=14x5f2|P_%O~>>YNtSGPE#P1ttoJ}dXP?y%t|>T zt2}+fR9DU7pQ#NFV5+aYQP9LAhPR~Mbdu6mjX(}lGR z8Ig{Y+3dD3^+4gIFmg_oURD0FJHdJ_Xebz$YUXh6T&r&kS`216#ZV&xS};-D43*J; z$1)?IE_K(%Nm2^R%T!%BPn_1@RSk;vB_0lk3OZ9zQry>S*VO@F?fTr;YS&A9gM!91 zjDr|##PxT7sD8G)4$x|_6l*^>nvqdcS;AbXVVL+VqL?VIA)-{YF58|RU*rIx3}ssn{znJVH&9((wrg?iC@0%6%|=O4=kqD3;No@Chcl!PAm+RtpMZ?Z zxfu9_HB)GC-xq2(*Eb5qjWDRE*&^oSke^{u<2|PHlT-Y_+6g}h@{}L^7)Bw?4J&~Z zv}&Qy*wPx}^m?;Nyr93fFa9;{cw8sQnxn3CrP&OLJ06pOgTIzi_6<6Ns}?uIK)c{c zCl-)PM=?jU0NJD;0)xWVVGwi3SQh1>0ub#LUo%`RI5%qdnMZU5Nn35nQm#H=0K=LW zOe-fJQIx}qURGyh0Rtez@-#whJYDbo5uLJPs6A)bNs0C28R-k6cIsB3HYNqv9#_9o zi`_t}2G&KB0X(-wAw6IqGo9j>zEt#Ge^11tJ->thnNzvkV>(T!@-&T^k1V`=wAJ(#d<0t4}$)Fs9&A)ciiE_N4FPxj@rg%>69W5EeW;F36RJ2)Ue?*-eI(IH^wz$I|e!70ag;!jkoL=8~$4{QUcv`)5&bhmv z!&)|Ns=&9EmC?AXg1t6+lh?N^eo+&?j+80FKoT)i;KRlWFi92DIC74{sre}!zFC&Y zT!G{7p<2cQ;LElotpJnE96&#vm({@x7JP**2se1C)A+VbLM$UczP7zAYNX#O`6U2$ zi$+PU5ONSN8J4by(>=GVyHU5-)Kp*Ol<2prL7@`bVIp8T#Dt--0tEoasU$vO)%Q4@ zpz#VZOSF0fG6yUu>Wi&*x620=5g@_!sv<&lT3_upnC#4>GCTtaU!s7N} zcfznUtGTDadLttamMmsXCHez%n-8=Y^Y{?~F++$BBs!1|B$}J5e-0w6(lwex!303! zwZs;@RCz`YxW8o3UM9ZLzRaAQw6GY3BR-VH11HcguJ3Xp9R&I{^;QJ#0&!UFWB|xp z5Jb%aLC6Pj;Vdk9v1A)c9GC+6j+OHb*X+3<^Q=)G-?y!NzF-=z)ClxXIGN7Wu0E^m% zFHPo|$ee5uoUE=wW0+i_P+F8-rntPPzIK~{BAJ!{XaS*Z4>8taf2>h*0@P{2j$Ko{ zf-Q>KNl6eIvg2rrW}yUgMm>I6bBgTgRt%Rc0O$m&#NXnE%~bn zI%96^D!0>QtQ;-BUwNsW6h0YS<;CiojCSB|l@HRPq0@`pkH!M1o?X%J8HF2yEdEPp zG(ja4L?sU{H93u@)KP;Pz3h|&mLM9JEXV3XJ2|9WHHM&Ca$!x;qINyY|WQk$b z$S36+l|NvL4e3t0E2;Y@CLCfV^g4JtP18|2GwU!egRll3k~Zab%@~9F;lx}73ehGQ z$!mfIo0w>|e4X0F(87HTSv@YlWx7-X#37dIrI>Xe-b=u%k*TAXV27`{UILVn)w8_> z@A)i(phj>l8Fq3Rf#-Z7V@<#SaS=1@ufnJb^? z>e7w{M7m^eYAn7y=_Zhdu?cubCcv#x7+A2O7+TA-=&5p8CL<5RAZ(e9gXJM1F_(Oz zOLarK9oik^n-W0)zzYhbP4{C0B=LGdJ!WH7R4#L3L+1TTz>qb&2{P~P4rMFu`)V|8 z22W%ca0SYREB-XN5*!V7!1s!%HxWOcs3vF^Z3)^{X9Dh|J`KT#>2&~Y4$=YkMq|b{ z8>clk8*OKrUIPLl4+7mq*6#NiG6|bw3z0=bx6B@MRM(s1HU;P;uaFiE4ai8&3CKf|m*gA8-)e zp$nRg4Y;Zn4O{uw?mW2~7P$Aq(i;v31O1}G#K!xIiOejiE-(pn3KTl%y8xi)@dh zpv2y)q_l{JwwM}zq^UEGcM|r_C7ok@Zm1G9SE7(;@j2A04fPb#;7J#YFit$qomn49 zcZfywHgzU@^wdNGm!yDR>3Ear$cIp@&FF;tohc81TU`|<{ed<@G}PY`MTB4`s(m?R zK&e&5gem4sbJDh%03AB;;+PS_BBBZq`z%+k=*!n>v-9@i#Ei=t2?|_8mR0(JF) zbDVFek%e7c-;>4zoU_rp>Z{NF&{9&rPk$?Neb5j3m=q891&CF$f8n!l`ebr8k%Fr| zy85@i_&jnqm!VYYzWV-WqBNMT8IR0-k}Q1sRqy=Pb^Q0lv$>2iJYM&z|L}Ap8{Y=0 zAsNLSkhUNgzv^t~3YP7~hthtyv@NZ(q{fz_%i+?VdMiOEJk0Dwx{`~uwTrd*fZv+) z6yDO5jwSz9cA^%*7x(Y&^FFW$h%k;5Nv0~45;h&dJX;gh&T%Lo5?PfbC-2`0C0-ut z(4Hw7v1CV0Iw=TxbG8U!A$u-J$aXV!S-D?q%3(?OBaxqjZ|r2{`FAEoq zfo9^3Mwy$>ny9A|NyKW4n;Pn8Y<1ACVnD=DsiS3rIMI2CDp&JyyG~bW6uhx?^^I!y zj|2XUlSm3)6&Hwq=RI&f~JPqnMk3Y zWJA~;6b`W%#lTt*9&9>4&bk9?4*HjKn7;EbH)r$D9E2=v?R5ua*v!6xU)74+?Q9+gOV~F1&$_b(Jf$3~UEjI${mwqOU zldwTdSR2+jTJBK=zhI&RS>thP7n!!-Y?UERT?g(Q>Naq))R^p{2092RkG02G4H%J` zeoh@TFE+)ioYSn41Xk2!$W|Tsfbw}LgZV^W5!d#SaiE-5q~Cm3&VRbXq&w6eH5LUn z&pUA^W5L2Pd-mB!3ST4MlK*4~6+*T~71plNoj7j|MN!>9$%Lno5j(CXC0@vvowx&~ zd9WZp;(w#vvQKOnk6>~fY)1Glg}`S`H5B>Ovlr{@o~>N$PKqms^@na5oLb-S%&}U| zpD-qp0T=OAMK!m5yrv$UQD1ewc&u831+Q9DzEvZ?SpSriutUH;;MU z*5YgSKvV;c<)u@3UC1`_ecTUcD$03YR&cl*7o|2!-56Qv8#wG@OJ|~VB1v{`=7h8>-_To z#_%!@1uK31kbRb9j92q>B=Ndda&j#<8_%y*-;{6f1pL$csjHgV39_yfVz6~l(;S%# z*)=ceXI6bcfINS@UbP(|%PyyC7oAHs)Q!7Aci#bOGq*WN9qt4E@f8 z8<$yLK?iHGR%0%f>>c=PzOTM`*QvzhU95lk3G=oxQAv)+;=-)zn9(b1&|JRImZ0}?cBaR-`ytTmtk-Vyzv zZhCQqdXZIg)ks}{Y;s8PG^o=@I3HUTr_rB*iq5!?;0NwHf)0wPn_IOw-WE5MjE-Ji zsMrid*OUyNEaUD@#S$z_VzWl?sBi6e5Vl5cJk?Bt(`I`54vhOXh?jTb24p;>dYXR2 zQQ6@M8@zrTJYmOvA$`DvRPXIqZ#a`};^{^Be$BSirA=MZ&r%;LghCQ`-g(~7-t@I^ z94V5*tI;X1dee8_ev|L7J|d>va^5?>_CRG>8xlVF$sg{1W2S^PA>s8GUjE|$P47BH zPpzN*%13VV_aeN1{OyZ#&)U#u3o{ zTz%w|`N8XsZ8tXO%B#fIiWF)qN8W1IB2mLDF9uOeb#M&vu&_yUo z4y5B@#E-B=oq~QmjkPCq<(Kp`JVgD-BH^uHKNF%Vs;|0HsI1{%{D@)R>1qwC%i?wm z)}hfq7s4+!;8aHdOB^h~1OpN=V~sPIW|Y}Hj+h2;V_M8>%RAdo5v zKJ*t38Hp$Yd%pbIcYb?A?~_&&?f#o z67pog<$m3%rGGymz82DVuGEoo;x0&By#48qZX zl~so``#@>21#%)9hhCLUV2 zrz|TnzqK`hhES%pWN1A((Fh9aWVLOp4H%)46($pEp|imPrR_o@0cN{UJ3x*Es#TCQ z+nUp1=rDwfHGI6&pmstnpMW}8UnFZn)TOpwjIl|v*m3;C4vuV1M58%Js8t(`y%f`K zFQY`5J_LH0Pb;`6zzz5mXyr>7_LttIVIKxR;^Kup)}i^hjLFoiW(a}8-al$X z&PE>$v?%K^Edf?}jZ(lng+z*QEI$|*MH(M9#VG-u2D;UJAfUY4+qcfv;sHL1{0TDo z9+&&g3FM@au_psGeMUKH+QzjcL}`(chpM!V)1ax_3M$Ib4l&|Yl!hysp$0)6de8>3 zy4GMEE{N5qBM9E=xcfn@KCWVdGX}9bY~ZM-t0Dr7Pv;=~9i|_t-tTH}$bGY*cFtCh z4ds2dj#!EV>1v^i>w6tesr;0?h-2wJ3#QZ-yU&9ueXZ9+wodXuQX+W$3zE<4#khyM z$0APXRXi3Wx@3)@5eRYLpftAmxqIoe>ME!jN=RW;)0`DTMR8u&ax51o^&%@>EmqV{ zT0gSVi*6?I;K)kyRVc!Uhm(kr$0b8xr*>oJV?7Om{tdeRA(rwLp_SZSOjizql$N2d z;qa|OEm1&)IG>f(+U`@RC57O{I7WJmoOE5J{pbte6S@dQ$sj0Oem?gqa?&C0L|bPD z^&cd0dA>}B#hqC<|MyOLNPhYPSX)fEWknayhtMH)<=7zlzKujrZO3NEhZ4txpQGqw zR&Qil6=CQ=2(L#imVc=ZGwR^OhgOw`M`VY3Oqqve8=2fAK}qn9b7nssta`|7Y)KN`J@#!2_K&l2gVVRR*gSV-X ziDDk6!mU*JWlly=C}kbn!tdlQ4A(lK(k zTG?+*Jzk^&BBF3w#zzkPp;uCvbsudT@&G3yaU!XhgL^gQX)B_*pr?Oy;uwLZL+;4W z&xu40I}&$2MtmVanne)LP5c!ZuR33^En1b3XF9+e!$w_lQ^^3P^|enH1YwP3`B!y(czHKy}3`Bn{(2gxTX zwOSvEX*de01G#qlI7%Av{7jRJnW-L$5Iv3%5KfbO!gf~B6+FTET0)F*{=96AkuIHp zAD}l?XE6NQEKk4<-lh6ddEpLz=$HKHnP9;rWJ-6BPL3Mmf~wgW7*%Kl)VB6ZdifRjt42UipmrVk)Jq0Hw!>Gm#~!e#Wy44 zS_gEh-$YqB=t&a_?;yXyI}m#p38PAj;}hc>`ZLd0 zgC`+Gn7PqbqU$%%<8fU!evi;xxZe@Lp#^4?q_~HdQ{Thv$J1fYiSxiJ{@RE@EIH@E zTUJ*(@BodM2Q<-uJ3YThbP}KUS^@aKC$QFE#Avo1Yfhpb_G!Nb*1I#5p8610>L*-Q z-xfa8E_R*U^-|uccEgm|nrRNY6E|of=j0s}@LCTF4FcWiPmSPNnt_IsC#Ic8B?>vX zZbBDem^Gnab32e&SCB5SiIj7LF2JnLi_U^ndTNewOp_q1m}cwp8>Wj8|5vQOnPiAb z_3rt{wq62zRx3+*seQMBysWG2-UA5>XDfibuB-R|A@6+pR-T? zKu7{vdz0F5OOliSA+2rZ(WXU2vC_(`zGp)cO8$_LlSA6tlW>3-qZhB-ckvc|JdL#$ zs^p0luUw_iLq#vXODk8=auqdgV=pRdRIJ$2_I`h3&b9X1=TAtW{(0}g=Va|Q=Uns8 zm}8DH<``p+IZG#1K3iF7HZM4zvfM!wuc`Qk2-tfOKo1Db4+?1za|C7KPO+V-8H(%Qn^BT=&sSenC_|511+I-^JG5Tt)8u=y8?_<{Z=X~Q`g~8;)Qh(9V30hY?U?6fn zc0%HoAoB1kV(5UVyGbF%*)HI*-VZbofH<*@-6=QOBwJt0|D~-E(8b8&x^1Wq-^1~o zTe6^HFedDU;Q-~|cA?4c^GdNH0td8F8uJPL6xGJ2xY(Vwl7DDJr%0-D%UfTtWrJN# zuIoB_J~+DN!~^1CQebcZL;{*m$G(e9=d)t65*=OgS*r?JSXmunXfBZs0sNKM|&1T3d4u62G`nKj^ z$SMvWlY(np+Z+m6#o=SUbIondR>&$2ze(2MwasClHEsAzoEzHKoM)Lm!^bQr0j*)f zzvu6Jh96GA=5y~_*EZ*ert{fvQT6b)=7Nx39R4s_^R8_!3|YnD&m(L8w&q14t2q4m zWO0w|#UZOW`~_q!+}2zavWmlBNY+KyHZSp6(}sT$nHO(sF1E~`;a|+~*|yHJ;h+3s z&+u)D;JBWlzFTx{b4h4AAO0e$zGPc-X-F>){}QqmU)#JiWEF?Mn5-q+nwN#F;_#P{ zwe;HNvXE6A{!+3o-PTM)R&n^3l6Bd&&9={afR$W8{>#W*wyoK*%w`e!ml?%qO9opc zYgPX>&C6}$;zK zNl*2pR9wY9-IJo_d%7p3=4$S2Pm0#zJ+^+c{`9+kcd{o%tM1{Rl)B>rubvdGv8Q`d zny$$S^x{ahp3e5947nkWMHkCxVVvwq8Fs_&;hq#NgQ=dB`EI^@x+g_Qf4V1Sp;S#y01}Z9UuOi0_f>C%@S4VYB*t2QUT6PG}VzU zoDfiSXMi23c$JR-oV9Pglm)LVcN%Yn!|{v38sv})WWB~SuNQVG55)6Sh~tRkG;1~< z%1r}NEI?ch5A;P76}13z%nrt_QURI?Bd4(Rf+}3g!3@Bp3c^*x#45sjh>93B3iz&R zcT;BzfN)RSTc)5H0KZNb^AU^~eoqQ>=_ZT7boba>R)^X+SARO`vS*K2U?MoWB0Hvs%-ljUBO&^{l(+@8xZ8R zLQ!1c1KFYF&;_v_q8+HYz?MK)un z*A7~Xnadt&ymqkD7_3G_btzTQ_iG(-etUoi&S6>u2-%HxL(+7N6pL)Sw&q<4%Sese zZOb2v^<^%}%MdxQP^Ma_XK`MJWB;ZRRF7+g5=*Q^%&1U3v1#`6l}73OQ|trNSi90= z#LCin3V`@_{qwEq!qN4|(*>hj*g#%1x{7}rMoiIX_HB1A$Ugv9vf9cyi4*K=&8&G#N}2=1JZA;ju1gKB^Fh05 zpxr9ae)FpZ?PhI61lgwwkZlzp+bZ-pAUU3T9(u!tybQAQLf*VWUIy9uA#Z*mFN5rY zkhh?amqB)6$Xi&*%OHDE$h)YJmqGU8kauw*?*bsZS&)6xtA#89=jIt?pDRFiQRva4 zLXSLDV|Pi&yQGlkp&GlzA#ZUZ&qFnKOG4g~LY{|e?3RYSrG-2X)!1Dc@-8jpd8o$j zvXFOKAh1-D zWOl42Cpoh$4H;R&8G9Ljq{XN5rdRkkIR?>gigxIK<0nnYqOzBCmWr1oM8j0%5;}lO zAz?yw*lj)}8%{T$K#j=S*jJ=U5dV1W&%|Dge*}VL++k28sZk_JbOG<^z#V+f?A&26 za0g#zcJ45U)Y)xecJ45U4A(6)J9ij#o;&!qX6Ft9L${vUxWi!J4!)K-xkF`0K(r-O1vc zmZ*H?sgNz4K*Xv|8;V;ZnapHY4mcD)v9^7w86B9`|4UF?6hC#(*mPznGiiAlx`8g7 z?@Jdl_Ecg*?xT&{a#r-1K?n zkmq@krUw->2UGN2CFFTtq}>@h<{_U~4S9hVk%x-8#U$F7gv+wwd2SRL^@bqyxn~g| z`(71&;bTA;3hTYu-3klPKeg|cBsK4s&FPJdQK`_3WY16MZTk@u&XX^kN`+F7& z3J-VxUldT89C(f85JGlZjv{sIo3eXsS`I1(%PG01rsenriN~vZZdwj}%)TL3>9ibZ z3DKhoLXxffv}zQ)KNmX1hKt0}-ED}ItpX_|A1b1fOZfk>o)oDPp6W>m5EeN7Z#p)Qxt)(@1Gzf`GV2Di8kTMMNtL~hX`El zj+tpMTd(Y?ZBG4xZl+LVwB_liU5t{?r}TF8hqADdP25}n2mng2d`Et{Ay{t^l~^Fsm<=qB)PBo9D%`77}+4($cm@wO%M zXEF~91=hl8xBTs_6popLe?{k#?0j{Jjd`>eR@IJ@t;lWAchm`V1SNx@C+NFxlzEKW z6%0!YPHN8kWxvjeTV|!DGIOSB-DM{HSsnX!cK!OWnI=J}B9k|E+rP>c0&<`67dMFK z@YZPkwK6?cMDFC5=s;!<7G5N|i4!M@^%!Oy{zHsJ?mfnF`*bF&ASbu69I{2 zpN{G$<8C0>t~uA{1%=Tye9EDEC_G11P@+X|Lpn0|(GU@ypr)8ZK_mbrACy(NG@;=^ zYs1*wDqxv(-C<;H)Jaj~EV&A(Iu1M26*^}neMo5e^5i}WWiExt@3J~i*dYuB@Rm`kPgTGnT{MO^M7Sr#Nyi){fIfcr-@!*3O0mAw!8qnZ!`9$CkI(&LuY z7n1&{sw4OlUC*U3_X6-M|L;95=0!dVZLP0=px$T>4z-5m+8Deo(7^7)%klD zP^TPbboUDjBpdksU!Fej-}e^^6S zjXcr9*#DI!4(5pj1B>0umKZRXrNXW%cE?^;ou#~_&b7H8u*5usyM>H%|JD+_4e7Y7 z`;a9L<)5R^jon8rv6&~b&5qs2EwS4r7HX`eTGl^#r+{Zys~*+=G42uvd^!?OShcW( zBhin2b7cRWy?uuWnOtDBPM%OxJ?rGZci~TlM;E_bdKQTtMoy$!7GhBw6wUDPRaBga z_}c>fOD#Z20wK&1zP(LdkL)^#Sv(5DPG4GGqk7Fi1Q= zx^JR5NUq(yu3!Ol9FvwnSK`g286Pbq)Y#q1>QgsmZDxXCgS+)^Bgy336{!)*O@Td;$)H)=k-o2GoKscOg2xpPfg$vm?kYWk1UU|5=;w zW;3#<#G^rWuod;ptilq$>U+|Lfad$H$u%)h=T!aZ=|#U?RO7bn6U?o2Q-fu5s;-=!p8RCyVOexC{7PW)<_U>2rqD#B)ssWKh{*R&fyVb#(^K7=f*WKww*hY?TQ>rv z_DknBL=8=-jLE`RGiy&0YN4Uf$@}lfI~jX7(9ryBRU>=$)Y(G?qxwhVF7%KN%VDu= zBaoJ|Q-^lRo{vnTp9C<|L!B;#vxex49T?cUQ(m$P&`6_lPF9b&xuwh_i(*P|9?<|= zKd!P&M@Eg1OK`@f-t45F>TLajN^zlA>~TG&Z9D5c$uS-T;A~GrK$ve)mgbXL4#^;- zZFX3np>J6%qPX?tV^oYhuQGn4#tfMKQ#JUCQ|OjwQZZHY)0Pg;sJ?>!Smg-fzxUgW zhr=yt)cRG`%1HFvTBr}ut8gwhMJ(nkLrH&cJHT`?g7FV(l=XUl7(rC0g$^&Hzwz0R zf9}Ko@X${@j~a>2jh_6%_y5?h{o&-)pWC5{4OSslYJ1YrQ1gCggE1_%&7bxSHiS7& zRMF&bNF30z$^JL8-AM+^hI?URd1O+_g>|R9?7|MWM0djNX*;{k5#_J7ysllfBM-6KJ>^psES!Ps=r%U zPu*iIbUlWB>NLIi$byaGG^*oNutx~Cfa4uXsU$Xh^i>Q>2kk&@9kkQFlzJ*Q$>BT% zYf48o0x2@0?N4n;G@_yse&nqW1#ok=K=*;@!~$*taMi32mI8}0^kCGU6qULp)=quD ztl0xqy)X5ws4Voz=3r$J*CD?gP#yCRsR-2LV(Bj=T{*P7N!5UD(9=#J^BQ92@oUn2 zg%~YPGtNTf4QlLp1U-?dp3~$_SAsl994ve@G`&<_NmeT!FO)AF4hP|=#|VgU5xohI zaM<}rZ9N0Z5}eG)iUwRlTLDkh@+r3MYtEwZq1Qz-k!-cv^ba-fHM~)EOu#*=+cG56 z8YHP$M-|BQKJ31v8Wy?F2&{|hPsiP3y`X2j+}2iTjPn+V6;c)Pe~ug^jw62|tznB> z(m^l5poEvDfR|;PB2Rq$;W;4?20ZHS01#~?a{!CJ6d`316M)WBaiFIF#NSsSp(@t+NMXt7;JyFV z*YROI8FtDRM!LkD5omrX3~$q*{mEa7cvch2I|4S*xp*(#u>H;YVCuIM+#1MlvMfVmZ83y=4+Cb@8esU8;6^0p0%ov?x zMtyfX1i4b*kbt5U(F;EWh1eJYdXwU>h|VZslO^Du^<4JG=@x%N1zyeS)EkuCG0rP_ z+;>8?NGQ`G7ahU<6VZQZzWH6=qvI7RzfKoY`z+P#CUoe6%jC4J;U9ml))Osgz9|Tq zTCW@g2LrtlIbhhaiU@k@$h~*w9YM@eM?PC7Ts|8kp{z+DHYc>B2 zw|>TVj8$hNi2Vp+_mT7Z><+E|Srm#+%!IVhcr>MX=?c+`NVXE%m@FQ! z^~wxeN%yxBCt4aW>)Y%+5LqL8JnR%XHrLfco|EF@WQ8R!s2is3uVF$V9=ZmMunjR; zk(^eh-2PT1&+BI!`CXl|7p0!DR0^c5FMAQ8-{?O~wi?OfA=0IV&Btk!313G2@>IR` z1x{~6^BsjeF|np3)FKj?rhbr~*!mu2L*>uCx-&}5#t$Yn=*EiVth)Es`a8NH=wcP! zq6DEXK-m}V>(A$NO$MHeV2XxiT1la=j!?J$4`1m2OcI4@oMmoBA|j7rI!kQK1|)RL zb#k}EHo*3J>{%zZ-&pQ*yd+feL}f8)m?p*41UC>5BuP2?zr4fE*@53#DzT5WgiI(# z*B@uK3aLN}+7nacp+0$h*Q2|5saKbA_pIS~+8PGurGcgs#%MK{s*0dJS_8&OgcE8r z$GVT99`Ayuh<9^=htr9(fJdr9a%OuSE)zX9YZ00c;3 zlCfTj+HiiY92k>_OJBBq1UXo@;>Xq&#JLw7Cd|)B{CLvEMZgj?VOlg{DdNd3@y?cI zvK1s%I5){pE29^M&EA;F2M|`DVBZ?1+n4qWYffcLbSV#_(Jtjd9~beU#|zMOJmtIE z;-?ms8n>lR|zd}#Cvamkxk%b`%L00t9ue@CB;#@8cK7k_a`nD(+7r#ZXC_YDTy)0_>YJI^> zvMS6&o)yFOWfUP=W6(BH_+Q_qC!0j5*Q?z0c;4LlwL8HE#rQ6MOCjr{0x22&g zrCo*vkuaUAcy|wxq@X(~!sUKnc|(LOu(y*xB4YO0u+FJFpIeG~%^a&osv`agfPwZBy(pOH#xTJ3LLwKbC$yYixbkJ!Ob|CP!qei(-32 zbs`3gDo1ZEKkuo-D5NV10gw==iUx zCXCnj&1{&hgvcT72OlB^2}FHwWKRKTeg~$}+biVyOUJ-N+t|kiQf{q4pe+PV{S`E3 zv!ilhc3D8oCV)j_HV6c1=$AD$yuQ6h@(SBm$P2e7NhboMmL>#xp{>H*ryx(J2+B5# z#FRYgC;0=jU%Wxfe4!4A=K}(Oh%VdR|8c7dO!C*+mb$y}j*5A$(F(rf%`1@P`sTOf zB_n~E&^LF>zRA#mtmUWuAm(aWZG~n-CsI0bp)Jok=EuH%WByQ$`@ldh2%^xA2kOl+ zFW*V!skM!Jnym>k8%AX0wgxfrgvNfd&iO9Ih1f5jvh31*KExVkE+RmA9PV@P@ic`> z^CTZHjl&d{l$KXUil%14*3ir8CxO(IT;jLlreWpo#!h1kudsT|ub4I@iQ~b0p-S}8 z-;rySg}4TgBL>>1p5cKflVRDtM@L=C?p8hey6y5aZ93xHT=QSnD6Pa7-#zx^LbngCwYGC>9cu9&crTm4l$$1gyQ3XO54fj~Xp~OC`HLsA8s?wMcLKNIeVi#Rz>TqDy zW3RD0n2)8yxzfRM62%F+?uy@#)!+54YrKgBy9Ob628YFrsRc`3ZEKQNchMJkD z?^oM%?xu@Dz}U%_mP-!>j3jaCc&(>M+P*@6L=w#yC?YEwBSp9Xnq;KyTe{R4c`mO_ zA3{V$*dXbAh`#2u$QnOU4fvmld*~jLTF-m>e6m(aP#NjZOxn29AC%cY@^iK#IT?3K z?h2MUpfPk-pHF(T8~Sqh@JFa^&j$7^qR+%HlnZl-I+#xa)O(x-KeI9NF9^QAuc=JKw2(BAEJ8>=$jZuWI9b2_X=rQ5Ip@i zwJ;X@yfoy!V0q=9ys0Q;zHFJbp3F&|j8Luj{d?6q*qfLz+#p)Bw$?Yxwo~<{Db8c&LeY zz%$dK2mF=GyrXYdy(SadQiBenC(t^hw~ADvfRos~@kFDGazoQ7wS*X*jY`S~txP|h z0Y98RwXT`cm|;3GKXho3m{`6Rk~5-_`3o|_Kt{5Z0DZyUNDs}lKubX!4>>vkH8A%} z4|ZS!m*KfSyCuSAi|Z73YZUpy=uVeRG1BsD!6q9_8NKetBl)N8K`SO z078qA1KtSg9Doo0gXrKrdk64h@62TYyaANvNHi z6K4V_O9_-0*i28E31|s=puVZK)QrffCGE+WYyCrOxZACKbZKS_JUNj2#bpcSe4p5Q zxKRUEMSubQ?(0xJnGIEIPn%4jiY6R(aJfl~+! z!gfRp$48@*1zOj42DmBFh5&A`4jxFA;6s73%I^!Sd@)~F-<*6zW7X%?;^$955FJ|6 z{PPD@>>~(PNCLfez+9hHY1L6H*73YVZ&puU$5SfyWHPf3cebQj@9*|Za?A_*p6A_+ z`qZy;Z1VPr4;&f&R|T~}FvmJg1#YeG6yJtWL=ZQsFpt#>nrTC~z*fD^%nwu9p3Xw8HY2>l>97i1MAyqw z0PZ2wN+VrxHRoj;SC8?9N)D$NT}|pRcg_t{kUf>?91ji)r}K0ee;ys9Lv{BT|GT)> zQg`A%@NE6M7Zu%odLvNQqdlolTIy1FrYH5GA640n?u?#!4QK9E>Lz!8PwI{_D6ejeyBUUrHHB~r-4Kt?zZ8-C1*Xg_L5xJDgo)O7=#>Y#GTX1=N+ z(JtYv(xI-%@#T~&@0nTV_3lb%9%Pe0bK&!>lrP$`h=*oJYFnM-gHDDj)d{+!H?Y*+ z8gGM;H>g6yQxd1c{+Y&0+5-|bI2w$(kstVCg9uF>B#{esCQXYMvPzJq2PnjmLECq? zx%P(33D|=)GHDvcpHKB@1A84EIGR=_I!1CbWXY0QhFp1eTW(={*BD<2dfHG%~sXR0_AT~SzFM{g_{@)BU3An_8Y!*3i z0BhAOvOZ5T3oDW*lFkAXgMjWr{^E3joQD>?B8)|c0-TX2ig51c%-QqV;by)8vqBVS z#|wjXX;ug?$YK5(APk-f#w?ZvNIOtmYV~VIlzBlH+BlH`Awe79!-6=@z(21HSW!5S zz-$M50GsFh%K=skbO!1Ik_$%EE*LqBj1P}FOAQK?fv*Cp9C7VT@!GHFMAXWqu-VMTu<7wxg}%=X2eT7lYS_Xw8LnO`wK&nVm;xomX&SBnZ?JzJaO ztCwU}AeZBB{;Nww`}F0>80yILrM}K$XyjrDTuahAge4{wyJp7Dv@xEOBP z67z0T(LAM^Erdtl+ViXkWY-VQZ*+e~NhCCQ6Or`Gu1fSirv|)aN2C#%0bM z^6Yj3c}Y`=4M2XGVoeO7`dzk%w2?hJYuFMqKxFIitHYecS_QRqnLfD;!atMzjHba%lUOVT}Z{%8a9`y$>^zMA_j4=y__{;n>pwg z30gO)){Pj(zu1f2WaY?x0f%Y7Q-pld*Q1wl@`?4`e{b7HL4HI3kvCPl6*qkz4Y;DvAJ>(Eu!+ zhcvh3YXjTRrj>Zews(CSduCNTbGHi1Myq^DV{zR*Bzp;W4tTpsP!qtVvmIa9eaum= zeV*lzCwnb3bJRCuUpZ5NXRy=iLM2*qkC@_N&iyH?dD>SJTv$(tsi#%V`;sm?3nZFegw(^?UCyE$`q_Md!{ z`cJTz>a-UKgq`A+v?E&N!PpTP7YK|TNqQmy^p_jWzFa1=%U>Cs`37_bIP;wU4}de* zpG;?vz*fr0x43qRS&^%oxx+9I2 zfEl7Vs7Xl!JVcw&_YAX|8Y`p7T?J>Ahm=%%6oUlDN{&rr7)F7aF1rS$oZ-;=F=<8?f>p&3iD%H^NPv`#X8`j339dul3qYQD&?lV;Hz(S%dp#kou^s-!v|C=`=1h z<4c2fBD}%e=^@UjA=Ckq#IP-chZSxb5bUI#A#?)3#e>+!lE#O}{Nw^cc?5ayVF1QD z@Bjm*R+x`eGD->8;-Q4LcUr&y_=-||d+F%n%sMqy&97ooS6}IWZ;>)96fl-W%B)bV z30b82yhRHCmdsMJMVV!z2t|CAl^G|L<>c`;pkN}dIkd(j;I*zkIMe9+; zJ;DMiT7IYqg_J(!`810c%TIMq%TNE~TJvB7mLEhki+19@H@)#kE3V=mRvXxGdd)j% zfMwpP$e|@l2fT$Rm}>IxQXii%x8Se_o|Yk+(DZ22eAQiT8c{YkCXX@Eieb!J8t^uA ziYl)0pwfjGD<~5-BI>%H`QRj*K?YyJ25#W9f-oXuX+cV z{!uKsv|!44Y`8ifTSurkhK+IZ-oJRRH0fPoFjUJ_r<9{dR7jG?^g@Lqn1ExAAO;-V zp3yJj>Fqt<8f618n}s!LwS@*TPs;xAKHaCqg*rlTsn^|Oa&@qkO-MweEd`heD#m3^ zTWqkw0Dmg@tohi6#L#SJ0HSc1k-7(vd9umUkwb>W0})?}wo zHr1GAi34#FKHbcag%y4-xG)542MSvm_LJ6#L53y_DuxGAcZ2OKST4FOA#K4DhqXb( z+MW&@5QY_rOm;fc8S=v${bcYTQarNZOtV64BB7;Gq6WcoR6wKj8bt5~;2 zegkN`Gn?OwJ+`^b=6CEr7Ho4av-#cIlbYH5j(wQof`UF=9vMxj6yMf2Gw|=~XUg0880vqt& z$C0=|n7t_hr#elY0FsH8omRy?gVZ@ILwONlNV(a*9rKK5L&AZVO0#_h@4T<#a|`B~ z?pNX^Guz@Tn3qpSFd62jn&s#GP!~TJ@{`Y%x*+__O*x*9;gsZCf=#YSUM#g2>v>Q z+Hd|?8p~8yS%UbC)rE&|wy1kQ_`7yy-0btEK}ZL zj-!ZQG#+Z^8y84(%P5Q~_&q~K`pc>FP&y>?GcTjgR&0o|>rh#NK;u{-Iy3|wA|!VY zfo{t(NOU-p(dk_(3T0?4i(wCq>$UF;&7^UN>2g4MD@xQ#x=aXf=AC72RzM3i9e;q^ zj14uE{sOnw8`}vKLkrIn)EJ{-INb9fNxzw1CRl2x=SK9lx4WB22mF=^>wLK}Klg+X z;j`H>lTd4#fntb$F;|^1S49KGGNtv-6)WtYbFP+6n=AA-bInz+Vd$K5CF;~RnLINL zwb_C5mo1IztV=_e+IZdQ7}GSNmxVt)1=8!z*jJfIJ-dFsJ^jl$^yxENn4{c`zMXG5rtN|Sy9*TS z@LXt$e~LjMu+0=VXQp^LrT8xzMTsp}IXI>i9F=57xOzTy97EwE&5o+^t9ix*HHj}i? zW1U#tre{Gpq^qC#gOHk8_kuQ0uPowe2s%gAOYtnFY^ z5#N}DlKV(;!OcXA+4d#IGfm==pwkT3DyE6{V$3WqF#?D*8UW63PHY3JroA#7ys&!sA zMKHesOSQqF8p-SURmt+scjh{2qoNvVI@knxd5x`x#ivutPxQ3R_{CT%ZmPOxxgBn+ zKRMhl{iZ)zw$Pq=NUV|baKukhWS*bPJu>Y~mwWHjuCAo-MpflipB>IG>r6cQ&m)~G zF)y_GxDS&@?gZb*j+{^vY|c&jgVJaTs#R4qIXM+w-?9An`~22%>6^Owlap~MFyRYu zb>p-Gc=}rnTFNo#m@9PQc5F<~3(LKMne_5>MG ztyQ(}Yp|ryyN0hE`f{|>n5Bh_>0$L~oBP+*-X-*l2N8eWhqDH?Q>73GoK7A016Xpj zvy?V?Sj(4clv(e6Kj_b86I7Y^r|P?r^>CuItUJmH-C&h6Zx1k?_k22%y1Cy?9s9b z_|wJIOd)t*Pil4u;J%(39@Lv#>7MOLeNJH{IEZk+)Y18Y0gkQc#H`{_gZE{H-+m&9 zPv^)I!n0GW!9#9z~bY;qqu22DY;1t>Zwq!jBwTyP?ESE#|NA`4HXSPaEVL%$fw2y0l z`cI`ScGm4gr}-}Mg=Q5F-m{j`*z5;YRJ?ZPO9Y*u8q|p2{J>GI*b@(^;yzLMz>b>a z=m41tpz@)ooyrZ;zEl~>{3C=TK_0>SLEe#c;q|E1bVWF1lNIjOyxuTtJ-heY5Hws+etc)h?UJX9!q6wPhv=l^ZV&X_U9TfwbHvwp= z5Hg~XlD+`>jfGWMJe`Xs(xnsFa%f!Za4=nR5=rZBk4s)o!GE_ty0Yf;PzoeVs3ft2P$=GwcPWD!v8g3q-KYZHv9BgAYOPqdN)3K zH{V=BpoM9HC?L zk6bUOEV_btfTZOmrqM)2n(5`EM<#CQ$xoxS6J!kp5s4epvT{`tZE;7R+UmEqsv0xb ziK!wo)Yf26TS?Z|0wicH8E|6shNDbxu|;a{wn%e&l_VpFt30gYH^uqkTMqBX%OweD z9T~Y{#(mVJC!d5EDN0T3!_djhlI9`kCi|;8VP7^msL~UfouL&)9e*HDZ6LTHm`Vo+ zr;a&02tzhm#TP-6s7i)LRzdqIYZzk95)LWq+sR4E5tfgvqI_hPo_v#4tN^l#3LvXY zE0DE-tfB(t83lYBWFf1BZ*PAm@fBy6Dj;>!rHWiw;MgS9-2VNeZ#i+CA;3`kk9G!l zdT9e5$0|qA3oN!%@$r&4L7XvNYVb@qtFs_jfGSQ@p+~O3_AJSw@5BQv>FEMMWi(Fv zjw50~#QN`&ZT%hK5XRwapo1kgH|`+|e1Lw1txU5f1Z`y8yy3Zd#nOu0ypeJ9>Jk)| z$_d<@_bL?0xH*N4n_HQjn_CH62aN(ZZx}bXlAfD~V#duI;^u>@xzgq4&-HNK7xdX>XzZy^Ed3KHK1p~d|Y+SZXl*vJiIAGSW!Ac>W{aVdeG zxBg}X*!mmFHms}A`Wb!ZvzK~5GvZtSaEXZVT?xb}F`X1i<#9y6;xJv}^Pbr9YcxJi zCjW}%v4;BI#r6|FZU&3TkM6^v5EXP($GZ?be1;%`GLmT=NaHrhz+`fkT^r)C`9$xJ zp@LGKf_GQLyLx$_F3Q`67|`k}RND~i2w=7$)$KU<71)$NHvhpaQ=fY+=D-(^%C@Ks>7X_ zo}yzd%DAs5gDsioZ^ZwQyBN$vnC2_5f1(tHDX<74@k)*5T0ll1!)rlpe3jl9ha!IH zkK+(xw8wx`cy$4AE*`lowV+EEWE5 zA7zZHv*NfRH|+11!V2`c>SF2Ov&2BS7OjoVG)=CR7a3TfwUJ^G z^%X4Lx}C}D>h{IDv{#{d3=YeAtYB-P z{&HGNYtKN&U`Qg^dPer1vl$ES%pxIxYT!aWeSub$#QXQt#1GhanrCAS?$@Mr3QgTm&6$ZTTr z&V#qqCvvB!^6W55MlJ}0rBFr+yWdcB_gKIB+RPUrP~m@Af&5`|f~`T?SfmEF($-`v zdFDXWQPeX91Wpa6DRK@sU>Blfv5-IrVS+681TPC07qHNSPmzLp;P8)*XD<3dp>wp zOh{Q4qQR6F7x|nO{A}o_1#lgpG2YSc;0 zHgaB1oAvMMA*OLyQgD4gF(-e{sHk>kcEdyLUd*Xz>{f@X9iWmxQZw4Sb9;r#pO{hk z-(NuGKUeE^y&KBSqtNXCrt#p4Y8?Jc%5hxEUW(5?z0@G6v3rhiidwmDvU)Xpmn67> z#I5HvoAL-LaZx%(ZhuQ5q~(pVT*|+~;vp6j9}XRKpBLc$g2Ew|wDRF;$=C!)?wg+6 zu;j+{WZ^vPb$T*V8_5f%Cu>E-WAAmz;Z7n~*4W`PPozBhjl9hW#Z_Psyi2L#{{D;c z8%bf^ToG6OwKeR;ZJ2#~&?#G{L(nrBU`sS0Urk6gqS*kL8f}WTzMgv?O}cy|XURHa zS$GM|{OUQ&LO`CG^{8c`c$%4Y8mLDSreP`y4<^Dry+5C}GAMK?Gg-!T1@U5`{gIzX zjn~UF@Eial$?pH1GYgIX`pqo-0d#RM{HEA)wv(EfG85WQ2-*T+cI#ICFA{DDXI|=f zN4cn-xOTh5Us(&aw3U+aVa`Y(FQFZHTG}8Z;`MR#RBS~U74(^(7(T__*(f5Q9ZB?S02~%Wa9qd z*Y)F6;_IpZO{Iix(MR&s4$=v6KA=It?0=(nSWABF=fr5C!fXMV84~e?hL#FLM`_Yn7 zeD?nlVV?XY#-Y|B?{=lDq#_{?b__PMqXZ`8ub)6#`suScCFZmGQAf<0T$|Yk22jnS z-8Q9iBVj-Z{zwXVQFSNj!(fyY{)-V~1~jWDxoWs9_m2VhlN>}z_{k?Vw+x9E$-1Gb zt2xkN|J&HV3@AXb1$?nzw(zDkXARy%gOxanA}OA0iu++>J zSBeUaR0^<)Lwhwwl(9KP{iyzjrKHlm^Jpr{4^crbsz8_RxURY7QITwJTbmBCf0uSR zH^IJE#S{y8f&2K+Yb`yjf0+aT-Ki~cGMUzvs6as;WnE`q0g+_xTsLWT&Md*8Fx6{s zbqA1-BD)8J-dVfFPW_TqKTTWC3>qL8I^0cN@9vP7dWu z5NmP!RyH?EE!R_OIjo!;lg&zJ_ozG1__Z=hw?uE^*T5!%5bNUxACK5mV{QFK*aIjd z8(y9$?tq48T0()MIKRX^%8wv_?8Q!GpoLV;(4|p%h(S`k*fg`le2iLQCot;NkwE zklJUd0D$xnK#}s~UhQ(GWSKk6ywH<*Hkpj|sl7Je)5_nnyzqNBjC-k!Qn@uxV-2o*CL_d6|Ed(u9-rJy>vpG!MnXH@1Xh}$! z6uKD)4Orot0G;mgnz79+O}%AP*wvFs4oet~znjX|8+^+>V%>tq<()~k(rG%x?G0k5 z41!`O6jK|V%!~Po1s&-iSX^?wNq`znTl-m3YWFCYR+u2D0=@%?`yz~NIuP4B232m% zmh_li_r+as(P;PLW7(o~J=|#bZe)_?>YntVKswStcn)QQvmHOIEGaCxQvKuXC^P+3 zK`Cfm`?~1(0BDIFir4ZHnt#5POq4jQyVVH$g0Ni4U7ybAMY*f$`Sdi&;ud8V+k@DFXwQ zr5{0iv@!V}9uNIrw!&_}Bn0a2Bqb*}9eM+@2!G#B1$y&%Dkjh+KsAVsCrh|rxXlot z_walcb!s)EK)j<=2l+(80;X9K$XB7#EGeznuaxpYLESsu?H-}$=jz^dJ>8?T?xmbQ zsvULjf;+v4c{h~Qqrfk8f1iki{#gWF^Owhcyd2jRVbkl4`2a~)pJPe%~HGz5UR^RJuNN+B0)<**T#C zG^g^&MTBmoG+@e8P>N2|beeF_1OA^gI*5>2?4XL7NJ^~H?6VRbq$24tC17itf}fBn z?kT0gsVH=SZ$ajWyDcoff{9BQBM{NLAfY6kz;lt#)~E#f0kG*VCrD$`6)QYxO9tfb zABx&mt4h1tPgdMRCI(<`>&gH|SGBvr8L=&uteoI@u}y706Kx!btL+J^F(9E!M1#&8nLqHWA+#rwsOTJBUOaDVGE`h0(mnf@8*ra)+ zcJ(j_ixs5*WGf~-k^E5A|7|0|;5PkZHS9IbiXm=-BH;jnpjhe(irT+x|gOd06N>H(cJ<8%qL3;;0vw8E!N1wFlR2e_hNuAfbka_?>=pa!j#)%U_~g!gPT z@QtO~Rm;w17t_$Vz7RvnHYO;GruUEKN)7gbp+YF1$tS(#Weyf9RJBk|0i`_y68pJP zfowwsF%O&WCwR;$H!>51I3dJ30+6C>TvfF;*>s77sk& z;zRJq|N1`n)cZ&h3Ds3ixCDOcef-P{jG9S{TOZySKQAZp`lixpo@@+C&+5H@Q|W0v z*`)nBK@PhAv$01b-!!U8JHPu;$;QvJT@@VpWqb*;`ILpchU}*iO62 zHk-ezm%!q&nk6NAh~bI@(KPCQPt|Qq?$vL+1McZ#!U=Tk?$Kc27%X!SsO~4vPX8n; z4hS`mSxxeyB*taWSAmYo}SY?tMJ5xpIfy^kMLU%_== zHBgFwpSFLI%UIZl-9j8N9pq#$ioK)Y@Z@BI=C|5pSXWh=iTnPO}NSL{ng*R8MI zwft%8g&3(oBaup~pdz5aPWjnL?*Ww#p!vfBls#xb&B+jme4Z=80_asVY$C|0T) zPfQq;Zw1rR*ry0b*$C4LmN0fbNsP1vHHTlSPyB+-dI5tHNe9p68WOX4#n;Wlk;~1< z2NmM9Zqafadv$(t$Uyg=A?6Wf0)>p6e}pYqu@P138MULI-ZzTw8V>}u28;?+?0&F_ zUX=aSVIJ3YD;U*a>C;VNsviYn#h^p|f>t{&vH5~_bhy-pNkCqes1oEQMh_J&f;-8< zO?OSY@(F;LJw>wB1ZKD?BCNV%aPf`KtXln%MT94+Z+~xbZA+AbexRjJ^8zU|+GU2M zv{Jvf+QWTv|6=X9%K=6I|H*yc&+>)&-0FGH&Ah>S-opdV^L-iaf-%N+Y|{pvn8|kf zx@@P<*bY3S$aWfraNMZC4k%|kXc0ud-~%go1g^83pD>-2S%kDWE*q9#h-W!Q?LzUu zakAo}s8B~A@y}`VfkL@I-1>jC*fki@+SC^3)0SH(^IufPF97m9v1gy(OY753rRzip zspdNUbA4J~9p7Mtow5bGj_{!Th{LNOWX=Fnx?tBd%iY~n^>h>lcqI>rslX7}pT?!J zdwdQ|K>2|OWclh1wD5a)K!tDMK|OR!i{ZLdWQfreNOD(=Q?376wUl7KD(MPKL_n^v zbn_tPP?hv%_-wm%0B|tOO#pkUB+PgXZQ%Ce07t7e9KWql`bh>lgm` zqDkbTad%dN;hxozc>+k)#+PTJNsfD+iSC@O#DGfR-8?y00eEpVinI2d1#nfM6L@^n zgEP^sv-AS58A?3)^Cw?7XOYB;oV@pEe)v+#$kTJyx{xR6=g}h%z<j<@pMQ5tuKm>)IU`&VNUPf zB6m-L(Ga_l`FjOKfrd(oIc7JNb`|fy8>qS9Zl=f~eiBGmN zgOy|c)-WrDW1kxV$@gWB=zL5_x4Y>r9iSH#^@0_c^`irIo1<-V&e1kCg*yCfegVj+ z<=h3H79&mtf>pcVXBff}aUJqc7!J2|ydHgN@U+zuy(f2et<`_F8X}mcF}Pv^nMq=3 zn%qj;V7fOrUF9qBOnNV@soZshiiGR>!r2fyW7;s7sgWn3g@p-GQ?xx?gBt``Qc zk|J#>qNCzeSXJ$Y)tXmGNma>qv>SYkRwem*`oZ`k+c(7~siNGKRL>DS?Ho$2F9~1R z6|kKJfd{(MzV}hl&H`B$WwwiHO0w>S)qqvOUpA?2h%_m-WAJ+uU!`;_={akr1A8^b zIN7Sfiy~nS)4++c+aqQp>Y6fcmhn&?&9aw^ahTOD9-3T9>U;g(ml;*RI&r=WsQT@U zis3$h7n2^g3&3uSf=po*010jf22>_N0Foz1Pd{~x76;zKcA(o&G~himVftidg7TR{ z*yCPlEB)gHnYIMgw0gCuv+uzy)f?}^o0Khvua&Vf$ zY*iBa!=2a#IQh}A>_B&UTd}Fr1b{Trwoc9W$tX5>DQ-7`phS^=fTf3FDavr1v2t{0 zdFL3;S}))}`?ov?nBo}`;^?Kcl&Tu@_F^?gW`4&sguIN+MLMYJ6}3-yqz9cGl(!($HTr9RxDw4I+LgB3XY z7etqwB_r9xf3zr5Fr3N^M8&QfkiNOrgFGVco2vq+5{y%|bID-ml%U z6qwBHnGvN}h-T=YQ(}~pNM-=qv~gOmL>?ogbe6*WNga~_kPLw+QNTvdBIO83P5~RG zrAma4vL|JfSXJ4C!cejb#ax7uLSHCUzm@K*e~Y;h+Db``BLOG~Uq#)~v}aU7+WwN? z|Fe@feZQtl7!wRb^{FzeHmHevowYsWrDn;hhU)iz?ftX>J}M+*CZ<3F%^UlqC6T`c zqf~%f_0{@YP|)~yO>g2JH|NLfAcJXiAR=c>9-N}pq8$q{AD67eZ3TXADuRz7_LIQf zcVY(ik>C)#4emsZEYnz`Vd&^Myq!i(DKw)H(58^|F{p_^cnq*+Ez{W)QxVf{S9O#~ zE=ND4tq32oE$pg}@bR!LF>on0r7G1F(lbi!$7VZ#Xl(*;q6JQwe&KtcWN=RGxq(}Q zcwEdoVl`0p{@L@{IA|q4Uz;QUgIKX_PvPqpFnsrBK*DBSnmcK}B#s)Yg8V?R>pzUz zXEDT7I=`5a@uQ&JtN%^hb=?8E>Ol!KM{&RnncosA6RZiOHh! zEdWOTjnzTGp@vR$07-r}MK*#R4Rfx|O-RwkTlgQzUTQWo-+T9~W>%R#0{hyA=YGWs z#M6e@M$cG>C}tz8Z=gOkz)3gy%#Q**ygkr-rvUp~w?xu*O2=J)xff8CP#p_;cE}1k zWC}VMmZ(Vqmw5%NS#SbY>n{bUHn`pe4V9tCJr{7irW8Pm>@eZ_+Kd^tx-*D@>VT7; z*q)-n)7N)c(J>)zi&nCI~> zBYU6#BVd9fMgU9xMeQmp-kZy4{1cXv`FDM?77xuNfef-tEgA<0?K}FhNCt0iM$V3i z(F!Gub>vKf1=8N}&6K@3z)B%9)72YvOFNv>yhmMcI6@Mzm_d6YO z9r@M|**O=!VQ-?WW{(E3B6s&&4!GAiQ)B|6AYPU@_T z22o@H7)wLs#ebMSYwMy1Ck-gd18{lL-ft`y7iGoeu#4OE@a6Dy*+V1{#s`^&5C-nd z5or*Tw0={b>?K2*_C{wg_bMxP&X$EtzPLB#%6M~~@%Ncqr#qCZOvp z_N<~1p)>B;Voz)yfIofQYm<;ofi~ow9N^Nc6_`-DKHtc$(cE(DhyADqAyR53xN$xb z6Dy!A=_H=~04E`oC^p-Z*Bix__hzdT=gXYs2d;{Gx;v5rwk951g%GfQAw>2KJ4vlj z2?Tsexxo(F6rMwDh(u&F`AdMXWFpU5IeG2FElb_MdlrLXJ>6B??cw9CcXhMikJ~emF*|dZ?833npk5x8PS)V zUw~X(pVG-DEnHi?+6`()%9Mz@@L)S?QibB5o0KchJM*<+Uy7m&3XONk9*A37RU{7a zR;aM-XPQ}4GS@iKt%2&rj^Bcp-h)S5uzd=wK_$q3+3AwXAt`aqj}CDVKRO5vsC|e6 zKDDaU+=ouOQk>^dA+r-M7#qvPqp>w-_iv~LV?bH|6W{+ti_wojydx#%kfzbLtYIM9 zSED9F>uADP^Xa^ z#H{RWI}m~m)T|p)S|xy4e(;7`LM&2^T61&o(JuZC{GJklt>{ZEE6e%^PMI3 zugp7gV5WNVsNek;WRg%P4GOc34+W$SH1)JVq&qC+eU?nK$sS`ag4 zi-BoeZyg;pgS~RrmZgDu(VxH)Rwm*pb=I2d^!h|=A|;#~*^X7^zk&B|>+};`N78@V zzeMs4+c}U@dl~6HG%R%!txVocEl=M~)`xYobgpi)d#S1!YR*8h;w+{-U}6yfO+xg1M0`s`oGYc% zCJL}?+5^lP8VMul{6tDrU{m^DA64{U;~pp_1RYB$Z5>6Cq%--bk@j%Rn%?_`d)8WqDpm4(mvMia=iDQYkxhAA?XLJS=G z-2@YFHxM&xQlSXB)X$0uzx^FyO$QykPWA({y{d;hrI~V_gBBfxD5Vv=o0URW3{<^H zIABO zru82S2)GyePnf0I`ah8OU*6d&!+Myz|H4kLGEo0(=hgq(h4dfjDozuB*DPUuT1VAFL;i7(3gG@wfE};XfjZ0d z#6b%yjpzb&A0~DAAuut64|R9?{k}?jeh4R` zsD{D!e8H!-f`Y}u7daY=AgW|V&^q=MIWn^ded{U0#XHuJuZ5OBNP^Bzpe&G&o_eh= z2V1Cs${ zv53alAQ*5>2!{r^*q?V|Lo=@ZS0cqkTR{yZ(T80DyEyU*?Ck4{ox3!oBGdSq8&pWt!#pz6^>}aGIStQ zBJ0hxr#FA9>OK7W$6VU1xD{6B22wv&NL_BJ*OA(lOe@IQs_*U8S8-29^hKva@rTGy zeHIXN1zGf4-JJZDyqg^NnyZ_1q0r6gP5W-1t7+7hzPZy{pB^e4-4uf^XVA{oJo1=(L<4PQ1iak(d?4junh>%}4RnAvb42k6c>giMa{yFBGyt<~ z<;PmQ<7~@BO}~myQ{Q2eKn8f1Qm$SS3MMkL59s_x+~IdqcnKlzpr+Ac=b?~cO~fgk z9>uEb)hT{u@L^L#2Y#d#z`1&FKcan+4#)slNo{-`j7Y@)mP7-Ws7W`(_wMDMQH!I6&>KgcWQvOsIsOhiHi?VT(E|+(opJ<7 z#-(45$LJ@=nc09!s(HaWlmQC%@xeM;o!O6eYT%`F@xz|* zZU4*+@n;j90(D4(4%)uO-Qlfk4K0SH)wO`m%wrw1x=#kN$MPxl69BAe1g5kaMA zLI#JiuzxfPnD8-sTJS=%?d@sy?RAh|*AHJ;{X&9(8hnXC3Wv3{WL0^in*Y{!<2s0X zT0W&XpcP`+J|I3vVR?U9U8ZowrwzNGG!|8;D-7FTMIrf{sZ`C0Z4^w1L(yR7HTJEE z1A(ba&fO_&U`rH}i5EvyZ?W812@JILAGATL|HrFo1RqrW0(XDh4+FKu1Bfc7fd=YfSxL>J0co;aTT8IyhS}#)5;LQ$ zhb4Ev!qBvSC(w|JP#p8*C{hN0;XGsFQVCdzA-*2I9!<3V=Z(m`K+2ttASBthEHo~) zM!2hu((tKHf5A=7&d`!vNW)=_IKPBPC=mrk{$p<^_%F_7WAZ5%HVGqqbagUsfP5zA zhBk0L$=DKkA;#=EIOLy|t3iil#Qq0GoA9@9Qj3h}uRDp)uNyt!-&iW8bzkkYF)!U4>N` zs>~#T>+!|}2XO5$_VIYp$5y);UvL;4F5&KZ1nB!^_{y|j+1GZ?Ax8onm5Vr#%^gUi zAicU8fWaYqoyzecj8RiBP%dI3D>k<^{0E_=*?L4|(j0Q7Wnl`zzb@1(Jy5UYP_G22 z`%b75>?*VOLKCcBaHsR^y`T?BuYNbi0izlUEy$0k8RR7fCQt)OX?jyp5eFK~_ZjtX z>go*BxkH*i{~(Z-mU7mR=I2+(y&rq+bxeI7>UjR^P{+MG`#C2({?s$7oW-JyEiFgX zoQ&M-{XrLWk2pbO{?|+o=@5XD!9+k8^NvFm=lWj%!j&)9|b-b z_CBovBf$uT=G*MY5-LH3)Z1O#YT0PT-cVUpGv5lMGEU^fVBua*RPf+?DmI&IfXnqW z$*fY0r$R=F&`HmTTI*trTPA_RW?3f45!HN$c@k%@&moU%ytRKhM{_9b{IArzt6BCXFhf2Hw+v644Qs9KE4r z@|T&0pGwdQKY{WWAt$VX^^*uq?wZBnl<@Wtv9y*FzVrgB?}3?6yvF2&wuMzwwt_hT~lb zLv(qZ9JQSd95Wex%MWx)-=CI_@bmU}=4Isf$xubh1|XSb#CHw6jH1utuib{vWI+I>UfNi9AnLv<88Zb?em<7`` z0fuQ-JCHsnriJMe?t|xuSU?LhDCc2ze;&^mZ!ew|#%bWz*WS$?^B2oQ$i+t(1w{Bk z3{5~lm~K@{?;=c8|D_lj*gFm9Uhq`P67YVMvn+Apv9up7aWLEh{}*lO37?y`G%Bu9 zkjE@z$*jw5W?KQ(_aS@&q}!+ssc{GyCHz^f@i%*To>h`mhYTunoyyH_Tu;Y_w7n|9N4*Q^=*g7R_{BoWBb0t zO&ZBKBihfvK6vF8`gPlm@pN?iq1`*K-8H^_=l1dK>HBt%-<+;XckSDC3xhnwcYi~> z%X#WQ)kAYpKYzRTAKt!i_s*1mZ`-vc?R2h8qmj5p=_uODv&8ezt$=dJ0ibjf@Y=tF zf5MONy?Ohgo5v4~Z{N55@b=yN1i@Q&@4sdH`&WX8j=)^FN;)rL*$Hm%vU zYh+~e`t6%`j9j&5-Bs(?>|DEj^N#hKHf*}_#;aEE+kNBMb^&;Nrw8(Z)w^%Gb>AU@ zEcyZZaSi?8NPRTS^Cp^N+Qtv0H|^fHFMZ$52bj1UZ@Y<3MQ13xgfg$=PyZ$MPb;tE z%e-rBS)F=c#NPma4gLg|didSsxjp^n-G^@7xBUaD`eWeSKEC_F{&Z~D_-$kR>Bjc` z9-ly?UGE1{v`j%beHy_w3h`&hv*U{$+2q+i~@wb3K!A7tf0nJC&j;tG5KeAzD){d-Qvv%#;b!*qJ-LQ7!+D&UWuf1yB$htM_)~;K( zZvDCq>o%_2v~DxFFtUEl`nBuVtzW->!}^WuH?7~i{;Cb2&W5!c)@@k7VZ(-v8#Zm& zyy2>iBOBLjT)T1I#`POFY}~kU)5gskui7-SY0aj!;FmCI9H?QPw-{m`zB>sOAfTDxY|CTj}% z1`E(Ki_X&4yJ+86y?58xx%y`0G1Um7`>L(zf1^(m{AnJq4m{wU*KgaL z<=sj8a{i(?%l-CS1KqoIY}X;Uijl!B>8kYln}tYYhsF(G(_5hY>5aS6k@Ub=y5=3V zRiYxxj8?Icr zYPGs>ey#o!m-?pd`}ad25Hohey1_`}-Ja)$JZ-8frj%0Gpn(!`E(tn~=;w9OCdKcZ>zGKIM+xCxt@9v%3 zZ_$ri4!!q-9ah>Qcx`7(2Qg~ZNaxDVzTNxxcD6|Lxw1p|_V3(2w)0SD%Xfb;f1~jJ zUAL}Vr_$Z;*Q{F0_ecKMD?2ydwtL^s@7=xsrUSm7BSPPN$h!}vg6;18yT?6np}hZ- zy*Gh}vU~r>M_LpyGmK?ylT^qaDpA%#_B9~}W63i1eM^)gR7#>kX{8iev}-|Hv>`1@ zic->|QkMU9?t4b_c%J9;`+T21pYQMW`oDhn>viV7-*e7=_WPXcT<5yZ<%>u?tKh&` z8Y;OrBP5U+3*QyREUlkvrBdSYeT;g{hsLspT?vYhzpN(aO@8MPWdSFnz%1 z4AdA6pSfv3i_w5wjl@Vk0Ni2MtFl=!YaOoH|#o1x-_I)%}o-p^J*I9(KDXK`$ zXZ%A_=OCW7_=p4v=%arQrN$0LaD_04?qpSiC(wp}lfOU5!bzx?veIJ31Ejt?yBPm= zd|K>W!5sF96(8zOmR8UatsU&c7+ws2s1Nwqf*3)}KW9keR|NB><7H>%$0x!aMt^2t z6vG|Hh~RJ_x&J0x|KbJsOhUr^qtF710gEY=57r6`n^WAG@U8hU!=Ro2Vr>I;EDVlK zhls#4qTdmn`cG->zoUbPpzNGfoYyg0CxRKk2u3sri;#qx^@ouVt$*;v zBv2zE{6vBuB#h`Q%KJfFCN?|J^k_R135P4-uz9c_-ua6B{eT!g?Mm z56gcBU_HQzGHAkbiC1)$adma|boFr!b`5il(02Rn4(ksL3>6sTLf{^*0xW?b2AZrO zj}?#y7f4$j+~2M9MM?NNUk>hQosZ}=_IE`ahi3pr|LH(j8Mw~`hv-AJ&PIHTIpEmu z%E7ZdI0bNY8hpt?Fo2^m9qZWt=Y=#zSfgnn5{(XlvFKG83K;Ytnm4d2V1gzPav>j% z5dS}|LJmd)zG#EE`XNqJxN88-f_+2(K_-Sd`QPVZ9E7mwJ3@5}-JWn2F#G+VfYBP9 z6QggCjicb3Li~$gJd)@z=p}z(lJE%PV>%i;QT(!iIolq6lZxP!!2KuqAIcEVKW(SK zpOrW(6EcWHdY;n)d2tIIPLj&Jcvr6f1d}z4qFBJLH+)3co3G%V1^wth=G-YT_!ZX z{AL;cX0AchDz*$KL{NwXH=+?*82*@H ztR<@6uvq|~Co6BPoQ`>NrUFdS z2q-ANCZI(_6yC6b0qpc+Vnl2%M7t@f@FBq36K&a`JsDVjpm*3cj(rg5kFmnA6GT2t zSTSSkivR6?6%Jz(-FK{O&7u+s$VrkFhB64gxXy z!a$7IGb+R*p1}57!FmVLPvFN49xLY9nil>Zzg7;0|Jc=m4LMM# zaC#(k%`jl(0b9x&Wq1Cs?4lP?Rtc9_dA$R7SXN*c`@h}rAELccKG6#(qijEdBpx2+ z(-Ii#SViE8um?n7mqC(vJ)vg}M30*!2EFc!rJc z{}{cv2;%xr(u)mH2b}cc|Cm2J#xQ2R$>tl6VvOTa#5rd1jPU>*oa0e8>lo)kWBy~j zY&ItxV}$=TAN-GO@ZTJ`Ji|2?0H5L4hSk_s2h{j4+DGR%>VJ%v0t+_Q<^;h+8n6GY z&YIfZQxLO#`f&6ZGCqjFe8}o z_ZVHf7@iqukI@|}2zkK8rg;(VX&)Agw*E|mBd}cm!Cw#1Gbtj$3GS=Gp|)gWM7v6H z;6Qjr>q~ZBT!hS_x#c%|@L$l>jNmB$FlI2~dIJX}3TnlcO&TB?Vr(B2#04;#2@{a; zWO&gd!(my>pshyxRncKgSS0%+&Oe0nk3dUS>_T;_56%FbA-LihL;_krfRGtB-f?2Y z>tbVhR@-9?{r`NSe{G0Dn%iV>e$*CtM*Jr>-VV>Gf3tBRJR`mg8&|+HXZUGQShVh8 ztu^T0Al!g0R*?kxd@GhCo@?+PikI~sS}uFiy#m-lf%o9=<;O{!gnRkH znhmX~={|_GpaV=k&hQFR*VGD7`_DH+L~IBnT;9Np?O7y0cnmeUYo%W&C9kp)eS`7c;XR~V8lS%!5Tu1 z7R&UCU|JgM+x}+x(OyAVta~KvjfKN3qQTmm2hklUw!|#F59UC=fGtYk#FIEM;xTaI zqvP;?z|g$EJ5EG1815MB2+JrgfQ4ri;%UW8BqYFr5r2BdIE=mrc6bT!M>G!` zO9GzBfoA{~2h6@uIgG#=gG1}x->m9XzhT~MRN%a94AI~ivEj%cMv}V(PFaT(6c$Xf5oe;hIi238=6a? zdI`;d|7p4Yis#z}@u9pPf=-L_^iSjd3qIwTq~1S`bF3Z4(HD7gIDJ8dJPSddIWekh zHs&Aak1+E8fAU+HoTh&SlaBGL)NuK&vGL)ZJWf+Rhq~ed_fOmJSD)bI`+34n216y7 z9_8z>-J)||~zmy)Z8G$+i8CDo4u0nbqkWMHR4&$?h1BVV1?!muAZJNJ# z3{8h-sBf)rXln2LUnxIJ$jW{$K91zW$2}GDME_G>7~Z}NWj}_$uU`aBR~Ohrfj(@g zL{nqGe~k4$8&~~pd?3TC479JDJc`XbJOT&o_f%lvi{>XbJ_Z9C8spixY8?Im7>yhM zUcQ4-saa)#%yY!s&&}d(v-*NF=PQ;qGXW-B02FNlmdI;UiKO$CD36~xI z{eBQej|M>uFX)4=5GNY@xmoS>n{y-3CSHDFO6tn@LURF(vaxYt0r1KMf45?l-&L zD3r1Oh3s5(XXC0OZ&h>5z`RKskrl~t}bCx67a_voBJr~C&;=Mhyc{V$ax_31M-WToj$nD3$M1A zxFSH4kUN9EaK$wP!WaKD%oS(lQxg@L2z>N%A&V7hCdMYR3)N*zo1|LYfF}PS(#RTa0M9 z1$AvRd9J(K?dnlCrE;HQw@7Nu0;iM*Ze)7rpoc9J>oF(KbMElTr~$CV-GtOs?o z>0f>}DQ^gOrN<;LIj`BUncm`>qiCpoozACG_3eJcPx^X7b6lF6n&%-xTEVMohUWvq zt5GSLLeDhX2Y0)HX3w&oxAPCGPx87``pVcgS=;M!`munmIU!!^zJ*I;s`hz}=ozeV zeE!I5kDvTEO+}*j^}5dyhVzZQW2#hbg^Xjp9iN}`ao&E+TZ>QY`M2{gy$y2=+afDO z8A9RqmiOB%8Sm=95Yv{eW%LZHQ5a&U8T6Q>l^3M@7`nVU-&^j>`0(96aq?z{lTXeX z_pZ^^n|uZ<&-QhA*7+>hwfb%T&#yk~j3&KGtX1@VU^equ_7}SE2FZ6TPlRsw?Ug<7 zQHuYjuV6Hf)BOxCzt+4PiafoVe$%yw=igui_?Z}ucDa?g;;n+P9{6&<^{z7!~_v+CTT_b8Ij;>Myi9Cm`;=SeohT z@X5|5v{%WidG^g$()duddfKM+1zf#7tIhlOue&@;IzZJ??#qs7yMVI+>T1aj83BhU zCl5bceIY=>o4KlK!sh@@U0$uED{}%<`LeILRl5b=tzWRSHg`+l^}*|UZ#3!y=b!$b zJ9ENt;LPwsZO0kvLA_Q6jYkgo1igN_<*cxMQBcV3MVi^wcZ2xqHr5@VF*!IVOlh9f z;YGm(zC#_hW}(5!YkuZ;7nKEf(0?S(nD{tYG4WhqUMGW<47qbP}4rE?#Bj#^oyk{NYJE;?lGPbGV9 z_vqQ`=Zl0qw?GPjyR*?y?V^)&-U`#hkRqoR1a5WY~2;( zyUHv?GvQtg*H_n@2I5mu@-UB)9N*z#D%!Zz++=(d>kWiW`frI<8jH$6vZc|zlvMs{B4HuYij)Cd~MC% zJJ#{{bT>?R&7B^|8R>Eiz#n38XJf=8oxy>B0!I89wm)G4&Z}bM34l4n^8!}j z2rmFwkpr{ocJ}+dIpaGC7_BAQ;U54-{fmun14jE|Y>d8B&h$nA zqdhsc{|~_PIPgUH?$F*k+n+51$Hoi6e-Vej4Pegry#S+efgPR!81+jwegk|5*p|3dw<8bDIZ zG~j6I!A`vgA%u`Z$Q{?p#e_=2B|f?h zt>5ouM$LC28LbryOh4CGYi)X8Q~d2ZarMkim-ub>uXi#zc5dgVR%(V-t52E!={+3_ zvs62?V<}VilcjCAlwP06Ynk1{t4!KA)uw5U-_e#+wdY$ObtH(t)jm+F@&4m8_if&> zFOr8TXB*OczV^>a79+h?T2qiu`aZoy??N>nqi#)Ct2KhG$nICk$o#!a5DsU~o%HQj&ixeaakC+>M^bo8oTooMd~>spyKcFQ zbZzvTt3q;~FB0dhI+E{bYW{P}`d!57yZjp48jpPH=a2h-s%#r|u}H0UT**0?m0`+C zThojvO~yZ!8>lyq9nH?%Xt0Z$WIT1t@%`VPoG|N(IlSxV0`Z9@`j>mRBn||xRdP74 zQcvNo_VwKm>3wxYkyG@X*@2{c@5t#@VjkTk__CZTwdzUx)3UploK94FN?UC-S-!l|B*{j9XLqta}J08xdt3F-Vn!UgL@Whj1XUkHS`H2n$T(jwQ zblA07XnPuA^7~kYnRgG!bUaOrAUaOb*!v>q>D@Jach$BJ*-?!HzxGhWyAEjR9{6H3 zEI`@q_}#8kPSVaT-_~t){v)EN)21`rkLkV2pRBhLFAh+9jQ7>wF|jpCpl|j%r{lZl($@gXK0eGCq>eJC=PzEEI6w% zlWrkW{++z=+cG&jOILUM1%8xI74M&k*=QoVV&;?jZx2-q?uZ@I zN>~&mIQ!mUSk{K>>=QZs9|z}Bq)+QB=j@%L5GJ>u_e=e`r=mZ0UMRC#c=qx-sTSAC z`CWovzo||Yt6Npns@ngfMfQR8clVW3g#2Ea#%`Le(y=y5%;WWoNkp1WaQ!sfi?8mi z5~8NBxyzT*{&5nMzaZ_=a^k=Pzf>W@RjZb+mtTqp$ke&f@3{^a_&*|@lK58j?Xl3g zYa6*Tg!(EXwp3no9Xv){W?1L`5(@rNIH(zm^OF41H9m+Vs44$94w8+{-9 z58rsLd!@}XF`3k{F*@v;fXb0pl}XuM%A?{b54X5X4F8l-p0#?hhxSb2;19Epv8vLyOjnT z{ccg5$?L3l6=c`=l_j`DMNk}FB=7Avd$D*k&1RT#?dwyc1QCAeQtGIl#eo|}^S2yt zZX}yE`G51ieUz6Jyu#Y5T0m-%PTw`_woIJ^A7jIpSTxmiTgZm6L)6nxXEXXEsswjM zW>5vvBEMy+EavH6pDr!3syIGOYqR^b**hk`+cRIRqf2bN%XdAohiOYE^(QL|nZI3j z3*!7qce4s+5|=$)Vr;(8_jb4J!|G)@_rxY2zqzaBjcuFssi#-=gdG%GFlX9w zpDiprsF?{>bF z^R(HJQ}KNHJEBPBhv(lG@bBv3H$S$sTu?k#!I`>Msjbp3tYucG;~|Q&!!i?r3$dG? zTz++SNoy+hOoWXZKfO6KMMtHRC~O589pG!Q9zxv^z~z39Mjr!dbH|3dQh zNk`5L*l+4n3HZp@7I94y%-)QIMYUeYlDQnRRN=13#B-KSa@WYCEtbBU0?tksEFMgZ ziCARQB%9P0Pj*j`vY?L)$~R7*dP=QgNI%(2blRGxycrK#i?7X*y`gb4RWSN?jQyQ6 z7k!z0L54Fb=1UKTDm^XByD9A)vhj|E)1YYmm-C4>Pg|1XK9?+6T>e9lw@;<9NBP3& zmD5G)!?E9_TVy{M(=Mv{X#Ehb8?N6X79;6OrQV!#dezS(Tup(ILLOZS@kgiHZ53@i z=UdwEMl2}KyH;t?EA=HJZ^`Oz73z!EQ4{A(*zn3#;i-Ct^k<>&-nqNdZx^4c?5mV3 zPOc-ib#%~~W?atIW|k52ZZ=aZ%wKoUdU)%(eCgucoR)CP#}=D)HqoILebr5m!eZn} zJx*_0dM@#g`eYH38CAqkN}_j0#XH4)x&h>f;COOTlCYzt)A@dhk&MT#D~9x6j*w=W&GM|y z+ph0U-{he+sY&9^1IZrw!$*9RyLBzTH}iG(c2eO&PrInsLea1Gno3NfJzx9&ZSos zUagI+&%R5$;&xU|d;?Wpc=fic_jvic{f>KHrj*3jk}{&3A2SzAub-3ZODf#rCZTsR zMe()Qj>Suw+r&*HyG-ZZoOj;li57S@J>o>+S}m%C1i!cDg5g-;$H0> zxKCV8ohK=iw~#k5SJ|dh!LXf&;wn;esQ%%({h94+9PYfhPpl-b7kDJ29NLjvY|WaHjLWu@_ZkH#b&FQawJ2p*brsC2day~H{BHKjYX zc1zjcrKM&hKhBpf|7JF?e;6B zSGEwWOPyu;E_|qwjv-RSD8@S#NZ>MQ1t3}p+ZBEOCv7V<&@*66F(Vl zd4F}%r<*qvr|~DwJtkIH#DAfAzRNV``I68ZGFd{mUoLJ6A2i{~%CDaDP&|ZKxyL)^ zoeO_^`7C=rhe31drDSW5{$q>d&!0NfLZnZl%=6Jp`FycyTfSo7vvBG|qHV}6A6uXD z4=a{cdY{Sdqds=tcbY$a=ImvGpHKeSpGh%2dU9)9bE;I}OnLWh={lsy%8k-rsJn;D z7aSbv4A@STR0&pmtVvdH$2#f>MF|NrKl_$jqIZ7K z&$ki{n^XginMtHqHZK?tGipmp}SPr)ynXSX*+*7d9*ugltZ{jJEJ>Q?!s8+IKi zk_-s3p7fzZRAFh~#1fHpl_DEHKiV~`>bZSD<}Qoa-Ji)3wqHG&y|>oK7^@`6<=aZR z9bA=qQHJ;a_0<;}*O3iGyUr~4yD6?CuqR_w`yRiaV32&QUYw$b=#KUso7Z;nNz2a2 zo7do2wN$WEkY7u(RrI8Vp?q;n&Vnb^Pxfs#>k!;{Ea0HeoaB`rGw3C$hnu8JFMc@F zo32i=sJ5ssJj)cbEXbm7xSM@gH+SFHPEThcz85Xjk^^mhHy)jwYn8f;Xj~|}sxWL$ z66x#4j^o^X)QP5&qNW4sBh$Yx5_9oy5o#_r6MW#dyJ_E`icrG(BSZ@>lC52%SBJLi z>obGA<ZXj+D!`CJK*IDl2APTCSq7jj#-K38MO%sq)-|&dCYu~0!hKSfXCmueU+=Dn$o^}FR=hGKO=jqRHK05PF z+;H3W$3tJP^gq|F3VBiQF3e3L3+KCOt)w;$%wDtbHECjxM8E8iV{Yy<8D7nty%Npu zUS>(Ec0Ag@Jhjwq$s6JJnQL{AJ14*BExm1dT-~1Rx^RI?OK%*2EK2q&!!5TvU*; zT{6dzS?(=2S=2Hkxgf*xF+;lO(*|qW0ztFsH{~MCt}z)~-wIUEyCk(}-_-SAOIACl z3CM(htt$}SesW6S_wK$5tw+@Zn>CLLIy&(^|GXs0RCb_NX01%3v~hWh`PWhJ2XAt> z_4xIuirw81qx*eytzlod(R(}E9HEGkt@+n)7Tx)n!~IdfLYinh;moXk%jn4xRg-#> zk2Z-3Xx5*4bI;Zy+Xv^c|VU;EJv z?-s_&aP*uA&wD>5! z@{_36u8nGn>R*+$F2BCe?K~jZPmfL&lsw){5r?TQy(HlIE7*UtBmz*V$CVah;5Au=u$RPnsyZ zho1*sAx%oX@sZ+H@{&ms9jTJ_*PmawD4TS*@LqC_v)8&Qk(#rvT@#kzf5|^@v(THn z_j12k&)*#*%qy`Zr#-4RB69k5Jw?$Uq?qe!uX1I-y+3QR*Y~;e6$zzDE~oS)6*C*} z*GO9&oggARF~R*-q9gNxz}(j%nSSKSLDzSfH1;RGKS9#9Bu7Z@Ilue)}GZkxPwYO(bs<+On@z7_H%vmr89`3KD6XC%ELU)2^NO zX`;9H%gV+s{d$mbpxlfSWg(cjPrEo<_k0AiEG|03u~W+1dfV&8YTj;Hr+!|WOs)|< zwf}H$)25SVA&T4Y2Jl}MblP{AEGR5XqAu(2A&V4Ccf9H2e`2(@T`2Igok54WSjvox zZ3(+3bQ;c-H}p%^6`Hq3J#IMB&r(YQ$Y^yn;_2Jgx!W4`%+6mwvs~V$N9;Q9f&I}B z=JBZAt7oonKO+<{^_|r9DEZ<|{P!>3JDNxAcwFwi*U5ljDsp;MGHE?k?B&e2H62{H zipd@Y$JG{6j@C$IY&O3gViEbeVovrCVy8pi{+f!H)MIBuO!*QO#CxI*)2}+ciT~ue zX^L+CS<3oB&55gH*EeR@Oq=Z8;YkXuJ2#n_Qx@5k5#18VxGO$K^G3k_vQyvQ+~0Df zUs7LK`fABJDXHu3eF6fGn~vWiG44;GdwcC26|OqI!Ne*-!sbb#g|);R^$xl02a_K) z3iBtLhK9eS<(#0kMNJY~L{3l^NKKzqnDq9R^T$PYb0u$FDC62a|5#IB>#{E@PaH%_ zcBE-6A6zl@VtL?|Ea4+aO@{MA+vl7Y5})V1&{i17rH8iqIIaw|wZ?I+Mn|vwx>C~6 zR^P9ynf%A_X{|_&;n&5uCHV^wkf7)v@(Ti^e+UnPqnzQ904Zm9BuFaE5g!sLMXD35 z3ll6wENRw-37B$(#{^Bq*}kw#iUdx7g=Yz#j``yPsK3JFf~aHln}Q3ZqODZyqTzz6 zXe$-F@^Uc&)v@qrG%!I`c6;b`b72Cj?Doh|#RXT{;SVR^0<5g?DGwgM!30@Z;fot> zae-D=`%S!1C5#ESvf3lP!UGp@#oJHsbz2NB=!&;rPtN+exWFqOzBAnaWG5#0iiJ;U zZ|3&K1z@r8xf!0RQn(;2)*jUgKV^Jyfmp2l=mTetT-=8V#-jEsc3o)S^zAh!AdA8` zR4tRgP~(9K%A)qDEiR~1dKrTW%tHI=MNHJo9on=U7o3IDNHufq&xMsaSOTd=k9JIuO z>-d+F0!+}Bq<73Dr&#}K=rmm5mO^|?t>W2Y&p#a(yrsTv=w})~{vyYN3*ZuEf4*xH zCacfecncH66?(t0C#h)r$i;Vhm_RO7L)PZb45`s?TMuG_xkUY-S%!ySjSQS7V*yamT5cAg?q-^5fPE8)M%c&BX+I1uuHPUl9C0|3Lc}Ot4q{r7U5h&ZwrKIJgS?nPu*Aaa9dhRtHanT(g2Cj5QzGGk zk&zYRECJ!#vZp!q_wMcR#07;V^47mSbMDI8J#M(bFez4^(Q~BQdrA!j6C4(94NvN9 zd7*16g9{Lg`|#vg%&xc|G_V5`BqpWY`1G8)VnL%iE>KLNC8|8i3|<#Mx(X94rfM8L z?<+D%qrx2*FeY9WtI&6wyk^IIT+o=J?jgG6%d(QBYjK#sF;!Z}>hbrRvdpuAnBXyS z4)09zd_teu+j>j@S*ZWkkrtzrLr=S6F+pUplOA&?&+XqZO$8T7CUz}2S+5zWcuN}> zOcs)?-@DLoeRRrHTtHc@>ogyakpH&l%W*+v>Fm!_(#z>?fjJVGz_MUizv+IF+K6RU zGcmzs(VW01IlFpn#EQ!?0cNR3SKh>Ws@)gp;>84+1@CBhi=G{>7kp}o2{emv8zerH zA3n1p&l3}DmNYQspR2t%;#83&F5tZ7@!gsR3!7KmxS+F0wC&QD+9hSrjBtTx$&H_R zZ(mKD!`qvH2|km9`m?#dGCtm#g$qCnXOw?h6MivBUxg(I{qV?qwS)Ox8N=O}Ks4#b z_H^AX=OufGN-)7_;l!cWH@_;rnw5YHNQ>WgBkECgj^%G!j0sAU3?hY^X}pEQs<^;3 zWy=<^iEnOk>7FNHg45!KKXXct(`GCc#s#QJsXylNKJz=&`gj-Z@0@VS4i~H@?yc)@@e3)e>`BH1tcA=!m-DSPuY1zjfeBiR35dSyzRMhJ ze4mL4ToVPQy6M-OqIKT%VS?8}J6?JGICWuL=HAtq0JhkO)Zll9a(u8kE{HAdUR8K@ zbcpYo6)uo1IKMdc@Dd&ClQVI_Y*8bVncJ+EckM0Lzy!3V=1$i-PdXO-y7v+$s4WGf<+SIsae-~otr7c9Wq#z_5rPYDOFe10Zu?D`$K3}P;3f;k$IPjbxbZcaCCJ@c z;27GuH{pvrF3>GGo7S=}==H7dg=&~!H(B*yW)F`C*S86{fVYUwmZLJfr!QBp-GvEy zOEAPM1||y*T8H5R-{d8pqE!t}^I!4fg5Sb-;+}QXDy8qfmx&30OI+sbZOYRT-0Ou4 zf|EYpc{Or|7Z~2SK)7(9;hv;}{I`#0nqz|D;*lF?TFE!+S+uHP0^%fc(7V#`pSiSK z@tB}E#WCYRrnPpB-=&q9z&KT_#>6SiC{+J+3??{ET-!-~pS|st&1*+YfLutnkbdyf z553oW0x>~y>NkS!q1K|F4==A^0_8*v{j9CiuXgr6iNFNQh1S?GzY`-L&lbW3%*8%# zF)mb)H{D^53z`!vz6l#dhPzyl#s$uWcGMJYv9VncgokvSnyGLH?#{|_yx?@$7&5TcN>3@d{tgD(Q&4mS>hHC1fq5cX{T5TzDfwWU8YVa|l%I4d zb4YQ|y;sAS0KJ%$)rwZhguQ!@?ZyS^UwbNB%yP-fa=``ah4%c6E$$0F#{3kG3D%3P zkK19g+Om-Mg99dDFP&%Z9yEcZ?^~mZ3EB(RN}u8}bRb=pVF}zH?C!d;^{_)|uOKFP zFV#rAv#Mz0!`b1u0KVYQ2dPnp?>F}6bYp_}qS_m0+UFgtco&Wfl-Yeu>Sy#Bz>SgxQvpF#&(l*NM;7sm=nvPPm{yW!~f+7d=$&>nY&^|KiWN zFGd#)uQk!Z1^-EHSC4Mv9^SWdIj#Ue;g6!m8|hf8J*&hN0jP}|`fnb7)%|GeF2_R#5mOhJH}{aWUx31P>sa9mMgq%{!06Fa-kXke#YeSMWWb(J%#5BoLf_IYEdiutK4B zDyC2%YW=bBk(pp$wH!;a;9eA01OH8-&;k`q!9Z}`1FksosPnC4T+u-EplPaTYf|MU zcU<8>YHF|zbE#EuTRg6KAeh-Wi&ymJhTBwJ0YRj1(TC~JTohC3xFUjNWO_}*>N74M z6L5tD^1aucan}xc1KJ6u6Q(%y*6guJziJ5L5vR3Q6r<7#h- zE}pm$S6C3f@?%Zz&20_FQ*gxviCP_-_C0R9GOsc*1qM=2=Bwr@HEBm{crir=;g@|< z*GxNSQTJwJ3Ju~G4)er=E1ddg;ff8U5(PqOG1W|&HZ+p4Y&ovzAZ|G$ zcb(gw8or#lxWYq;yhe}4l$UqHaK#78G!1>335}1}3g8M5)ODBq97^2$Pi)Y^6d{NQ z`s)r)t>Km~Z^9HJgzlDyQ_M@R&dyK56(hLK{WdXQX~#(63KB$a_qvd#-KN5?4KPIs zp{rj%nI}ztQn<$sQG(4Sx$a+<+werKp{9}G|S29nZ~n2 z4wxc^=%Vd?itj0P4nnv>h14raicYmfLCw2POtC_66@$8bM#*UBfybDFg~-W~=eztj zTztIQ7E`p4RNGTNp|i$GzVJS#a6ulq?zDF0-ips_GBCvpk@KgOWYzczLP`%~3K)`6 zTZ>NaKH$EtY#OGBLAF0_=)G?9w{A;ZAw$@Izx{A`7!it6CkgL|lEsJ&hN$H_Ja+Ryr6iXOz-QbDVnX4%|bjVpWzRWf+ADuT<>)B7>S4{G+3Yx;_e z_2G870thiQN6R*PvA=asCZ-4?WI6BZY)bZ8?@nb*Aw*0@FEV6j=)U2dwU}avG{wYp z9ie{Rvtl7kK}3+c^YMX8F>=C<&X}TzXi3VwyZzfwxGcgIMx?!SXRdYJZ6!7fR~!*c zig-8kUHV@4qsK4>6470oyA^$Xv%VF$V2UJC6V4J7iZ7kg*25J_$XDJ76*g2dOmk0R ziX|fRWZN(Qkhtg)fh(9u7CXwFkqC1-x4BBC>Ld)eG~|9VJ`W zV2URaJG}4mg)l~qhEy>H6!L}hlZZDLFL7LiE20Q1D@_qf=D#y{qdBIKBB7g*7AW9P zcWGhbiYexWWy|cYEd11zi7BWEOHarVlhbJEyAX^is)*as2L%dfx(@Skg%#4lGvDkk z`eiAkCt->!6!O6Vxeuu-k+WF}EW8^EVjmvYo!ZupDY6hPdq-Q%q&D$p-^CPKC^D}{ zH$7#9WPdcq6kDhdKU|DCykzp=$>o@W3-Lzp2jOjZmYv$S3R83uI{*5JYupvFR~ER! zi%C!^;rKPruafMH22wYiZ;|9h%3Md*>@x-y^=di%D9dx!iXufNMGw|!#HxT1`d;0JR4Uh0&} zQ^zoc8Ns&0tqJBYc#6sjF~u2?>}}JF_K5Lv=S;v9Xe473GcI%Yzor+wz!Yi7twnE- zPb~MS9eso;)QC(sVmzDF`u$)su2>_PVK#c$Yh7WZ6|P`IR*<~7ZOC`RxtDU7qK$Aw zm-5-4T--+_aD^L*M$2J)-4`$3e%ym8-jL!;bq;4a?_~7V*ZTOX>IqYunjU=kKp1@! z>#w&)r&+vz)o9niHjgFh@AMm*XL*v!wU(?3KfB=0Vqe=IM#pL?P808FTECsVmY=J8 zfv}6b_({)_8DX|vq(dILFWB^QPXG!>5JxUgY{%Onm<%QOR|!i>?R~*Y5KOR(la+n_&3Pa$2?Me^y!+ zWLUv81v2y$?(c;ezX}P&&xTL~#t@P>Wn*-93Sz!-Vsvf+8#}@C3~>MNtPkw0k8!fX zV8SLMB31>?27@z=gCjt0xGe}j6Jr|G8It2=V3q=|Ix;8+Rl96)QhD}nn@oTZNH@1K_E*LgH>ppZXqORfv@kIn=6kDaCd z$FqvCLj?bwGe+`4|MO>zT!J_`&lu4IYz1XypG8PR>YJE3M;bvf4A-etf;$=m;5<5- zKI>RrQzLYET?CU!3xs3G|Jn!6Sq_UB=Y?6_fzx+c$CJa+HLUZ=$Av>j-_l{oM`y{i z^+M6J1Ll}+eZ2w*3{1KKL=Z`kB*x^gznKS-Mz-Ufl`&Ys9oN*X! zRI&X}!ZT`LHg1P!G-k8$^KtmiIQ(fG{y7d$1SJ;E_@tro4!<0SwIDvEbIncHk){IKy3z({Y66YFu{e0WCr zXZxeN=fp+h@a}PV&p5mu@H}wr_z<4OfivJ)dmNt2fj7c4XZmQ&;>4TA;hb?;4=@_D z*y$U2_o1GvMKKrqHk!@_BKj2IXmaVwnIkbkJSUukZ~_qSuPz?e zpJ+Zn7n<)mFB%IVx&mFQ_zn9-?;<)4eFLc9qrOh3c{0I_Ha(b*Ol?8xSf$Xz!sxLq z4`g+iK(I^1>%lHA88XUn67)8fm1Xw^u zc2hBczsyFE7AhCIlvN`aM9x$HFH+!8pGkkD!GAlka4>JlHVX`8xCHTA!2JU^zK-X_ zXpUv$&)`oRhf)9i-S6@5EDl&FmTJ32x<%HJD5p%N$c!R`rm z>Nhkr9H!~b>a9SY03n0Udq>N(@E};~f?yS-f#$8TNLZbUwcdi4*+k8+o`{x&Sl5U5 zgi?sunKycHN8`ZX#}mv9R-%V{`TGOa#9FsO#^`XUDjZ8b7NaY~vjpNna|s_f^bOL$ zapD=Q|Mo#xG~dqzCkqZeqdDha*%J2xe|EfRenE2znn$2Yu?sj|aGED(;MND73mO6@ zQjuM8uwv%T2!?Y&p<;q@^HiA4nDBA`!06}))8H9L)tVjT!dTki(`PL z1L)r@6F}i`J}cNzWdtBYbdka62{j5>;|^qS7m%3hX~`s2fzLn3WzSu%83N3p(=((hP%M5{&W;pB%64GND@eNE(!{-?xxTEg^j|$8tK^gIW z1o5+0LilOOFn2;&w3ac3`*gSipD_&1)Ky`hCyu=g>o#xjNAs{JM2yA@7Ks2$3x6Nn zcytIo*x!rh2bSMxm}zA?4f_X<^#|jaeyAH}K^z)?k;Yg!NT&h9NI;l%;7~ejoH+qM zYlw3kKy)Lz*mJ%g4#%)RU_>hhfJ1XL8k1n?Bp~{beW7|nYocFm79NRNVFrWD=p97o zp>-#EMoy50QC;zaLv@G7B{a^XXXFrFgZxm~+29s{L-d~rI20C@YZ^EdANmjZq3|e9 zL_4AKp!Es*4}}p1hvG$Ppl1{gJ)`&~*1$LpP8XaNICpSNaH-((z?FbI2JR}jW^j+e z^@E#~3UnGc8E~55K;4C~6@=Y%>C3Xj`mHQ)Ndq#KqW zB`EK3S%3dR*q%pi>s2V^>(cG!tN ze{K$MWwfJ3TTD|W=xhKx4UqRpa9F?l)4A>t*grTj919IRV^(;yF8sUjA%S>sc35bL zzX=P}BkPQJ=o%LKE8Oi&m$@66E;F^agLl~P$FbgLAIkyDaQO2B=1d>)fe}Vm zhcQ)``wsQ><)1eZJC|_d`p$Zhk&q)#em=mk)su47XX(YIA?-&=(BXH14m+DG%L69~#1NQ)b`HXqlq7@k0|w zQF=jkF?yR#Zywz~#D`(0+b7*($vUaWhlDUZ-|?q~RvxjgX-ERYRy#}+unvZ^PiQLq^j&bmde{iV zi-*cHQRWuA$$f#r{DhrKcU zwcUOC3ZEl;9}Wj%c=pFD&$fQ={QO}!0>h_MMh_pXsHvGYl7Qh%vxLA&?w;#sjih1N zPW7^e$LP7nB_mlFc9>neIV;_A`^u3#44+Su50Q-??1&gC!f?*%SEu)!@7SL+vJb;~ zi4hrh+z)*}G*XV?JB0^xwuTs;xjIsf;Q)%j#qa$*8#_kMVfdt)8pB~$<*mVys~9d% zj&Hu+xuig7^d^QUFPf`xmFNmbmOQ}l{Vn1C1+ub-O-G+#nEwW0?Wdac!(O9Z81AK# zws`ZrI+ry14#PJyteI19p35p2{eoddhFIqckyCf8Mu#wr+8jpjqT8dt24-T}gPxvI zG`ph9v;10bOa(VK;u8pIQ}e#ZEL^fi3Y#qngeuCE#`xR$mlj}O2(0~F-^SloPs*{w zR)hqCU&@;!`xe}L7=%%4KpV>J6q!B8YEK5X`vvL-jF1N;Bo;`{5r$v77Z;r0v-H^uu6-Dum9_A( zMqOdq5LY>dUH9zR8@BWMSK$fO7`}bsjlJE)C#TdVoWpRZzRV|)&qEpJ6Ru*oEXMVI z;cePYp9wcH++jB({_{%V9cv~$z_7NebpDf?;?BYePcXc_>ZPmQ-A4ycPUyn0j?saA zj}i)hHcxnmVWQE#1Lo#YXL~1n!7#N*@8pN>V%+C{L_$6ROU$Wo-0N9KJ-(=x`*&kS&Q>V8O zF@6yG!v4DaP-QNvZa`9b&QYC1V23~dx8Z^35E1^1Qqlk$DXcUuu-*Za%SvL=Xu}A`*|S5%j*Kd@VJPwR1lH?MI{8~ zqJUumj=*F&#<@t-!*^LWnvRs?JI&TiO=db%Y1%_{R%Y2uK9-HGH7%uSdaNv&Z=Z9o zqB#B2AG6jR)?wd$&i8%$_3hX1+xLFmP&T$+@a=;kG4QzP2aNUouimyk2+xljG`7qG z97PAH7)WGbc7{)C13h4{1v6VV0~rti%r*~TdxirKq0%A1pQQ5PMNKLLRoJcw@SwI- zJ;G!$cb4>9IBi=Ka};$8^aG~0oO?fW|0>vd&tt9pk0hj8wJ z5~@znHr*X|W_IFxK<@DKNcURl}3mX#9Cmi=IqyYhU076!8?4rJVF@yyLu?4LSov`!h zxY0d50RMHWhAMbe1IAKRaEaRtEv^{Pp)sz4OopA9)*1dX;~->X+0BfM!^aBm{5%tZ zmhn#W@%VXJ8~f`=gLg0l=$9G(vwZ&=ZZ?NK1h>kr#b9|;7sJo5FHx5`ol45AVXX+j zK^pXIXu$ME+#4V>0(e{C4uSjs<$UXn#`F7NO9Gdl3t=eF$n%%k4wcEqeJJzKx^7#; z#vF6qXJPzrje70|g<$xcKmI7hS>H6q3EjrwQ&)ykGjP^;!^Tq`$zhK`zv0Y?dJo8C zI{YAnao1%qc-K()-SC|0l>fcKZ@kk}()}&yy#$!_2=^ZFFud;qgse~d&}@U%moB(^ zYiw`o(D8n~uYkFu157gp-g`4Cx8A^dgCI->c^()um_GYwr>@TC)Lb~pXIL6p;rw7R z46eR%+zq^X9YM&-+XAMlRxmiiAa1bh2BzyW^qJ5oCHN!*o+RKw|Kkg?@G~#`lNY(= zqU;)y;xHYBd26VT?V}rv`EM$82v)~K<7_VQ$BP7Gz3h*7+!F8f#cN$I*Q`01;iOOi%QtH5!u*>4qhW%|kH5 z8Ls&9bvM(@0M-GPO;vR=mJUb>bjibMAcx`B%OGU^ZXbjU>wXnN$m;cUnDCos5`+CZ z|K~u@`h`DVx2;d#x-xX5(bst>Knm~-qXkPkGq$EJ0Na#q9@4iY+(h6T3G__Y8BXMn zv$>D;9Zo=qAc}cW#F8Xqg*Ra20o;#I z;t$NHyiY~?0uu{r`0GqT)8#ie(aS2Q-&z5Gfw@b_x2qheJtm!Ub9_P^2au}ta`%HUVrHFm6>z?{lj3@wDlWYX``IeH*W5Ge#^G) zFYG_?mS8dmMY+cnP1(Bbz4teZVc~Hj$Bw)7#g)OsN2q$o$OLC*uDj&UvdXIIGwz;Q zH`_C}srlZHMN7IL-?DS>i+?_`XK!2k!6#?OE#?VLCCvn-xwM`rl3|Oa@p3eu%ul4& zByFbj zieV`nZ}Pz67qRPm?9wFPIztE zoahos(YDTxD>5m9WrSN$vQub?_Uf3%Dszdf6ctiPi}TO0nYPNA$c{+ccTx ziH<_166?N`dOu8(pS$GEw4o@$N+s{|$LPJhg~+1)3C|?CbBy+l(jhGfDt<7~9B8hV z!?Z`dlgPv4Z9%=2F@m6-O6JGLq6MiWoMLZbjKj?%?}?%Q)DyKTqvAViYxa{Ge<#Q zvL!2!%A)q}NTpZc5aD@2z@i|DvO|e9g_*-GcB|P&?Ia*zgbZIbr=ci}go_a<62}Cq zB$=d|TqvDp;L&Is-hp@0UDEgXD*q$CMh4{<7Co?R#dGP^cQ0GMI`Z#U+vKvVKe*Dy z)y=BE(7R&gnkRPb+yC0(BgfwP^x|iO9Mu&%$DLnLdgrX(mGJTp`(Hcq&hh?>pK;gK zJ)i0O?8c_vH5)b_JKk?`B)ap9N~>$@X4f}1tyr@ISPmaMd-1aYi=(Ktu}SNF>A=B5 zr%n%ix%A;>TecoNbolN5GoO?^^ZNToj`x?AS5()`u77Ohs(mlNa_BEd-ahRJ4ympC z=G$w7TI(-AJ!_3=YmbboU-HnNz1^=J2o8ykDV|hb!Sw&3?mr&>;MCs+zWjP&$Ewb* zrxRRh+xEV4=z+wp74z2*jt`bs%&Zk9n|)N;L$oo4OBaIc-$&YJ$UiR8%Mxc|AK^z(#TLd1LQX3Bxs;H~sNC_{`>yVS<`Ez!Yg5xUU3WHum2I zH(Qquqh%(zIW6;y#XGG1fj%1OcEdcw=E~t~-nMpQA2|Gtz7gyIP%7&-Fobau0L)Ie z&4F*0(KHEE(U?SDizp=${Y+=WYU@51g0YH1S96p%lq5-SWv~jFc3L zRQQ=gL?uvFQNdBj&Df~~Bnl2k80W#fOfhr~6paZou{aL|C=dt3tPRv4TS6jHa5TyX zUNdkyK|Dw$Jaifnn{=rxOOPmL@kpEp`SYg|g-Q@bARI|(3c{jUnuD-x5=(Ie$U`W{ ziXcVagyLn?OpySY!eN*aJGH<^0of4LJ&D56@K=bDC?RZ;5p-D8h2zk#2*olI$R|(< zkXw;S#FC(3lpd2o(;?0yr)01ikoPdmqjfkuz=9H_Fq4ax(X+r+AJ)DX9~1=--2U4p)+5QwCj(vTcb_PK9KEOc523cpgb(kr`*nFkzv3 z!m1J~1#Lt`3esy9p~y%7e>e z{57;ZXargf=~1LAPC;)e0TUNgI444dpsB%-6_E0v00}^ygSN4xz;%-eXYoAygajK0 zqZo(A(J9QOlM9EyW`$5*lCT&}*Agy=j+T%W1@p)TQXRTPz7cH(o&pLrAhwE}M;kEq cl~K^w*gDsLuZ6Gl?uYv{-0bVUcK~+vABP_D)_Iq}JxW))k zs32exP~W9VfB<1oP*E8b1pygkRB6RFwgV_Qwlmm9L`A`NLdAA^-`{_&J)D!1R8@$G zwkbG!@3q%n!+&1?^$9KdwoYmJo2lYEw21?3A#4iqg||V zC%QBh!K;(Vq6X6@{kUu=*(>V?2`V<=Q?j3=>{P+kZgk~lNOkbf?tEHICO&E?udYhw zN{@9>GwDD;>)mS}`CL_~m}tGe4eUnEnao41L3Yri}eFe!=? z{HX1uAiAmb7xAiNP8eIWYUL3t)~tH@QES(&S`)OCHd;KcIC|AF!H|;X9)A3qHLH$U zw_@ethaY=9*Q1UI+Iq3zxHYSeSatZSwQG-Ev(?MyQO6v2{5qF$mzN%W?BT0dtUKxz ztJbbt`HJI$VSS#iT(@rJ;YY4IV#N`wjyrbkQ9g5P?U5`0+cWkKMwBNxZq2c;IBM;x z6)TT9B1n`nuSj|6%5{eyx#Dp8ux^!mHMjTGx+CeqsJ?kh?~9d(uRH44WBjK@!(B_4 z49rRUjz0D^D-J*Qn00IT*fp&?Fzd^XKgO57^5~<3G1b0w`iv`Hwd$ysAGt1=qx^p{ zFh4aPv-V{Lnw~T;55Qf$D%eGZ>^U&Q$|H_gv3k{OR=nz{bw{pv+3`mot=@w__sw22 z`KI2zR5k5B@T((M9ldJZDpls7H5dgxmnSTjb52p-npNwLUvrGZ%jgL!k3N1Cv}#F4 zsUyd&Jm#pwR~*0YW&1kPZ6AH?%WIEgYu6pSX64IQt$5X%qo9yo)z;A>O_c9wV@{Ry ziepb$Z+q6ND}L z41@Xe7tk#J!Y27>fIgkCm;OIGp>FVNU1~(THRnaU?G{D+ryu_psFyu|L4@9++s(O= zKruHGL?|f$2GIh2Z2uaKxq!uPWBy55_552fx98D4ESkGG{tK1b3>G|j?)>Hg3J-V+ z4dzjU@*BG^Sg>F&oudW*|1c{4vIX$xr$%1*E|Ds<@n>U~DGy6w&{?YB~AFZ3az`dQ@SG#a}>hWzce`xBmE-&?-g50&vWf3GGa1hMF+;l7|=ngutKHrH@F zPn`^czXImL+~#h(fvx#~Dd55Xi{{bZW}^Z7E|@Qh3WCMzozT~KG9YO-U^6;oomvn8 zOgg(j8TX@h}IXMJ7tM79Ii5LVOCDW+6O@VLzlNZeuF#{?SAG!}0%xwq_!jO7P61Wh00#E+n zvDwV*-`{ZaoxT5qWqWZAG z-vQA9&yJ!eHyR6`v*5{OY|N)cw0Ay#2ZBccX+S>cS!$I*rt$Q~(+>thL*a4ZCjOd; ztof}c#_Pj;!-ma4vOdT^`@YXt*P&mvp4xiFs#hGl<~32UurLu;tUdPlHHWWS@rqUJ zRvxi(-OAvLtvSc7Tv4bMsl~6fMoBqp?TX`89=~?g5y975V?1Lu6bbjVQWEU#ikD&K z9KU8&@Qv17(vCl-H+4&E*W-^X3&$#Z*-@_!zTbKRi7#KZ4)f~hm9OD7MXU`TY|XK} zXvQP3XpUGFJY*SpU8Jl)>m3>VptTDbPgu3)sF%5qR|Wsx8Y{kapFV7bmF5wJ{j9Z+ zEJq!4)H+r8@}rJ<`HCZsU$asMSMc*zR(^i`ae!sj)_Hzmc~%~G+|jRDv8_ChwC1in z{OJDvUNAIIsjlkdk6VRFdc-S^IwrVq=m|=f>9e+$e9_RZN?vp9(W_RRuyV~&E00;X zHn@1mN(L$Qtd|Teu&k?2ICeEnt`&0W&_cZ_Y_pzsZyg#d>U9ly+t8>IDBL|?Hk8(i zb!l&R4Zz&S(uRIq>N|#ZspV9YgUfyMi;R|d#n2q(dpV}!I_p{RPFJVQ7|U^`t5eS_ zk9mztyUGDhlv3;4+Tdzm8tK-IwZXgG*UD*itXj1;xMt`ttWMH^Ikx&*Pz`B$n{I7z z?NEHos#gU!49(GZ>i{99x9IN1p(pgFIJ&!OXw(yw3t|D*9}6 zcl4R)6Vbm#--zywz8-xg`fBvG=$`27L-!4B89KXtN&BMq6(bk4Zy!0YeQo=~_HTwh zIC4t+toE7hGuq#7f2aN3_Roh;9{%XanZp+hUo?E-@D;=F7(Q+Ivf*zg?;N>yD zM!uf>D!F^)zT_h#k0f`Dd}ichBVQW%>d1d2KODJ#)=ixBqC@2a|sYqxD&k1>;e>8|l*M##uPk4fAj+3$yrOexetw>Bfupjv9H;iK2-t z9UdXBw3U^B@Ea5FDQ3m7Cv9!@zKvuBTFYz zo>5ZrAiY$@ByU5RFpPZ)4-}QI?#4^(HjDGN8WW{&*PCcUe_6a|(9Rprq0D$`-0n6e ze;1xQ+4$SBF!A~Gbc#>jQGBw!4}!e0Ul5Gaq#$eT69uCb;_g&fI_27tJeM8~Xk8XA zje~t+8j^*y)E?Sdq%YHVokff3qsp%rb;Pt?J#|K1^(`OV-pi&1=oJNYqL~16bFi}^ zIz7riG^-YltAW=QpX>ybUlWG$0GvlKN~e)=2|7(+2U&{}d2VNoeDvt4PLwqu*b&uddZd4y~zOaER95okWPE5qdcQ3GtAe+n`1$e zWX-IhoHg=19$p?mo~kv1$?iBqmBlo%(}-vdT@dq(N24?}O3yfl*BzRiMSIf=dIZOF z>8oXzgpTQ>^z5_wAV@Z08P=+8I$ogy3N@Hy;c8mmR6klkp*a~&Quv+$B6(dNuE~EF zzB1jY%IO`D3bPg*lr=U2-=^;3jh&bd&~fAp9VbQ1CjN}ulv}drjbYfRwWN?9eYm1! z)Kp-r({d07v_jVCF`d9L1xBL$M4`iwoW9F2CE$%kSt|pi$e&R$wZ}|DZ3kXzXD}E+ zyCnH9KC*d3kUyo6l8=OelV&E-09gK`>y;r+KOwmRdX)B4OB?lRp{4!K(w^Yc)cPoY z!@KqEJfDUzBJD~`Tj0|gbY7{qTk42U1(x|=8nW|`>jh*5mV?|VG02$#;w_=YgT{eRgo8Y(_2;Hld`xIj~d~n@9A&Bv|{{veGyIQ zZwAt6uozz;Vh=@%{LsMkD(Qyg-@{nyvQ$YM!qwdZ08uVk9i}(91}}{c=)~3rm|>#Z z$Q@_WXCOjOZt~?$0z65wXCH%uaeh(KjkS(Mdj=DE<3K0y4(NnZm(kLAq8pb=IEyE< zO;>fSLn^`*E}1f6YBop6s9Ub8^d^;VTDSg!Qu7UAp?xomtiPqO`D{?{@3^}AFGY9v zsJc5|b$5xnJ3f^!DaCBQ*e5MEk`uS*^L*00scuu$r$o9JE#C)8*$*76_PssTN??q4 z!)F5?zO?U_L)80EWlb;LRm-@8NY_BHhY-AXG(HG4AK4~oJ{uIE`NuwMq9OyxJxnjJ zY>8+h1A7=w9($uD_S%E7=PVa%Uc;G1piK5%C3ly@%UO_q`xJ1<)f!BP$I(>jcPueX z&p+8-=F6wj?b7SbsZ|kMzEH-Mw87FimHHJohiM;a4(?pD zBF$z+nx;ama|>xP2BTC9Mr$}4OVKo81lMWsILbqkhmNMfmKu~57`VR2)avWbq!VWT zLNBsV@JsJ7;0Th|xAbilo`j{;nYZd}4L8PW0)n+yATWc|F;m>O#v9v-wYJsV^KpJ4 zJDQdBtTkB$YZQ>4uJ#DdBF=eK$bcaIonbP{&<=~m81T#9Sob7g7zjoAo!4#N5TqYC z-6PNxXjg-VF#Xqpm}Mx#4U)ZFx-DgDbcd$8Z486XFeWuGM>4FbtMVseK}pl1swMx1 z@>fs2QnpfNsdOAMkM`Xg_Oyp~Hk^mATrDf6l?T}nYW?V`d>wi@8!1extO)`|#RUel z_}R(Jdn}pIE2U6frDz#SYCtz~c7o}Z;MrrmN9lJU2iH9cm91tfBjh%Hx8s3|Vb=B3 zQ!y)6MVP*?AbbOfld?UdPTdQLQ7?N=JqI*dVjqU zd`VtWi}+3zwiyS~oDHvbh8z?nL>nPp{BivS$2>l>Y> zcvGy}Z58T}(Tu6XCNC)ec9kzF(CD;$6*W@^6(}`eM$^2)VnR*s9W4PYEg4A02pT?m zwvZ8N%Cs=-$kmXYA9Kyvwu>i5M?36%7GKDgA;>f56a;wc^;)$pY&cWV<<#& ze*49n5jwue=`!Cvo6J2Wk6SaccwjR$swtXqD1wX@OG`MbxUc7-0<=+d6vFU$ObNem<%2ZfEn6jfphn2ZqCq$>idI)i&L|pRh z9+g!%BTTkIQF6+FiuAK)O(`{ft65tRVJQl-AXy=rm%NeZ)%}^=nG*$}m}m@<-a$KH zZ`dQGDtk(zN$w&EE*qYap1x5OFT${z&G*DOyc|y<;={t^QS*ZI&H4apZ%m~>JCj>V z47`mKR*j63m*OK6?Mc|g5;kTg@k8ZGH={|-iZv)giR}uIHv~b#ONp%_U6Kq9_Y-4e zU^H3^=H!<>L;Yp-;R4okn0`(Ls<3&g(v^!Ity?d=T-Ze%Nfsl7%|lz51~jUX{!ra@ zA7gw=dMu3>cA7NA4D@u0YiVoaBq(idY@t1aUH1$2f=VpwUQ_AktwG{0G{L9!KwUYw zs@Z11wKRx>oHhYD(+?uIWyR3qjJR?^)~s}~Egip21f)h64VP1o<}~qBMLCjLR)aO- zX65w5y~22L@Tn?>@atu@@~(H`QN-?3`EA#3M(EwCf&ienBuxKFPY{VxtRn95D}?D8 zW*QnwOgp7r^E;?nwA_*wrr#A^Io%b5HSlwmvg!7b(;maWiBOi7g^LAG3*`f0RV)ng;VLZB1JKh0D#uz&g>!bl>i{; z=D-sP^7}Rwp6^5Iv!?PN*~8uEl9YZ>Wd+Gx%1A$9KHwnzq^`;FRe$OnB@z^q&{Sa* zrAO!TM=qf-kyA7o?xUe!4y2W`hjn0_4!Ewgxl^a1`-e?xs80noXCWj1s#;`D!^<4J z%Hl>$b%9@!E8ln;Rpz0eL}|#%Yey46sZq*HnaY;HygPk8S>}u2mdh&%_{3C_jQRqa z{5Mg@Rt1nJ3#;H}d^w8db@0?OGt2*bUMxYDT>m z%D~tz{Y5RidRxn*3A3tN=FSf7sW@_AH1LG-saL}b8z=;>@1UYoHDa2wA0Xzos1h`F zdeE5uoRc?$iZMLXCl_qJxEd!SSB)CnIFT|bn2!*bHUC+r0W1D9lespn0FvDz0_pLIx;;=#2hXb?e-1E0 z#(CXZaxr+bRs5Kq>qJxfRgt-)fm)s(5xqz>CEPlpBbn(HWs=NOsbTS#-lNizU!>ts zG0->-h1kXV; z4CTM#in&X^a~ZlkQVI6X&}d3-nH)nJTG8G@A`XGNQQ5zH1`E4G&mIFkl*EL`(0;)} zY8`TPN0|$^(TGA_Fkad(IGW)S{CT8nE58rW;>}Y2uDfc)M7QlIOJ)Vn2hcp}sI2W8 zMsiLY&)N)iZqjf1U9phm^7*NS4-e`N?;V}UJ)L+pm-gP#y1^B@YDWfFJ5p7PYh*js z0z#{H?`RW1&XT>Ojk=EP9c}Q)@g2Us=&&#}QQ$JCU(vt{94aR}RDfy{y|m;c=f>$p z)w`5R_K7p8NCz`zCX+Ka^zbmCHrpd{9qP0lS{cW7M})>~*HZulKp}gSz}^2{}Ao~`Go!o+=)#_(DEXB$qXY|?rA_; zc1G{$;|M>Vi27u5PF5;i_uUV6Eyt=7f0ZHI7}U$&%bl{<6-I z-a0RL-GzsqJtiJ;vSO$JUD5diyCZ$z`vO3bz!+9}j+3|nE|6SF;jq+^`@|bUqhHGQ z@HnuWP+9?vq9ns11S!HbR_iNi-9E9{!1awB%eI$unYwbE*nK=Ynr0>yBz%38AnJGQ z%tOiOqcAm;mUo7smr*&S^RJko|A{jR$$Kv!e&%EVFxpD;JMHC<-An)Evx?yG4|YZb zPx`FZR5U?BTMHC28l4qXyN1D^)Top5uC)eEacGa+k-qeD=TmB1P3{<|N~|DNx0XA@ zrQBIompi>u2e%hU*&(TeP#uB9dVm)dkoCahDJ?3GDb$jmc#4V-~n3C?+NS zy4WMDoD#{sVO7RuJ#)@BAbs#m<&Pxt_@#h1358D3MH3pPomZb!$TMXlGXN`Rp!M0g z`ixkY5LiUy>VNM>&hq)@Ug$1U&hh9arO94P*Eqn6N#Cq;WxW-nZ{1(^C;;@0egJ*7 z2B07Hj1z5KTma~90}zJhTlxWXi0hFJy_p=LedNuTRN#?ys*g(WXi~f9bp;)P zE43dwW}fPOqaBd%A2>eREp z>qY?_7=gLUi0SppXi!h!?ymYodTBW@&|VttzfY{uX+H>;#^Y|7jUhsq5BwnRLx49N zpSe$Z!8$Qxu)bjsSSyF(?7{l2ez4wA3smbFy!9}p5fg-ec|TNrzyc5&kM>X?%o2ub zFil3kOJ-~sGui+S5$!mt;379+uCEa~0D`(ZIlv*+#o!1$vyd)`rySY3!e8nfr8 zj}ok}|C0dgPPZn1_9(%6@t?suXz2Wlez49`&0gCN)<1bQ`^$ca%}#|})DN&fW)1A1mjn*rg>In42i*EVEE_@L0t_ib zFUkn5VrZqoj$V|@B;>`2C;G-#O&@H;*ow#j^SayE${z3t7At%!kDvt@6wVwM;A*W^ zgbV{RrrSynP%WLwd0au2XSFCm!>}!n!ntu;Kk#Qs)7SLF{?9b6QTrMFV4a;g^2UCs z{xO>)XZFKlw)}l*KQ#W#-^}IJcR9edyp2h?v-^QROa8vBANGIdZ}InQ`@#Al%^XC< zs>JR1(QP6Hug2^80Xy!d4))d5!P0nHNBXC4u8FAw=?J&>(9I_daFzRclxd)L6)9tD2NXEIXE3I<0%5+uR-19d3X7Z7St8Au z#3w#8RYYQ#XTEA868l2kF0jh`60f$z`6yYZ1yQ#2#FmHle}BDY&6sVDCKO%AVjEjj z%XCCe(|nwG|5q2472r}W>PUaB(4hXTZ>q8`_HCe97Dd#b^*YPi*OvhgBLd)1)tFB_EjjzNiUu4*b4_Yzq;5Rq35`u?4R z60aSU_|`#*R}M;imnFWtXZjC{uf@h{CfS0E=fpv%6`+`7PmSB@4I*t92kF8*MTZPp z=m$vAn`0nZm0!?fMp+fBS^<0NdmxuR-}PM zj6g&T-6~}8CPpet>@ll~#I+1gIJ9c)!_+nkZNDIbAPJ=x zK@#bG@P0vtO^XELUVe% z)dSGlv|PX&?lcvrsNm7qV4F3xR*ty4utVIgl`;TTtzI-xk3(D@VZk*8(Qebn&NnS~ zKFr@^?H|u?J7x2RAbpz;sr2~!I#^*bOa2?KtUk^609^{PjKwM}HXDEzz-JXv{DEXv z3@crIHpO_DDV*EoxQ86lCB@>aIw07QfYlLu24SZuH~_SwpdcUW>r6~}qMNAf%$@bl z04{CZByv)lf&p-Al#t>jkwIG#8*2yzlDtcw$_AHYV>D{w&XznV>*&}F%5=5P$@f#M z3h=0>Vcr_h2uOmJ+uH&>R2k;G4){#=t)#AiXf#E>QbIP8DU*<*GG!~IB+HJ;EBpaI zLMclj30J?0J*@KGo~K2d8R4^U+_0emf zqlRZ;#R){hID09&SZC0z^)Ujm(gl90OJ@ffe#sCV2ttxKvbStC^u*L?IKAV*Ui>;r zv%LpW)5d~vQ-va*o~AXEO>4XOR(*+*N#tI}!f*OZ^fNo~Yt4VGr@OwdpQh*>!Pz@QV z+7Kjbp(NFZr74?P%SCht2LYbe6#LOM4q6K^+j+Le;Mf?|a)SYxo;`+g`pPMFUTlgo z1?8rE3~ta2$O=mxMr|lEzbPYZnrvEu<z0fZ01cURs zB_eZ6bjhQcAvFKHsW~yjIb^O8l<&A|v*<@}OFPQQn&#)wWei{$8Zc(LDUD=XGS6;Z zsc~u#;>-r&(>Y$IK}HY|dtf+m)LTp+(%n$fny_*{(i>a|&$RZPKixj?InJXZmat@9jI=BdbOC^dwL$vw1y=umzaL=+q%ddNjj zX#EH#7&3Aix=wU7tnEUw;j37swfphzH8jFjO>k5;a?o1FDoK9zAR;&v8oonRAa&|; z{M1`b%~Fyk$C#>f7PatR$hxq=cp>e)p^IXG$h-oT2|!tnXPuOltYdM%^|sjjz*3Bz zk~5$;z=b*-q zuW#6D z-X0;|6!Q&b4KKu-+0Z|T(=O=YG%eFn|ETCA1*Xh%V2)GW%>(q4vD*m<%sn+;2t}ZV z+5d+onEs6`X1pcDszIi*eXWqCKPQa~t^}HO3#1x+YG^Ug9`TSE%#&u3Y|W)wbL=>r z`f;nVGb2JzFmnT({3~@RuunsM&)(4M6hBO$H|Re1SD2oROpIzIW6T^hGp!qYQS2mq zWTUYddMRuIii%kwSqwmOhD)}{PL4U{HXZDY0pL^_1F;OC!j3eHwa|%KoDf)Cw!UVG z`_{V#7RGYF0c(0N2=TfUZIY4NYr>ZXyl%#Ndf01HJIh%EnRr4y6=bT4&06>FpP~>% zG0C;DjCfIljGCbwGaFHA{CL^lyg}aQ z`B60u8fq1NLSlF^<}-!AXn1 zCgZI1~P^N2)1LrmyqkfebPVU+kCedGmkf|-3KxVT*Ce=_L zuJvAIwtY9;V<2qOvqIjn;9};Gi6S1ERg92hSs04 z%KPS#i4|JgUCQr0YaN+AGJT8d$h5|Q%;_5Akh#sq^dj?unhvZP6ZNSIV<+>wii>0u zfY3p{TuqO<9KC*5RJ6^U4syL}s3!|C?J)GOSph-vL0Oi5#IHB}e#=6$gDp(JXhT-R1>tX-z})Ce_U;vjQKWplHJd|tcaZ5lJH zm%U@A=%Z`qb2aV(RK5;s$nO{4(r;5`_i#zi?e~UBm4gMB?)miQ~$%fgBC~{2`nwt5&-~aH*F-OrthiSgcEAwxE%R_p< zU>8ekoKR1jLkZ1%WGZj@{$-++PLl0HTX$uf7I|Tdxy6qfg#6qhyJL$9M04YQ+qMW~|bj>4Wyw$2x*+b5{DQ3=%S91Bp{Dz3q zb=dpm%Isp$nyjv5Vb6$81_O4DJ9tKxQYWMZvh1jrOSzwUZNFeD;axe3)5zbl7RSvT zHn6WI9DZfO;ph6by-2&kqP&qevtW@27b|fsf`xvTyRBALWjh4OFYio1E(?GU0+Y$? zAiwvmbR>O`=b500JizdfCHGa;n_N-TqCKE5QIEVgcSJ=2aUN;9&d9(@aY0IT!oXH@ z#Ikef%{j`zJeE2@{%LnfhQbiLdAd!ny2u@p;Q;}` z!g=Ix0vbP3XF083jrbVUe!u;PA`C=g21?!zY?Kx1yM`!`qgALp`t* zM?8o(=lj1^k&x~QSXu*&&H_%7=)hP6hD4oa&zA+DwQslsF>R>HiqHp$<_{YIhfWtK zPZ6pk#XvKU7F!w}mOKpv5(sNRBk%S&Pd^WobI;RmF~3 zv5wv86e;pQ!natM;)yLmacW2~i9VK2bf~ehzmd;WPOXcQkA(dbHOuOeiIRHh^^yy8 zQ)<>g@KNpGTXq7SZzt%eFH5iwI5uINHrOC^$y9oizIISiA{`LD+3F>&pQ1=j)tjKU zlTVCKt>VEWxMBM{B6?N}^RH(agC!y|E2~v~i zVmdp^0zNLe?&99rrOIy6sb`4eJU#)7{ZnU%{hd1)8N$sxF2Cr1oY~t z6YM9Nqu!d(Ia4wdi+~#NDZEoY1#SzYDEZf@GD+&<5?T2{<(0yqugFWc2X){LZVO%7 ztO1f#0aKx5LiZ7vAR`^oCIRavj@ZYUY4*nR7V*q{OV&Jik)jSMlG9Yc0)Aebyu_Q3 zHOQ1}5{B$R{NaKR7RwO94=>whJjy7EfJX9}el`g$6rguaoN5Mu#Q~DR%*DxHtodJl zG^9g7dlxcEwN3DJwwCt5_TnC&3tlcC(JT%$^71PIFJ&Nc%N;0gx?vC;4JBgPmst6jvdEA`GI6+N2h6KQeUY~gF> z*9TSRyTFfOi8+_P^V@3FaZgxn$Xz!guroDfUSE1pH(&nR!AFA@a=BX z^glM4>!}E(Wd@qUs|s>)u}nnsD24}e8G>y1A9As1IILMh&>)i5qV&D$D9WFTF@9sT zDidX*2nbCiU?wq4(6;!I2t22!oXRI)tt9>HYQdeoYue;LOMfBkJHV?4v6(EO1q-Ca zpNO9#*)b1#x7}I?5b+}g5ic<=5&a4+I1QM@DoDm20F&%ZN}OjRrKD#FS*HllHJv$N zi@qV={^j0|#NDCGmP`E*iTfnKUOTh$t(^3i+aU3IFt&QOxtQVt*8GL(>rV$NUD(Xo zFK9(lIR!gN9u3hGGDPt;qL0=IRuN>z3zM*q9nqf>Rx9-Ti5_Scq#=w!7BwOVBoMy^ z{g(95gkGDA()ZQqRcC9l9iSsqNxq6qOWK@PA&nk`c>I-N4()X|sWTL6a3Z7#ELA+jBpUTeJsR(@ z?W@z#W77AS6rG7Wy}DnWvH-a}Dy^LU8vC?MBQ8$PQ)4L=I>kcMXK9p?1++E2Qz5vY~ z#1e4}xj>w(Y0u9)W3!e-vbppmL(P;Fu-HZ-_XHW#QBIg78;Q@l$kpodpm>aK7S^IG*6|70&% z(n7O(UVO@4Jee1Sht$5H7plLJepzkOjCWLOVGdZiuveTkmXK>hK${KHvp6fp1d7F% z1d34zoHw|zkAO^&{#>lB7247(?&usYrC*g7J%`Ekt!&;X@FYKfLNn%!UY)UB;`_#( zep<;vkXb9gla1(a7NZf!OygSHI<4dej=Ff@+RYn$AON`somR30kg|_@Fyqro1~#II z(7+zsFF1!*ijFq<*3#xpoT$-vUdchk1=EWSuaeGOhQ3CZGMAY}ddi^HzsyEzjy|O_mhA;CETE3YFtf++hTxdq+APg{Wp7 zjsjM7fB|8GI+JF2pIGN_(Eag!;+Jp-@{cwQdn{`5U=AZgJG;P627qny#+vRNnaECq z73UhvsYZd8gjARVK#E-19J{kaROS?isE7%FE7mVMp3Q-NXLg9nRvd&$;)-#ngBm;b zAEL5RBnDG$P@jxJJcIfB^TSCanEWd^M^S^FF`jqf|KWIoFKDm619`72h!R3Xb{yo! zUxJ-WICxHr<5e0#3z_V`D9=|>2bF0Y)^=?G%y~d{51z3ZP>hu)j<7%F=P09yTQngdQJiuDp3hT{frW_^@VhB=D|*O(eqZ&ESoOnY^>)5X)#WQ4ub7PK ztKQDtaMi;G_3BNgP`$|%sy{z;N4yLl>ic~1CiS^hR?1{kz0YqiDkTy?gnB6apKZ!U z8F_Vgnaob#2zztg)Y*k4BAs;7aT?$y8o?dpGMb-ZRm5c#c92WeuS?1*SZ-y2ln^Zr zaw%|hV0TU*mWtC?>>L*uS{8t$4>%n@5CBBhr$X{LzEg#kE%@3hGYvDa9rI_*Ua;4&M`nUFUB zK`BXP{CG+FsgsdC#x;_pyVNBq<8!PlnQ_FLI8mDH6K_w3?pv3k_0wPGFfF(QK?K{(p_Kp2Q65P zkHWL_lh`veIWssUrYKOfcVl@53Q>atre?5Zz0DoX#^yfDxP6o+W>e|uHM9H8_M(Zc zdPbExjRn2a4qIfb;b**OW*_g=iXW0~?hl2uiRkSZ<~tP^7dzn&$m@uByQMNTS71=> z#Wc9MX&NetXG10LvNk~N>6c&!P1b8Bfr&a*Yoh!ZF_C&$#%^%^R2l>*JcsE!A^Pot>_+7f4(bMa5^RZabGd z%5SjuFd?f@(sMn#VVB@r*{)yXjXT$`L2Yn2hj`py- zJ-FkrWLqewxr9&Yd&}Vlz}%)bz*iRMmFU`#mSPBL(Pom0ETILT-sHZd5F0x4B?DmB z%H&H?H9YG*Uvgi~+5XaEWGrlNLu~;7HWux)A$WwJ0o!Absq{RDPtDTn16P?%^=r*m zD9umwU`99C|&984CbKl7vl zHTIB-f;E?TQX!+Tm7cGjy0}(5(abR7Nrjm=VS~_^8a|A8j5y@sg)l@a#F`ec%DCkP zn`RcI!c3h=MFCBYKo;BGVp@a$fHdN|3R0m(1x+vqSKRJj-OAl!$&ON9SZkU5^yxL* zq?AUDQh>|=N|}Zz-un0^ip@2m*n;${=2Z6(QT)^sMV%rz2-K4USt5CIURNUr2WL+U z#On+51ku$Xt`z)NA_7nj5r`H<0F)vj0is0<5I{i-pj)&sY7~$`0ZxD{#Nv|DS~d%6coK;vIj~MDg$}h~m$hqOvKb(G*uazKLQQOY;#=6qr+WW$|ZAvr-;| zEzN1D;>yQ2RZOElem)CP@rFO^k8=1i4N+YE_$G>JjLM&QqNvM>KO2=j!%rRBp)t7a zje!rqY$=OI_f~EFt>(QfW3p2xJ*s&%8d96y$iJe2vL-32c>}ZZw-@esKoup*oJUyr zSTw#4y86+uF0|pcjCx!3eZ8mhGCuq%6oTPy-;}#p1YB21TP7X8l=2o8ER- z?Tdv30)EtQA;SU+=Is3{3xl|owltdOLYxW7%ULa=A()C|`ON-Yt~(24?;Y*S5G>j! zI)D@=td;UY8;vn^+FN5O(ls!9k?!`64&~7XhYY=nu^H>d=38=li$RLmSaxPn6dSu- zwYv@NM?BeJuPc!`>y3zI(Cm|1qae^gV?ww>t5X>oI)b;+#nNd1j&j!C_l)C`GsAlD zJ3-3TAXh;Q>D~0ms$>s}0@N%;uMb&c=d_{$Fu5z^+_-+9|eOMUPs_@WAUq6lXZebz$z&3~P zMm_I!kRAs@VbQaFwR(f@YVa-Z3e>~Ex{rE9WR7-h-bZ->vGN)+gzU$Nn9P72L{ALx zKP?z^fQnIxVCLKgh2Ru<^t|h(3nAkv6tThf`K^e;_BQ*R(kap$O_#zKx-BKq2czm+ zac%4cS}bpB2zlOSkY|a&{%(g+EmPUodCWkvAP=t!^06RqUpT&1#yaH5E69`AARl|k z>oeyy7KO3=(z9_a&u7KPv14NbW(zis9UI4a$;R4M!n3h%9UJRTPU1tk!pZ8F=VU#5 z$VU})t(p3yV$2fqdZ#4=TMExg^1KRqXoCWHf`SW&gDM^Osq+Re`FU(Dr$a?;wcgr5 zlpRe7i1~#lZw8x<^b-OmRIap3Ev@C#LZ9<;OKq1qQE1vsR6988AR@P1Q0LdU4Mr99 z?Wjqc?64O>m_H(r<|FBs%s2eL+Po_wrsxxm*DfZ8Y`Ow~Sixi)@u>H-n5ZGK){Fu*Zy#(D&`4I5{oWwKcr$H7SK}hBmvgy zuKPwu+OQj&N@)1~&4>eR5HuI%M59hql6Jw**?lu0a8VnWX;X!`+&xh`uxhSasI_5S z=Gz7#dj<>qR+}c^9DvkL6=vH{_Sde^aP}=C(n5s zE+<{nyX0bYFqkLI(lB_vH>+!`J3L9dmD*a%9$2cl5_!*nkth+3z%di19o#(qw`9=( zDNSKS;L)KXa?9?LANMFkR%~sTT0bPR6Y`8&mw0NmwGJY)C2p;Ow$~FaOD)9A5%dYC zC0(Yp7ShzlRh3?Kq^${s50|8^GJKHojHrCv!LOIf|3$?~DFSqW<#srztkmyR=ia;D$QfSGxo)^nPP2d+#6d_U8!+y_a@|CK# zV!zvDQ5Ni%j~=bVs%@n`^_$J7@r^gZX_;qB?QoNR*2W^t`WgqnF*ME-_ld~LRS0$c zRz#`0w9xVu(d8~J@?RIh_Qlt>36UMbQ`df`^PI(9YCma26TH%XtLx{Y)<<*sty;^J zeoWkF%dXkiMn@+a4`KfYOXE#i$DrK^V5+6@hVluknOz8gg-v{yyp{Zab<>@?yn2cz za%upAy9zylpNpjLT6+*rh9_DTR=GP(#?A<+^KAaWIkY7IxWK>5RDR=Y^>p6r_${V@ z52tBT33F@u_)-YzTyT8RyBRF@6UViOBN`Z`$$L2{NN(5%J9rV$OTd)EqZE~`7* zA|hsYNyBu^##RzP=v3JZ8`aYEpJme6fG2D08R%d=$sK=e3`Q6&(IeX@ zubvzHdJ|ryVAtJyF5OJ;R>4m)2Sz8<(hFQU0FtG%?^1(3l9CBl+vmXAv?_Ed^+`qq z1w_qomZJ4ktWbwMghvfV+y+C*e|MT69$4Jvd)Cv?%qY*ep`b9mUG1Qay8mwN{z2U* z7uUuw5V!BDNJ4)!cZ2Q7!8O&%8yX8Y*cjA$@~l_#c8yFF^=tHme2bo3FIy+%#cP)A z0s!o3a`8G3d6Jaon=*?%@y%u{fsNP9*sf>6z~X~iv1P5jh0Hx6A9`i}BUg@X7VhM% zK$hQr-exd!rzC|e7S105EZi^)ZNL(!VLdHCfoho>qG~9>;Oy&GNgY;Mqv(PvkwB&k(dyjS zaQbX(_{NND@IZ1k>;($)&F}j>01l%GX_njcFsT*Mx!q>q-^!MhORkKo4GTWoGd)X( ziS3${-N0TBqn;mx9=NO_J#M>pXd4nn8a9vWOpSw1e7mmw`wjWgu`&8OC|y-4cVpPFvwQl#%=Zy3PSv+6KOGL}Tt#x5hni zo0eNK8PXpOVtA2FeYVKSxLbI2`+iaaacgYNl74OzZ=Ym3Ky6Tbn^xgboyPQ=Z5bY; zt%Gv57&I<$-|1r)sFr@lN|2ENyN}wUv-7Um4Br*U5(;MCdu@ff@QhHt2R9VmCCM+p znlJK&>CGyPbMV4S2QMq##$_k8Yz85!|BEdT1vlUQP<|G5g#OS*ffFP;_;SJ8fR{T_ z9@>u8%B;veGAopi3;t;J{YJr!+j1zeD2OHuHwZ=SakDPd`$b$P?1OZJs2(`*vE3$Y z)+?(s{iZT;J3f_u$MT;NSDUVEMTbNW7Ieri1)?!fuA3ejgR0bYqbegPb=L?=GzRsl zQ@+>GSPeS7Tdd+5l*OklC9EPb$`IJf1CusupnM{%4$L1)~lPe#9oxS9^) zLfImIxzt7ff&~woiL<#^q~!gqs+BV0d@K4>!|MgMny@PE`%ub#?1yL%Mpu| z^G^o4ApMBDLVoPC`j9?FEm>B+T0WKjz)CyqkCi5|U2XdT(PRcBrlra8fi$UNY$uKF zlBHC-2<)<%lVxVRa{V!pB6Zq8lz17aj6K<0d}UCR6E$tP9vy=E&is zQ9`R#lQJNAR?7mcHa|%gh{KBgX5o<6Yctl_-_X2N?iE}TNRr%xd`%Vc}Z z=Q!{3nRDI&e{`I8OF!ow1Yx>A+s=MYGsHB~0l6mc&plIQs?naLzZq8kp&O*H*GowA z4VI~2v$zR?r#b5Vn#kP>ksWQSM#xNGr*ujT({qg>YWz@GLrdz`knJ1d*~aN2Gl5F` z&lVNBnw?0&p^>+oPJ6`hlR3jqc9v9XbL)wm-6kVCp)QRMFp;?;*FIaVaX1paEc6-M zEC)h+{~1+YHU0^Y02Z2H#R}Y+BY+Rhb_B5SPiF*hb3Zc{G#}Jy-px5A?+feRQN{k2 z9s%Z1&9Rn6x-3IaF;K;_)|L)-&laNl#F_NhT9Ux_jRDQzbDLH%(}oG(E$( zDM~l#icgmK`eNvn#mWEdQK*F%0Pbhte~Mv0#^s@NOk}a+G7Zb*!l99TIEotUn?*Pa z)1aZ(%d&bjLB$38N)6K>gVD6cMP?t8jmvutCxNeRP7n#%F zY?Q1bb|hdwU2|M=CXb%jgH@Mdswn2kIA*0ye937icG*#Da_r1ZTdX#DY@OC^p4jDn za@RAt)vMvj^vtY%T6dV7*_mX?$k9Bl+a?Py=kxJtBo5h2%H?ytRH6EESTCF9OBKp@ zEq!ONitkh?xlSv-BExAkDYE)cF_-B<9_;4QXlNSsIF$xC#TtzZ09KlEpNtx z82%o&PoiFZ$84-PXZg}*nK*Kx#*Eo$UDNhZCHHE4Pp@~Cu$wMUe%lF?Ab~w(RmaeM z#xeGM!8UJi*t{V~KdO?b4;F!)a`I?{0X7Xi0XpYC<4E}7{F2v~d6l@hL(Pn?JBm_a zu_C+A=xlFm#4x|zk=1;3UGGOJ=QZUgPO9Yt>Y;w0R;&12`Fv9mGJ zfm{k~^usAs+{hs3oF==ta)zYZhd2ug-?yEJL=(ajD8~xO@3#6cky{&ch`;>yo)iPP zKw%(>(l-ch-7x{NnZ8jE)PyoFoCuMXm-SKVQb2zWI{;7g6a8=(yYok`9rm0=42!Co$DB@A)9FO6{c^}CuVhzAp$VN z#2A8(>SAD?zF8U6kJ2-f{1pl)!n;Eb!a3if4CdhbwN+T1xS?5C$}t{&y8kBM5c)4d znEaeKZieQ|FDA7suWA-AU!#dQIH3_upaA8}$T$;kmg076#r<9$G#;}xm{kHvD7*$DX1j6F z8Xl~T#)XVW3|1x|GG?3F`eAcDqz6?zXHkJF$TPoPS@S*e2kaAn5E(rv)PFXVyh$y# zaYNXTl?tKEZpBVFKT)rJ>wjD{Uk|nckYYYa!D_W zrBxt6T5q3Bbq#_g($9$Svs!nfbpkhUCBIt870=_Lz{Zblcq;(uedMa{Vp%cmMo*Dz zq6;ARe47kw>mqnYyu!X2;^HvOj>W2AHBe?VFuiLog5A`w(26mph-pd7RYImtMA<-H z6K$9zx*$$S;eTIhSQMgxUPo`$P>Dw(@>p%hFRFGAJ1FD~Ly>mBj!tlEP$lrh;)txs+S|Mw7PH zZ$xSNb%r~?-S5d^kKNfQS`@*467V8wzyfM?;IUeh3wua3L5Eoit<7}$EyK-&@h8C* zr56+uDBonOH=mZ@W;qM8?Q#0#xGi3<86zfc8AD!fgWQ{YcW^E>zEum*31b84A~@7S zs}c>GvjrhAwMRGzbh8P_Ze<5wVLTzi%Z%P*^NxGT5Yi{1R=DFc3;HxSnH*Ne7E*`E zsu~rQ9GJYj$9k;77OXOr0DH01vS8y(XUIbV8gPn1b~^zYir=D5j8;B}2|2j8RfFg}T(%g?lVs3#TkP!vYMB^0dk#SeVR zwZL!H48lCh-SX=ErN)uF8ZQb41zdbFND|wIm7$&9C`bBkiy5#uG#Uzd`#236ik=Bv zBnC#Sgr@1msN}}vxm8mjgwR2jZz384y(2*+kwXR%5hF4jt<;)caweeA#!3}zvnV;V z2Y#j0P_L{Y3p%vu6Ol&I5nG$BLjO&@=)wD21gB`i{n1qdE4y+2tpH_)_S67l#KH}H zcO}E}`-5Z1bANF3YMXiw*X1A8z711*1;H}|0Yjmh8d6}0DW#>kk~WWg_tbJQ4Mem$-)DJaxv;9=xEz*aq`)> z#d@^kZ9(E16t~xw#gM3sPWkw4V5T1*evR85WB?Rp5S6>AY!_yI*##guZ~Ew=gM0Af zwFOoxOwT9V9cSMVkkHLk|B$97}nbA%J$OG zg=g2PJP(r8cg*D^;cLADqUwOfQPB_Nn(%J~*KJCmS(@Nu^R;Rd)4>*ZrJB_vbPd4N zSs~Y&WN#4N*lAJ-y3poX`pWP@TUpa0R47d}sRNXqB(e^v9;Sy?>nInOmDWf!RasSk zNpA1285c;LvTxF7v<5A1%!n~_l^3|QPa3HxzCrO!6j#MdTFHQwPVc~?5_^Qm>4tb` z*^2(0Oe|}eJ~^j&QKW?tnFg@Nt1FU4Iy@;4CEWNTx?)#qhId}tkP+0?rr!^x1)xRCs(K~8&?(QAK(v`n2 zEOAWUj$!G}UMyAOS?ph-#~rljvCb>#$_9UeoCajPz68u=(SRdnT z(vC4APX^%u&YvK=EBSv0Sy|F@h%VE39a^ISi~vGP`hBA}(Vrw(=o;mGC6&#^K)Sv# zbXhr6qd~H!)0;h2NLykv-P&`YC*sWqyGKx*KG0W=X5DI06XOvfK8}iM7+)|@m;2bl zf6S&t;>zTWs@SJlp#D9BQ2*ZTqrP?uYd|O8H!bS_&tro6m+TzOKe$scf9vBO^Zzsm z^Y7n2=4+>c3iBVB7W0n{(?772nEs)ig8EzjFsN5(3qn&e4H=#uvzgvZ9wnU-_agOyRE6BvDWkY?Z zpE8Id{^oVarpXGl$fOj4d3zZO=zH2!w198`jZGyDi-@D5FcL78K5Zqc6E0n5+8mHAaTdeg2bIW3W;a;(!^&W zu@V$;%{alm=ED-#d}JU*eji-(xmm%57W9w^V>8iWNhji(&ldoiHP=)SS}d{h5Uz|m zgbsprOYZqt1tCw68tvU0P94C~+M^pgp7yx{n(1b)pZEpyc|svXCol+;lofg4=LFcz+F)oNjfCNlBCSi*46?Y<5MoME%f<+;suqDYtf$~8BT$X`yF3UkV z7i~Pu18_R2}^aSf$cdA$F?JzE>lw-Nt_irl6cY96mixJDS{$|V*(RI5o!k%Va#68>ozC?ec&kK z;XYYVQG{D5CQod7b}vP6FnU1|UK((KRUr+)!ZO5wq1dQk4@U)=C`4kwC`3Ymr-hC* zJWZq>^ZdxWI3B&IJLYJCGxe4`TG#|F?9VNe+9nlRaxu0f6%nl~ry3R*(YnK%@W-NIGaWqRw90rgV6mN&DB<@ashC<4oGW&anFX zm-b&T@HtCq-zU%?XYBj>8hT;6$20rB;W1_3Ed{z~$-d{-+@{qC*hZwLNclmXNDkK~ zP)R`$X<*g~5OE6P!RS6)O^A5pHB1+kgHeTGC~rtkiqbyW2zc#Th7{Ds+U(Ht1$`{R z^}nhSc{M?77QS;`YTpKP2C}5lAT0lBm#L>`hKC`qOl8zumapvbgvLvpc}UHw{dw#l z;EFcCfb~Wl$U@B>SM#TIfbL2z+6W#Wy_sAbsg9g zx*oiU9+r;e$E*imDSB||%zN;=z8-AxJ-{}sb>ZtCrCUl;3SX6MNqtWXCg@QNRWf?#_<4L7PUy ze$3`#bTt|326%ROFlLAbAXr!8uLgz&tYmHEwqOCQ&s#NS#L0Jmee76{C?Bq;elqMK z-=<^vs$(s6jMch{rL9!E?^Y|#@c{RA! zfPyJuz|*w=N*RXl;3{hapor9LxECZ(4*)MjNPus?@#4+cbL07Sx|VYR48~ws5abqD z%=incp5+%{(0}peFm4eVJ7AABjRVaOYlI^s7^x!riokl)Su9Xu>jah~iN1J`tC-*v z*;#~T;VLu%+rpFgF-D#AjCau1h%#iX#bUNXQwDBTQ~C=decXEhlw#A5+c!hmh!L;l zWJt;|I{mrjG}oLt>J$w_+18|L%$ht9MnmhPV%ck@;RbdKzrE`g@|-Yt8NvPCG8)Wf$+LcX8ObhSg-fU3{e0MXD&fIJ}K6TBoF7vc$#LkGPQqK1p_}t_0T? z!f>RR3Yey!Ohy^@UM$5>bh2wc4iKjOlvtqV9>I$QtMGvx?@%b90Gosccd;^<)#>e_ zLybe?vZ8|{nPt`NP#uBRJ8Xku9!5_0KmA_)$+Fv04GT3}WkG{xZ+ew%Yg4g6ydy1{ zE~g6@mP(o~C*x1*P|jXkw%0Q75gKv&YcDvoxJI*sv=>1o@e#;`8zlivsKryo$a`kx z{%ZE+YKbJZ%5d?KHBtIYSB#pXH9c7R95h-qF&Xs5Z?^lz$zjZLj!Lrkxi_iV&ArFz ze^@!{w&WWM3jnd23DapIv%w{B7~E$?i)^Zrh3!609px|ld+-%eIDpUZuZkOiNK4Iz zd-FnyMXKSaR<$`9@E$OQ`xBRtHJuZ}d+&Rv#FM`-%Vn-tN=c;>Zmv?bwl7Y9X2mq6 zN+=e&8TrKGB8b~v9xB3IxVd^7|vhAD)zk9VP9-> zI?bSj%$2YNQXc6H>pN79LK3K%cm$1$302TyehW*`>~JI9w9)EkG88RO{mUrCugG9A z%fez(zyi0{9Jf62Q~f!qZn_q>iy7qfS*3mfW+$P}tP6cIa## zykqtT^S~03Lt2$GM2FKi2|~ijO!AQlv9>>j4K0oK*av_QspAG~P%xBUWbif!tBO7d zTT(BCEvW`!%3Y{P2F?tC4ySE6xtw(4vbfV$Kf(dck#f3389+0Tu zJ)ku%%Q|g770T6fz_>3L3i|!^o{0R1Y-sU}{0fUcFT#w5YJ_w4R(##)B^^folGL89 z@ktjevZDznW7`E=v(*X_0_}>e30rV$bD$lCE;+f%0$><~A1ujJ4AX=KD3XKAJXW6r z{kDKP3}=Ht{NOV!WT7i$G3shq&~6CK`*WfGeO14p-4Js(Ji(=Bxdw=}N7Mkv+SWXl zfA&(Dnk{3$;A2*i5Xma$q~MIp2xkz9kF9j0AYXpT#nb>7D=#0z#S4|W;^N=N6&Ek- zore(Ys(A>pr-OeDJw?*Cc(^4V*6adU0jkdPH3j_y&e%egrfD!iKdwmK#y3TM~ z!t;`Xi(BcX23Qk`mai9-rL9GDkqJYwDzvrz_F06{DA;ATJ9Qf;7?edLWrYQow#23V zz4csL@3abo>|EFingq+ibq^?wJ1EVnYaS{kl@uM^CO5XK#T!42!d5YOQyf=wNskma zfsL)O!zy+(GerkOl)Pxcfi^pHnqkb;t7+MJ+t9KzD@43VS&MrV?IEuIgH*pl!J0aZ zshJm1Uybxk*M_Bpnz7ZArs`WA%Q>s>_iL(J zgQnrqqB*nUQs33to2o^1X7fIp-fxGmE9>YFYpR}Xn0}O|YFWq*n5w6{2K?SkRabt= z#gAK4^}>RIw`ZzarWu;57keJY>fafrs#U#RQ?;nD;L;hGs=hz7HC2n626yezn5th3 z>;9mcJJDQ0EcLLU1X~su`Y?&6_iCDxj-?SyB@Z!(p%vQ813yB3ug!p6>URoc=Gr`i zni0v*Qxs0tT8;UpfSe&e^JDY9&YJCpKIpGs;#&tU8B$1%4#MZ z_F*_5<)x=`hx+FHuaEn_{YF!KgB`&I<}4(^O{AwTN}}n#!t{>GvFR~ac#myWrrgGc z5+(s1Mr|4|f5em>shT1QOQM+|mcnh}!I_$z~0G52Dw)#h2e{;F@Q!~DXp2>+F>6n`Xd7O7_wQUS&{^iU(%y>a? z@WaOv4$MM~B9PrK!0Mb0^05$<9>8^)dcBjJ^iJt3PG4M-ed`bDKB zN0oJHM6B5ahjQi-tTyJf{Uk+Gk&ujF_|#2OIGnOB3x5dyD{Eowt72^CTW=n`_<*f@wKc9B0B4J< zjzwdnAC~g&YT0|nvi7`H{v2D%QvrP$oBMOz-e1Ot`g5Gu zpW|P8b12NIXvZr0@)S3-f=FsCv0G#X(|+382t9_=6i*?O2?X|~SF0p>D{bY0Zg8Aw z#*+N~dat&F(kyFv*JD!4H9JOSW@-g&=G=Ws*czL2lwi) zrw8Av_kf)j)tY(_6#SB2EBNnl%Rd;hoqXdYsdZc5tk4 z(yY>M$W2`kUJ6-^X}N6;$+V$H=C(=v2%mC9gtlyzp$Ha_o3ip!3NrAs*Y#+{{%PXpT1R(=mXlljEna_r+zkAf~t4!)Wb})T-5R>fd&HdtcRC0zCWb z-4gC##V=)6#3~l#3P?v225YxTlqgH11cnB-N3XcL8@opUz8?M`3&fRBR{>E$Sd?G^ zk29|V-CM819(QsTScmm0>~Tg_+*%VPy|%5zzXBAj+k!%kMw#CBGztV2m4QgG{jUHo zKxA`%Db~{KOOlRh;?hQzXs<1ZT)GFWn5FH4909Rr_iixRZVfRYgLs^&)G5lhYP?$IdVERDo}vox zgvn+JZsU>k{qm4S6OohACZWYwuXbg+$#vNfL{Ev+ko&yRTqz{ME`l7J%UwAKPmWr) z9?|?rZDC|(X1kiPY8iiOKYr;|S-TDFR2s=NHCs7jG4VEwpSKA9lTW3=oet_SGf>S9 z4@PHevupa%vQnCABc>v`yy;Gtv2>M)?Yz*L=PFnxx-~kzNn2M_g6wi2!NoR`RFH$Q z2LN{LZ*A0jA8SH30R-j{k1%xVvB|$*6YtaaTo$_ZJW|hfG6Vn9UnG*uSi4)lHsAdO zjT~rfRPQcT+c0HNUscrfeKikfs6OmaUw1y1!K+L%VL941mZLv7mZxD{4rw>3D4j74 z<31F|+Eu*VTYf`W`4*#mvmzAI8vuuK-~s;Z4eY21qG35Wfn;&3<>ZD@)N;QlLp-G2 zOl|#$vbnN8*;AG*vI#~eR#K4PO?9;r+*f7%1jQZT2!BGOt)SQ(&{g9O$TVS5e<883 zAuLR`Q+hT(t(lsU36u04ay*IB^_NAQ`=m30X~&+yu-h?S9^r1I+%cWguiBfga=Ya- zHcH=r8U^$;f{jiYztzmf%?(1DYl~I31a*irB^jod*PBr^Wub41f>UBuK~om?HYKyB z&~j8P!i^zq2fqs{mgql6)ri`0ZV6kA^DlxSei$l#Nc)e+>auh*IN2Y$z(vt4T$XEK zsGD))3_F-QA{;GsC(|L%#4ses8m7B_=+nEsjlgFMAq$^_(k03l3zh7WwYRF&NLyT| zSV~bz`e8MP9#WPfFsv!`*|NAgxuyEk1SW%oU}D)88Y;~0&+uE+76)2BNzF`@S?*xL z))j~HL-+p*#zSvmFwEVBf^kv*EXH8d4nA<=SZCc<*09IoXVr`k~oJhRFXOQ zBYm^MeKX-Q@XJ2@A2#}TQMfn&Y(hX2JJp#Na+VcuRNe%61XYGp&iF}gj_bSc_j0Ua z#l!U1#{K~MC5~eOGoU;SPOISozRBo4AkqFERIACQ^rIEt+Ag;(vlrG}^smb~uh7nL zqL86Js1UABZM#$})piJ0V3}a0f&h`I5bge=EGo9vJd~7pzu-hJ+1}C7?)|H|T=qIZ zzjw6Gr5xcdhp8k5&+Hu?$IZBE*OIF@$;4peEQb@To=h~XXqDoVAk<$2Lqw|HCmMTZgf-ApfQ;(m6ae1VuzXX-k<(pvZRU6vg%VKp zBkNmLK3qSd{FogR@{)0|doEANKOTq zSeF-V&TE}=xB~UePTAnz9|w1AGqwdkn8AA9tmhUMn|;RZD!#Q{-586VIUjLbaRRFj z=;*M>f>ImnayHY8~xkmn?UT@^dU%)8Y&H1?^+%>_`uS zA7tjO66WFCJ4~^#I!{D~eWQ$vSiy;Uhzu)6F{oi%xO=O6j5rs*U=#AQlq;B29u!9> zgskA`g-G*Hbb!AYx3a_0VgDr|SzceSe7zY)$hEhj_!ApuMwJ*d^RSqCSBIA+yMQ_4 z!?yITYxk~rHoS~*zd`*4x=K;q6vbmQFDDoB?>pln#9D1wV#e}=k&n>{kt`e2sKf;K z2KKMEj!2C%;(A(Bo5FmNCCr z&S)|0kYr3F8}|L2Bg_p!prKw!!QqkQY@u7^;3FMa4~Fs&t%7p3Wv;8KfXqhE$Z zAWK^i;SL4l@^pnFjz!B!m0l62@L@{d&WKTdfZ_Xd&PQ$&M583`uj~v68Z{{(#C2(= zy!BiV*SH2OzPeqb3fhVQi}=RkNkuhdM^bfNPg}jw=J6JyJr+bmIH5W|!et#0+bl2H z$;n7wF5(7=oXG{z7;9_Tdfo!s);mEgCcc3-!YfHAbW5<3(LdPhhK5=Z*WfWB(K0qR z*%)R;2t_I`vS0Boz7gCk=!4UHnRwEo5Pkr%g?D*`S+kf$8%S-2+x3gD4 z6^r4k#qwXAN;o?(6dvG4rOI%#%IA4Z6e1_CI4O(rmAc_LgVUg6mFQTtqEjfL_5cyj zUyc^BR*c5Py3B&<0Fmv*Zd`LNaJZ=+z{&EkOdcgPAMwYNiID4x*tNQCvriMB)2%jn zwXtjuGnO`<&x-j(kmi@`PoC!?P@Y`~V(|)~^6V12i zCFS-ICpHQelU}9v_?lGRy%3{29$+!r-5FJ5Hu4>rpF;;V?FhQg`DiV5elN!O&kyhz zFI-hsSfD=YpOD!S?V7Wqb3cO3MF8&Dgr%$gc#WmpihE!usrt)<99Ex^@Rr* zTYkvixL^+ds9}`V?LkOGMv6E+i1)*H_`v=qOItqT+ffV88F)w)V5N@~RA*D`zZ zCYSztd5NH`IdxA8u|Btb)zuw(L}F_Q9#=Z|i_Lmb-XKxdpb<9=v_d#EDf_6nO3~5o zHIaj|C1ODyA@Hd$e;K2b6W`-t2=s2RzQCV3R!#yYTsbj)EBUs|zRmJ&fh#1e?)Gy# z`H>VG=XUG2NE5h}q7z zFiVD+B$YJk>pJD%_*`$t^?nnX)NBaq3ywTb2-IUtTQscA5R*TKIm`AAK*AlKgph@g4Ff#&d%$$_va9=_F*`p<8 z87j1+ENMVaZzWGx&MkAs7((=g6d~%ea{u1lc((S|BwuE|ZPP*xT+40tg7V2isMNI%>lwAYZqE~7Q7*XNzT z3~L1M1L6xfV|DRC0I(+m%KMr^M z1*u@qd$lg8xj3NVe{YzW(R4)B$bt(pMiyf&CyN*38Ck^Vu;~wseat*NF`B2fL8qiO zBJ4nCgu7v_;Wt6AHmb}=Z$BJ)&Wx$SeE5|-A4G|44F=FKd7%}AiQjBVQGQFHN+vkW z-pB%*V?pbl+(&9=)iVc5oiWdRBW$Tk3C%8Mr8O z11PK&+UEai{P7OD)wNB>>Ey8Tb1GOgrDOc8KeHj&qR#2~Oh^SUCbY0~TZ3oAjl8L0 zwAJbG;Qf*nC@+(8zPJ4zg`Sg;2UDffCPRXXc`jKbbbtJyX5(hj60I~{(RMAYyU!DAnmS^ z_RWHd0EcEegB1gV`kdc9Cf0ee@*^u>sj5qRTALP`Y}m`3aa4cd#mk`RizX$~+pK1g zu*|!467y&s8yqpx@nq|tK+7mV^E6nc#uBfaFH!?H%kb(=`=c|Vrs~`5&JCKEmHwQm zrY(Df>y&eL($uN4k?cyv>I<34DUMFEQB7%wJni#UO|jz=6(aS;c6M_ND~dXvN(|0g zu@Aupcvq^ke+8)!Q48GJ!hS}4BRt#)f`oeR5yR>p6SlCQOVP%rNw0IEul_U0 zr{66+)sOONX2W;N2GTm7ROYQ}D3}Zq?B+g-E>N|yKTy;%cPGqYo-eTKQSPvO*@SWLyDmYfRqRr$kb( zDiU**?~sTv4ps74dHsqeI{x7B5A(sIDRJChXWyX@uukar2f!MRFG zZ_~r|uhjc4(@V=C+-=UmkQ&YEOLP}aRh3IN)B9&d1E>^BKS4^AEe-lk_2pn9M~Z)B zFHsBBh4x(+z`{i70A{tK0;&ABeZ0k!OhuY2c$5E5%ySYVzMy*S&onUYN`}d>KKM*;a#gMmJ@Xk#fAD%GP`$17-D;x-P`!Pp>E@-& z)odu1`E~55Tg(s`^`7xKIbT*mUU9%8IFuoh?s>fY#s2X5MVLBaK-|NMqd9g7W4y+N z6Le%G>e7gt!^McVid?}pi0dPM&ykVB!Qy=m6s*vtICb@|)33f@pV$xQ0mdnQ%S4kW zHbp)xe_~jrac$aWZ+jCkqbWB8RAM0qwd%7wT7Bl}s>(uNVCgniNDIv?X>hLuatB zsqKCU&nq_Qr7W0DrYCp>;zohEBYULz**mhI1uZB)u2FAjL8SqzU8D-%12X8z$pcZ! z&7vb45Cb4%N02&_HOp-@;+dllIt)dD0qC9^bK6Ryr!-!#e72<6Aap-ff@sA$p61h? z&E-C61PzTcBVe|=Zw*WcuXExJ)A5fyC@2vdBsOG$L^hcnYkKbZjNw}HqS6f^Da}p) zuaL0VU1`8C+P{pT4$6NJ;6_?qef7<{x;|c|aYDP?8doOd&$ZgahQrn@>gMt} zN1DT07In;a20Qz`m)`>K%{=Ta>KZq0E-!izapP;uzw1Z73*0!yquAPqr+>#rO8@Tt zyT7x{%@K??9+H0B`Zdle-@V2;geHfZ;aJl-o6C!jv<3VV%Wwp1H)aDZ+PvB_9MLZ3 z;mJ4H)szjvE;3tg`IxqaRNh0$K1;c*Wk4SC`M4JzX>JV}kPe?dY~s_k49Mp4k_QQg zUHWWgK+3fY$ir?<;YCN9!&(`TJ1y6dW)FgG{f=D?**7L#+7|WUG^enZ0ohz$`XJ)Q zuBV4zX#U?yPw(NG0a@e5&E-oTMBMncx5xs=xFd4o4R-YrF-vzSy795plZclo$QV&c zcw>jjv;2s9 zvRUm=W20bTM9q`>^+GYOP==(*Y%9^E0#W4)vrOx$1!`Enp%R*6H(-&Z+T=r^bcymF zO<;Rf1$Tb#`0O$MlGf&wAGMw}JIG?659vpkJr6VKx)T=(hhVKWDsC<;ZV{B(@IaXS zswzJwV)8(58CE8~^=k*9+WSPq75G2U8@CAl6>n_uJ}8NSBLZhIwGXx4svhR41>l(X z0|4^=29Tx_#b#%?s zCVUIecIr~@yuXMTcr12$9|<|$npZXjhWx1!H1=};5H+>l5Y~h%5Vkh?k^+ags~5?7 zwNa|aN{t$o z9*%^=4ek=o;4(MP2{)4n*9IaIj=d=Lx(J7jh3LX8pA-)tl$Kv@(XzX;WuhPoH-{pI zHJ)GFeWP|&uDnLW^4$Ydbez8#(|Bv3zgfmRs~X<%y5U0>$#&cFUF40>pw$i^0wf3W zpbp`6k#GzGC~W?a^cvi09zd87wy?xVw60m>NbA&wYdTlr5Jh*K zItLWp6%R+z9h1jEG>e&ksyg?1t*ZV`ysd2_6w z(q>KwX2x54nE1e!IdOV!tS9=wBrOynl6446VS*y&Quiczd&-x_tc-;s`aB+rzXE9_ z%qcr@0;v%rJobw96WXzc49~|xz|BT0x{}tGLtAZ>Qk1U(`07gr zk>$8Bo;Cv#5_8Q0LlbpWznH)_l!*K9uy#~ewv%luTKn(xSTn`CY~vA#Sbk8C(M{MW znWJ%RpX53ZD@TH9N!%EAFx^5W>s!P>!~X;=n&szVRU3%W>MbKpxvcFV$U4B5a4v@K z+aglKQ~EX=D92-ovku4sRIeowUfiVurw|9=V2L7J>c+ zG}Gn~FxMMwcr5rYwa}l~n3;S&pg45Yf+`+_j_B0-mcLncvh|#7y&CayvT3&_-!@6# zoNVlBfvm0|n=Xg#t(jAkQ(=7=FxQ%p3mEyi>=(IlegL`k6x0}Kp(?A0CSHf(y3n%; zu^5wgVa$-|@zcrxDsjk%wG(jBlD)&l-*~o6h0OPV5Olkz#bR?(K45U1&1v(dTU}J?Y%1&NeF#K-roF-1@Q@?Qr)?- z=gq;3vV%&AP+U`Yed6-4q{0|o|Clf zWVr4ISn0}ep%VZfe1FHkHED0{@Aw}(3b6<#*EDWce%j1uu6!wb`bh8D77+7{LqcpT zy!je+V3iGT=peUEebZdpfQ**l7Xrb~K83~Z$`)8UlYmB;#3d^jc&UTl%xK^zUHmTU z!4!fm`gT5%x+%)Pbrllbg3en{(!NZAP0VVcQH*=z2!=NvKK$mw_;iwSXfq6;F*hYK z?ZL-zp9gSdcm6921l3*?_1mskUee;pTSQia6}vLqK7&CUiHidExNTQ33W_7smbY5v zj+zJaMS06U8qpp*TO}S)LlaxZ5khfP2OtM3E}eN23$|~x?tiI#qq@)7w7)q>3n|P4 zq`AD+xU(!=fvpR!EgJ^ZU$i#1#5QOiMv~C!troyJ+c;`z_e>nL+F=r}{IEKIl)V@D zH*Xf2p4wJj9nC;YYrV9#aIj;aSlurvHX$fqFNae57}$9Q65EYFZ6eLdM!*uAw5atP z1?SxK&Q9*gU0G|Dz1}?q_e!{9+l{?A8e15oB!{n@A5mUoZ0_G(4*T^@>|3q}>&i*& zk3tvrF0kwD4xibf7xo@<%iacdgHWJ-gEK~$=~PPu1mOm2lc8-Z5 z+rohtKm^{=$@=re^6vwLMj%o?^HY2BdCp%IdZzWrrui8e=xLq3f!5pB+q*N9T4QbY zE~1`yPOsVg+Y@jVjvhO>5}ztaHLD@3u4W~xpDh^ zmh3Mk@?DlTx&O}%E<2|+1k9D6Xb3o47t$2tBoxsYebZC>q=VPDw!~BWfmXP0;lSWs z4ZXmFEKQ`>LL-ZOjnqO~^;C;m?3RKcO5V8Kq8Ha~vvj-Oq8Qf^!zq8hOEVbGHh*9v zX{Q+BFMb-Ja#(^9vit{8$xnfTP75wr)G=&4U z(Y(A$t}DF69KrSaN{jeIjojk|Ef*Z-oZ@-$Qy5FJ8-VnN!C)rIwpH6o(_Gab+e2ig zyjkEHTtoa`{YW@B5WiRdJbUQ?*m0Qa1UK+Jws_+FR0Vt}dv`^r+*Iwub(Ke& zIHgjVMIm#hZOkAJ5q^E!)ys++3GDaa>#~EHc3rtc7t5FU{xoMau0fl>ocLl?GvIud z9}4upSqCp+;5`u$86Xn|Wc3^BYnQwh^;`V6douMK(!bV8U*5C|-R~)yZTxg%&I+pA z4t;V&jOtf$aLyRn-xJ6V{*3O|lMO;Q?M z#q5ZmZf#u+ssz77Qg03`qKWz|;nTG_3|8Dd z&SZzBd}#Bj+Q`y&9`YUS*>Wv7UfX(G%@Y&fRfwy>wh+N}OD7c*d^SrAOsNs$ymV?> zqpS8ZHrU`qJ_6tEc3p)~Y2K>Kb!WD-x7dv!_B;yWRyAC=I@@)5u2qQj@x*R;oJF!y zwX43WzxSBoGbSl4;Rxc%i`{SgUBB5?DtI|Z6t!4+k~K@bi1Ku0ul+9dLgMdY_=ZDg zOa(!PEo00Pz6m~KFmV0yrUwOgZjGi9?%c*mVW6!t7-kxGaN)6S)A&ENP2=AqamhA5 znA!8xL$;-#j4au~9>m@ef@vf*=DJkUyV8HNK7YoA!-B9Qm>rav+EV*Qev;DCCt2ZPFE z#xZ=B-!MFcnh%~UzhoB_OyGllGlJ4dG7Wzw&(8+zT*E8NFX*A+^?8GGDa)yVj47o) znOz`&)bw@92krveNZM1|ESLYZkN3e9yDBfFoOu1_Hw)fTniQA<>tZIo$7dk<6uPBY zkh-;RTXv#<(Q`VnWJ-*)0OQyjk;m0c$Qw^7xD14RMmwtPpcnF67;K0Z#=dPh>Dk!l zB?_8OXsH5N_qgJTsDD`1?w0@TSmZ}5Q^%1SMJ$eKymz(AJT~f?p=Kcs%THxs`7>MI zWo_w!($FCR3%CFz<0H+Bz|XK1e%c+O?_OeBQl?*P(W=!qME7EP5Qn2>4w$$Y+K7); zvD1^%Frns3AA=x3%V$~23HUaukc6kgmeP887)?HyiF$5ekn znyQS)M*Yf#JxkH|kRi zY2yW|vGKya&3M6kxfBPxDGhe>&QQc>BP@U19$sH)({W&w_Z-gf271q?4>Y_q!`mMp z-dWAkHdIg=ok*!eZb8os13;x3=G~cMQY;-Z17Sx4Q5GOYyBuX@OjdqZ!_cIZy=g9r zz9*eDc-(NeIcac$`6K3inU$qq0gyp1nCclCN^X4y3o6mz>1=pOORK?&O)>`tHmLLR zGmcG~!tQe}sTwPUXg=V$@_V|kuQMZ9lzu~&uENS_a)N$z<{b0oVF*RTEC8js@^LP^ zBDdYdi*suHE%5`LyVfrMO}&k%IBc%>|etHLp7*IY~Kww5Dn z{fHmX&D@8<#AvI){I8Q?e)U9s*dE6DW5bB*R~?7(pg)e!bke+AbJdDNMW8L8XB6m_ z-;`fvqtT-fsQij~T4@Mv%m@<_x2V{LJFyqSD`XfIQh+@r9lOX^kM68s=F1;wwD;n@ zAK814hPUAVBJ`O^U*4nJs#CMtFEPtL=PDbOv64H`aMPt-%mzoy1xox>h@Y&K0hU6! zo@=O*2*HeIOWYF^Q$Tk;$)}UrShnOv*GkT;uQ$=T(KEDuYAJmD>_DB1^*KDh z1u!DD8o+T%x;!re?2!Tla6eT5BLFtfoLHoBP!Ab8LoJATzCri&)#W{On3u+?^FpUj z%aVUEV*nkwD6j4UwPi}cWU{{FHOrXXfESak;Jf9+6Ppe@>KUKMv)bkBHL2pt(gAnl+9K~qSErNm5i`495O8uRRIWP0%Ib_4E-1_vFKIYBJ95Iv&Q=gpo5NdJ?mDQNeAsd5X2s8M{=*PzLuLA5Oel#zNe)LinJL1lZ3#?U* zhnaboV>M&&@VH4d+S|{oma>$oLHjEA6Oulpca`*EhXXq3=6&kB4D-$LHOtvzKz%km z6k3~hJs_jyb7(K+iPgu@}r^eVbQvpNNZg8NbBtw0j#M0Y;{_5JX%gSTnLpl zw!?%@3F8vvRXNRboKs*DKPqi|L-7wK|bl89YWB>)$rU6NdFD^BoKNE%%Q zu^;Yf`fl{7*~E0zVf0b0 zP^uqJB5QPHTLK#80~Um9yuisbZZ5E>5$w_=-IPNaBbLu`v=mi7ylN~r9WWNUG-b(m zQ&dvyBl2HTR6VJtK~zluXOD>E{9a&MmCY!K@t; z3Q9eODArn4KS@EUnR%6-j4P;~D=3=t;<==tdaj`K#u#@ky;i0nDyUYL3$^}74Tal5 zq(&+3x<#^9>;_>PT=4#MsEoTnz^9C2a{1uN0`~IX9mnS>y_^)NG7k8Q%722_kpEQd zB9AepRJcV4*6ZL3ulwnw@MaZ&P#mfNg!Q)B@FQ~do5Ijm^Xd%iV~*#@Cckrr27LJO zslVWfs32BQ&2Xpdo+1%A=8_u*NZM4Y#DqwNm;6v_gj6b6nwkXfrY7as(kEb8T1uVM zMsSzonzP}rKo{DB$=NTbww+hX7m64#1y6I?f()Gb;qzPJ7gCzL@!|9(8(>zx-f1Y5 z&(yj6cfQSP_en^KnQv#PWM)sTXHV1ohjmldmnoQ0?vBT23=3ff3dmQSW1Hz*qe-w| z@<749r49QXe|osEUsvYqlAA*bYLfxmugTEvc}pVs>i?>#9oc@C$wNlIU8n`~Q#!_I zZGW#VJ(q(%FfD&YEO4>dIV-bB5Qe*`P&d=%HE{ z`>5EZ=_2vl@VH{Xt*@M$XN0t^v(X&I@tlOWS`cq|+YrXUGaEo6xwENiL*QImYJeLB z){>7pC8rKZ1Wp`{E&-2#N+8YHP4e3&z#>t??yWX87%&#|TyrG1=4WPEeBI`P%NvYu za8&IbF(%_I!OX&Vm(^!kaAffB6DH=wbkfoFZC2?NQnWlxVjftB5m5b(h{fJXo)D&; zy-IDf8i6Hx_08=j#3(D-hlU%n3Gt7sW}ac_k|yz7p7YB5dM8cJ4slA1%t+popXj0^67j)$J2aJyLPf{WU5+^LIl1R zMQ2!?X!9OX76B=mXKn<-CR&ftzH&m_9tCXqp)>yOMtnc45eRpV{^*lg7v-h88L?qV zX3epwhjHW#4LL(c&d`zbA-z2x_(b4MISt22I2gic;J_KJK~}oN{ij!8oq2;OgAO$-Ptoji^FmqqJo!J zKQ?+0k2Sf$fxtnfXQphzjyu7BIBuf*@Ecw4VP^J`fE{9I6h_NlZEQ^60Ud`)-FFP# z0z8D@7fFo%>!}KaX!%XrSO8E?$4TO%zPHqp!+grpI%uTlOl$A^= z*g6~&KR!xX_%^n1!a9Sle9)WGgX`&yN4NOLcCM@wLCun*CZ_7mi{)Q5c3ecZjd+~u z`nhgHKg$ax!q-2JF(KA<+;Z7%@XRb@VrQeC-HRJ9$9n`w)=6Xb^;k8HAwheupU1@l zY3q%jh+|^Y$p+54V>cs@!OR~TArWESoV*uai@mm9n+>!W4K=|toL@J)p^f^AhUs4> zZK$1jU<9tX@JGa49!=Zqd}@tN!fXI~*nAo|Dq1#nZ4tl0Cfm(a1DOxL)lg)S5ksb- z^(HWiwPPcUZ!3+UCAOGx1Y4jNZ)p%UbuyHSnPySW9GC6r6jsNLArJtfn>S(Fuwm$? z(_r;*jb$&Ry<2Z8ef>#1h0iLLju5%U8v&PoGSrPe)RGTi#_g40Xn0TxE$4;?&2WWu z7DJte+VUR!t0DsFzhH)@;^2a2)kCfWWPsNhKz;K7LGBA5YH`X(I<)=0U~E7y|JTgGdk+ z4Xzr@jcY4$ct<^4RMTR_G2H? zX|rg(^>c%E1Sif-DC1Th+We5C~hHpj*JBVhv*eX}_+IKkkT888YV4#+r{fju6yDM=faLX26UN zc#W9D!%&BZ$SXZV-UMF3--MOqMx`OZ#~r6U@)qGvM6z-$sJ@n82}&&!dQd+x)_$z% zp*1}u!x}S5YkDY2*P0$W7lSN&`atNR&rdgVyv%Mid2VV055XUjC$uqoLXV7|kbKvv zv9R=KC%QquFzyB^W?@#t-Jq5ir%*7uKplII>FngQeG0ana5Wd&{R-3bDG2R*5Sq>P z)riFeGn1Vd8ABX=fu^Jv(Nl!w0NG(IeG3g^aU%gx$ElF#jAJ&7drUWq8#l^tP_W2P zX8+D_B1NDD?U~RXeT%&DEqFHh7E=nUly_Q@6JcK;yBsFMzR+A&^!=2bz3Y&p7~L@ywc0G$ouI=#@#y<1{D|mR(6&l2wF3E* zD2ama(Bn$s1%CVz_<_Xb(Q9!yzAR@AF8^J#{l5 zkqXPb!VIWgg;PjYDaGBs3Zu+%wVA03vlU{|ZM~&@K1?dLAfy*)QU2KH-(bpZy*q9G zZN2gdb0LGS8NM_bw;o`sVYp*RfDf69+S$89pCIFQo&6I-L(7pyqBPMdYGx}Bj)swe zg}_9r5MFu;aX-2RU<6SbuC4)-0P9=>G{G0IRqO5Bex`i30p7gL0bYkrsz_o&i*0PF zF@IDDjiEo61XYBoHz5OPh&&3sF$<{PgovJ$rq2o*V&ZS0wkb^g76jKZ)3!^!ejQMn z>7tZ`Y|+A5P+}pFTI@_u;>8qN^FXw)DG`%$jd5;G+6Mi>-;0YlEizT3Xt;7|>k1l) zE0;A_r0Grpc=9-xin>Sb^r=^x!d?d9nD+IC?e&^c=MUJpjRfTiF zsAUoi9W!|{qJot?(IDlImiN6z=D=7MkuS%5mW_w$vusr6Pr751<{8jB(#*`YIbCd` z+j~vn6Fmr}bPXn_=MLaeu)W*6%wj~^x1+fOL{Q^cY55b%!GVwd?09(%(~Y{Z6&wX` zVgdJhJwNe|Pf$E1LomfEs`9*uKjF~v$nM}`3(k3I7tsipmVxD^#bR zVrOG8ouue1K@`oT>=sy%m7Kf;vovh@%pjbWqQ^AHcd|o&;>c!l)`8z?&6SCLm=@zB z4v!ehrs@zcV*!gJ69q1Bun}-shRL}ZEbg>sH>Xe~DP*KT0RqapoG__+MZGIfpS5_C zd96^lB8*%Kb)nB8cvuXsQ%+%eXOpxTepjIV%x z9DZrhgTfz;&qOFE*q%7jWH!2{C)ky-R6GHs$y>BPSe=%&$(#5xY7sF6W_r!wh;hIL zRiBd#PA5oykQa}&jA=DGMXJXmT0L#c+tTv^#BEzcE924I98PHsrM4YCwFG* zwWA4cY^L>BvBV9>wkdIwakff*!N8smlVIq~)IZT3W9CnQls^=NG|`0y#6q93xq2

    E*6k_4BoM6IOQ|XK zf0H^;kuJM#X~JBqf#|0hg|#=aEzZK30Bmf_n%t^+;ce_kvCgWrta15*FveK5VPodz zZ0+HkuRWaWu03Q618`Zb+iCOS%(ZIbpV>+#{%rv#AE2e;Lxm+apWUiinX`o#aSFUr zN#SU&HRtMa;jv>?Msqe1t5WS)Z$$OM9E;5~^{q*JO8|L1M1jj3WIeQbr*Wog6*?pa z9WR`0@mVNz*t;j2-%#gavyjAm&yQ>%gzfN!i!NvSIlp0`CB_4BmhoyTaF_yk=hwYH zBrkB7t7AA5!!p(EH(Zh?oQzAI*$u$Q&jqH^!eNm;&NxBJQ=D9pi@h#$0~!DoIagn8 z%+*YA8M@Q>F7r5(o4aWy1{PzzrsOaX9g96MYA?I%-d~{|ZT;L}f#D z)D`d$n}bByV+3gkcXqRCM2&hKxLQA{ETUcp*{S5cvv{v-dW38Zc+Tq~8nOq19cX?k z$twD^O0xPvDe6&>RjS=o!?I52D@+#Bc0t6P6-3;35hdc(PB#ppK?9|u<0XL;rMIb8 zTUmC%>9VTJ_rf-gtM!6BgEy2VW~}h1+g24qQVlC>-z4WKEL$FWM=C}5ic=rHLkWY|-*eShT#=Evn2YgW#io$kudH_raQ? z$W#hNDT26#R;fyH0iz})nKlzEXfQKcZ|1F9zgJp71xO~utkM@(2b)uxeq=KptPr%# z(Jg$PxaMa=(A-+=VGckw?RH3;XbGUw%Vn@G`iTKjT@MCG=7D{Juy)#JM+LcB*};d_ zr)W^DP*$(voDzZMmqt3{n=(Zow3UWmWhzN9T^svN3LA{Ls%4ou zY779oZ$|~GdNo59ZO=^9aA`Axv;{+4)6?;-V-G+K%rTl?xyO*m>#8e|cfFr>fPjjw zkT=qmfwPUpI<1j5D*9^T1P%!7DjIDQ!I(GL_6BTdQBm&9u7M0JmvcuMEM31vS`#s% zNxLTMf`TS*wwAw_LcqCmg;2FTY{~vw{(dcgpBy+bg!IdO*u`MX-AlEI=nxvOl6MS0 z!iw%CNhwAJvvQ$DqhP44l;NQ2N`@mS7_^QQOegbnqW95lnKeKs72)W zl2Hj0#%pQjB~lIwid*Twl*39zEWt5ZOEa&fncKSzRix(3MGf;OYiVYA>1%1`wKVg; z^EC5XK4~qVw6+`F+OC+s55|$pC#{u=t(A(|Ed5%kSe!VDJLx`rO2yWa#%oFAwWRTV z+0SKcKFTV99{BxS){@3+Nn>`c@lE&G&t+w5`$4kWan0bY8JsnPvu1Em*AMIlVh5_1 zoxBB?7oAZI(%OQH3XunT1F@B=d~KHUFlH&gzOJvT-Kl0V%)PGLRW0Vqs@+TzIb*9} z4zXlcCvj<3OofG=veDKVL!CXInIY*cfN5{APl4i!8eL|X+6B5+Al($_YTrU$qTW&G z1+6?McGk8F)HeIGw)>xIw^%Qr3v9-F;I_T+cXpoLcJ+KoC+p~JXho~mq`Icr1i_>| zu&v)iD8pT`y??s~SH;8a)$*|hmlYaE)4SE-`e0t%EyB%ID(pqgJF?t1uI@uB!)dCy z9r)IhM{9jVZUxTkR;-cGT6uphmD^^%K4ND65v-3mn*D?!ZK~T{144#P|xalyRF80UUp_22Rq)lH#P41~U8 zwcVkY^FD&gTgFGxU7rtXx52&d!yl@84N&Tz52dOXXBVc{l9@oj2v4dW&nniHO{^Y2 z%8LL?F9M`&JXRSySb`3lAn0_Wp70!N$*F2=YRMgSk4VMHbGAu#XTb-=jK#@AJBLpP z+=VJ+EkO`UXz_50k=NYoHTQbWyYW+*FC}57(pY9#`aN=jV95&yg~t z!gf>$0c&0rd(JtlD$dghOT~Y`qV7F&zDKIT7SZ+;HPsJRB7Y{#lMqCTi5HduN1054qH~6d4Z?OOEbxwKsfy(TAyEto-apYyC-9a~5hZvIY4T zo}MM;LdukbC18j0LcKTNuh`f_*%}Td)RC0Eie=jytNxy!+rQ_Y?7ThaK5O6pi!WPV z%Fmu3sEz(8uliSxK91f#qNsXUlaq;L%T}lQGOb#fGI|lLx`e;V_sV}z8&HLCqR$^_iK?WtzIHv*1_b>^r+vQ|XojOh z9OgI%-ldqi8tA~K%@ybu-%nS?6{nAEH-%yX$<|fy4!dFKVVfG5pEX1eDmGp*c_`RJ zhsKI(-T9+A5ovC9B5j4P10iUjW1ga94D6&Tn6F>#u4e0;?TmPU(dK-xhH4;^zSoez zqqEF6@G&!QX>v$7PS`!!lhi!xdPA>YfOsK4P#UxcN*hy*z>%{BG(e`cF&0xU z)u4Qb4GmgLVWA)D?MTCn5uYbPM1A{J%LEB;x95xy1CfP1ze%s8+gQgC%WgHN)>{zs zr!0Z8ng^UuMM8Dk~5$$a;YXd)` zs$i4f0l$J7`XjM*UVcEdaBbm_4u7xHK;c(;R&I;tob&?iNhL!UlX5Y-9tb-V@ICq_ z5XPQ3Y51(X?+H3`71*u0 zsyOwxcno-iHlBB0h8Huo*~_FDCVUybgpJ4=zDC#QZS>5_6QfbMaMZ)~!}vhWKn|9Yr?zg^E5RqK2BU;bO{ z^m7hq>zz?g|1m`Wqi2Fkd$>lxxY2*YG4oh3Q?Ozzxjp^z-GWqlZ4-o%dYgw!bS&YN zHs9jgX4_2g9#Lf7VtK(uJpL#tI%eNC@qxZ$6D=npOI#(Dm?GyN7zbjT>n@MQly<+| zr%*>N&w7tDg320dc+OZ&ZzN=WHgAxH>YNG!qzP8pNJes_Mq-Fz8hMMEOUtnhLXSYl z45jV9`2hQV9gX34lYU7l}4HUND4u`s^Y)lTaVZk=Fzd|(Beo?0Lt{~>}|B@o@+LmlDkCP1D~PhzHtqvgRKhiSa)WbLyP+2 zVtJlZ7)E14vFe>F^)0s0%?3TxLQ+c;I^-plQ1SuY;GzaZ2 zj*g<2`Lfcfyx5K@*$&+_{meN0Porr|z52GS@FBA2YY;Ueudoios2e!}HJHHTaFY{R4Y-k_8#rFH|O;8#B3 z7&SL56D94cfef{K1VdxCISdU)Dz>gUXlx3e$)Z_MNMkeYplezo^#HSUca$dDz z&prPZVvua#S&FXZ&)U$=2}8Rw&j-=@L;{>r z2pCCh)Y~MTB5PJinq;hkR|fk~U-0<3oTpI`YL%IB1THiwDV?7(&CSc8B=}r7_(}e& zso~B%KU=MjNd)#Tdy>mx-=xDrDZE1fKOF@${0}G&-pifg;3T1X)Z+ ziTKPH1(IUW(T85p;}~n2MPvrmVBDDv1I8aX6U=MGsHat){cp;vEY{O*;&~XN$i%|6 z3KSW=VL~*tZ^nVMC_LaD-qY_DMA|7MqFsUqJ^(lXjkwwTG8qr#W;5?prYAtvA}H@+ zs2H22W5iCqMiNYAlA+0;`P+!-pkB_P4A`k>d0fxwvSOUCPZ-Fm?5P-9-c;aY!C#MwS^vkU_c(?Ka6}K3gM`9}Z`!Y%z0(bWMb5Eo} zMB!w9DaLH;;+;|^SD+uQ>)FNm^(GQMJQDj7LKz0+v5eVO7X+Z%TI^-ia&pv@MrA+L z5pL3izDz)PZX+toUU*_KMo+BPRqFwQSV$tKroegmIr&57%|aT=P@(;ZAi}sX{w`eq z%O*%-2_CcTIP8HO74xl0opENXcee{;phIo*YJGXD+O~0*cj>F2q>i@%BY9X>U#g&_ zo-P0005}(|f2MgOyhUdnH^8VF+yE#fpMh@G{vBDAlCL=fra<`tV8AU8AqHGnRCo+S z9ue-ta~$Ws&vdzuh_l6eia%q-bueb@9}2TwW6ZYYr^RgZ!TL(0A}}@9Bjv`f6+aJ^ ziNvH_D`%$8|77?C)LXIJhFJH^Gg4$%urqUX1mv@op5jDGn;TVD%b}E;U^(vpyrLxw zn%!^Z@OX)->o&PN2zi!*ia zBzbv)(7Z$hlO7u272-C#{Or%|O}%X`jOzX-EU$3_|wyyk*UHRG8mFw-wdcQJ!dCo9vWy0ShJ|v>H``TtaukB^q z5x%yTEeNfxTMI;MgGnJwZlvME;5H|tMnTOutH!=)a(5lM(Ah#+h)v>f7`fN z|BQc|#jNpdcyv~u|F;^{m$UK%ntT{;$jUeCOL?pD*Sqq@^H_#X$uEOMpG+jeSt7Ml zdrSytu$8sBUYi!NXEvFlOUgL%r+q1MNqEYfDiU>dKHr1#Y6#AHtNMZb*6#NV++O)+ zT~x%TtL3fx1Ut`KfXlVzsIaTv@LQ{m0bZ-WZtblrZ_%Iwzc8GBNNgC_Dc>L_7xd29 zyl5FtnI!-dclWi$t3k}`8*#ipCYa<$R+bvj*ec;7bKDq?0xm3-ZNp3GF~`j=A!ZSY zxU#+`pgqE)hV>6@5L?SPY7p7*O|1b}r;f5Ma5)q;x@w5!J5@C70VQ>z;vYkU#sYui z!Il4rq2vc6aYV>#7DyVt9tp#jrho~vZN)~Vws?LPA{Zyxx8jKfMnjMe%s&!} z^dp_(-X3s!Cq16pRbd$G!V$G3pU_B;&$PL>Is$Fw$0A-+H$84d zKw~$f2CsAkpblfiYwVRbmm{CU1-BSNe#dv>hyzcki<+Lmu^vT*9ISsoL>Bl^G zg1mmM{7do`@qS*uNQoT7cKewRsToT+*;OAr?{8i#uQ5kC=ttLO){}ZDKO>3=lBd?v z6ldy4--0;M#K%BlC?k0wqe0SlPu(|QT}#P#^AvQPi!a0fOfnU z%jox>YWhUv0oz$K`9ncfn~|zBL|cHy)Op6z`Z_poAIT0`-wu=ui{Tq^)5Jh3IvtB4s{iE%NLkfG%=6N+Mzko6}B84?{u zvHXaMpkyJ*U6kQN6TeFjQT(K?lfYf~rsext;OMI*?88^}8t*_6M8|GnYZ&}HqQ(_T zAPPxr8Ex~i#K2~wkTUZk%*aOlm-CnzV?Obu-Pdc3@|K;w1@4G7uy)77A3rwP;>YgT z1g-#%9nYw_Ts(O2&m8h!Ri(dgyZiblzQzPB{` z3^TWl9qYt+3I+1=pEW?!CemtT*O`kO50}DD^VqFD?H~~5mlkSsq{T`za%v0NE*jfH zA0LSx$bz!-+j_g0k}K-y&g~%_l&X>c>@=*1wh-m2=fNdhAHBQ!4ns?dg|1cv9*i{J zZ4H$nFL2bYK_zX}Fnt!w{6KW-7x%XfJ3s^2i)OMz+=r+c6(Iy3uGelan3qD2f< zhriu$PC1sL%7RoVH>Cs>Q7?c8=a(t&$f&L9mAADRQBu}(j@1MUuijuhp?MsDy5ZR{ z2)x+aky+JXuinLFtV!^kaqG4fC0f1yq@nlG+{6IfW_anM0ukAk%`vxHS=ymj|DsKj z+3!+~{(SQrjP>eA#@{`eH-~ZfPU(p0=<9ZM1RWRU=N*mPdJ9ZjwB(l(lz)o1D*R1u zZDrEL#HiQ2RWcRGtxZgQP-xP;qM98juj%sMF1~T}7nZEzm!iOF3yrHOGo{r)@`tZH zSuqTMvqQ|pcuE09V$zeyDb8^HCSW2Z1#-Z~MXeG5(ktz@pyZtzuN>!Mx0(uxB(I@~ z$|I$Z8c$E@Bc;8dlct)KLh6@a3f$S`eW0gi$D~ODG>4Py@kx!SlEf27DB1Jryot3} zIB&)7qMf25W$lmo$sHu2B6-i8WoVl~QOCfQU)skY z1mc$HOagFnCMWx&c$3)Ws!6_4j2Miin)I_0Ei7in(kOMcGK;l(P%ZYbG{=Z3 zz^uGphRwXWU?sSVZ>O1M1P+6C%vmGy5KmUJL9YR#8|7N*q%VlAkl$e7!}>D-27gI! z)5?iz>f{jm`t4-T^=R^95Adiw%<)Vam+oj$s!+O*zUt+-F3YJyO(?zeM6QJN(o+mE zWKyJ2lz32j=@dRKy#y%bD(R(fO;OmODyo=JA_Li9LC`@%(1GT6G~pShku*&m3ECGy zw}WTWbz8~27HX3@`Xb{DQl&#<0TAW5X5;vbdnhD0PuLUuFzr0663Ks2} zFSU5w9Q~EonYWZ0!Ro^}<*j~IC$L;4xTp-gQlB8ci_Ur4eTNX1uO-nX* z7H4oJFr$s$Mq{vZV+-7Pxo~kp#Ids@_}eWco*1n_z5I7HS|`W7{<8gkRJ>0Uv3K3* z^v>{gWo7RiWgWW5iqZlc62yV7pRE2*S=s)NSBwr5Ke>I77uw$+Nz$}`5yReET%5-q zu5RUz?rLezcDf&ZD3zIJT}}Q8>Y}0q1qV;}gIOtpt>)FOO!&8)=ZqybIS=PMdr}!_ z3;v=@JR*{c+uevz%IUc>9G{LP>GRZ@ezz8X5H%`|q0EwAOuDY9@0z6Je*88g>`EQ? z2R0s>YU{YC()z)4T)pq@G+7@TNuYMN6(W%WVMz|ZlKUb_UU%`xAcl|0TzSm}?URIN>%$?MwSyAZIqBvM~MKb(| z{D_2D<>K>Tb{fRujY$$<6xBp1iHXCcf-JbzO0o2dG^n#I&yjp}pCO0u+a`uL{3%R5 z&Jo^IV_$N)xH0<62?q_kyuifyh)mBZ#qMBXdbkU;L--$qNS={7>cR4SEyIv=STat1 zHOXUKE(8AzKCZdJ2K00-yxLiu#g(AFP!|FfMRHtmrhPS|zF!x=fM8OKk+c`Xc$&s? zT4L#4^hWdzui$iQZPMo)~Y^;@|RMBPFq0Fd_o6v^$f zar$v`Y(tUB4`Le#%7WHSwQ%Q?sb}((jGv)+Ab`rGi2qbyweLPt&r$S>6>Q zIk|6or2NFW0hFgjP&DD-qu`5=OVd{906-QIpC$ta@K0&t(L^j>3?|50|B(WAnpti< zoBI7m!|josSJ3bf3mcx-F&Qh;40MW`YRwT%76X)KBIxFb0TGl?*XT)o)%g6-W=l|6 zY>S2i3I8T?;s}6~T?&J@^>$mR83VsIRW$oURC@p(9~*!D(&go)tUhivd_^9A5aHts zhmDW#90ooHr>K*liPU%o zDb-|l$uH;r0-B%f;7e}OI|GHt@WMBIvd(UmU$P&ar{puHr_2WHc6u@;F29oZ)MuIx zxu!Apv`wx&c1v0%HE5-rSRWS1jZge=p_%vr5BLHW@sOM`*)R*;a!h5)3!D4NHTT2o zTkuUkx)0gVkA=FhiXUJhsl1fx8PuGs3>oe;354-(>5Qd!31g{t?8d@|nzm_BeMW;} z5@M<50;#0$SueWC>x&2se`v(yd$9^iwicHZq@{T8;)2{pUSF=Y@AmGe<7h4~qO!mx zsV}7|w1qtx)Ptvg2!d9xe zkkcddUuk_Mf7>DRNtC<9sBscycSksSfjMo00%E}(cN!n+LitsFMW6K`RCur$zB{*s zMq;-1ps7)GjL1Qhv>_O7;L5F;sylB3S#=FTbO^kD?7;cbpIBGvJV20t;TkV@0{jFz(2h zRyck5)_iP*Y)l#YbVYdgvub+O7vf3nQ1f*K@7gcA3)QGv#yr?__IYhGoU3Uo@FzYG z5L;-(v`?bJV5e%{L<9B&U@lq7sFwvA@bwDOpbpc$iJ5xC-)XoJRoS6|Ab|!xb~!Em z@^dx-p9TPVcN?mdT}hhoZ#s0P$-v;nZvAs4l6A3m3af*XVgoRE(V4E!&!~~+O*_e!Yc5l~z^WeJEdR=Q z!M?s$UqSh_kd(N*nqG;eD-Rt@tWC|Iq3MAZmY`uh`;f!bEA9=ZKHi#yMj=lHZ9Szz ziV`}a(@_nJUOu()U{9Kuwd6{lO(8d0eZ~Y9mxwpM>w36ZlMKOM|L$dYVM`Q?`lI$c1-$3A zhJ`EF=m&-+{lKsg2!`dr_YVp=Dh1f3p)B#sTx@{SrkJI)e&SH}F(N_z-p~T#GCZp! zrOJ_%vhBX$5(nmAgLEi=%*2cdF{$IcJl|*j4OWuUFU?12AA5v9SlXZHMI{M)$~~7$ z=kZh1o9&%UY?3HF3!!#t8rE2E~x|l@L0W+e9dr?fjRJUY5>qc(ktAEFkPI=S&JiyyCt!V z@33@m+}+W_-3lH(WEwjWok_>24P8;$jy2FFx?d+P0nZA3i4U9r#wiW`c_8tQ4eL?u zSM>hDNB9Y)GY4r}6gg~Z1I^f>4V1a;*Eh-U(u5;_X3E!~?#yU12_kd1BRd(@Wlsfm z*R)u$T{h>nu(P;HQz>f4o@A`gGGZ{FS>H6q@#e?Mxif>^Yutz6JoM$aX$i&AUL8k{%sRC%0mRmZNRh6Jt7Bciz6ydarNQt^(8MEEgE?b$rv40(lx6 zZvDCUY!G9d-EhlQYC&UDeAMWeUm8pKS;~A12ShO%x;tdZpNUK{|qKC+i2JquA zhuL0t(-T>;TW}5sKIrMP@1ac>2mdhX@(|Ma?a%|^c(7^wXx)@Mab*vX(ITOE(D+jG zLE}sLo0Z6>#C#&<)5QsCTsl5g2unxH9pUEHU4Gp57GoWtfROZ zjbF(O@@C^An%mQ7>ACLkVmnC?%!Gno?6Bz^eVVlow11YR3a~di>c&@4k%o%Prp5u0 zvA8VxnG=k~IgL(QYU2oa$40vpMw?9x)i8~8#Y<_RBQ|*7Bvm zNXHd-5ij<3+kPT?5GraBs-CVdW%DE?3EqXz+=ExEm-Z+UE9#55i)--G=+hQ^NC006 z1bfI&T&7Q@IFzioRQcsI*`$uQ?k1COaK{$ZOL=`54|mJY+js_S#i{LSiuwy&dxv72 z3TfHaTUN4x3?j*mtxZCtS8<8p#+v2}oam3io_=k7m!t?$k5NMzxHCr6A$c02AE%`ck;sPbVlb1&G~2rtASe4`-5ggm_@9_XiJXm+ZOdT zy=F3T%=aCS9bVB=#}no>5u839+BBc~Y1jW3yDMg=n*}%H`!n#cq1RsGE1vQM^i7*P zI!K-EA|M9;a#G~amgMSG7JJH?o3PSzzzwEG4H5^bO9hH&z}Mld^bAn_#B`b=z`oWW zxoLSRtJB^Q^(*Z6ug7To-j-zixM;|)nT*Wcg~KkhflU&js#DV7;3dMk3}D;DK6QI411q zk&0s&S6s9KeH}USLk#WJXWxrDbt$^>K2m#42wt zcJqxblI_Xw>;nf%>FTDBAS}8m#}?ga(>TM{CM~*A&L0;*8@F0=S9=s4* zc#TMjbrj=z>Rl}sV~Qgi<1m^v&WZX%lq(|#X#kOOwpOc4IhNd2JR$M(Wvf4k95f>i zg8wKaFb;}zj2N{+o1kCl9K>7+Jy~OooF`81al`tzr&eejIGK3}EfH&$`?Sy%=dWR$ zd$}ddgGx;Aj7UCoF@4UF5z{OGUP?2SH$N<}e?e4lhmQT{9vST4ZrES73hq$1LwenT zJ(PCApmd1*2&oP8JJY5TQOk6+3;H2h@5$Ol&W?1dTk!8h#!qF3!HIAOAl4n4BL^4- zRfm9s+c9sN$bF85iMGtW3^^VbIkC_uuFZiwS+vxzEZRcwJ7Tvj=Z}sL)9t8V_#TPM z>SelPC622p`>(Z>{RDqvrK-;+srqqeme8zX#9Eu_dj5_`iP`vio0imESqq5}vjHEQ zoDl9*Og0JTM~Du8=5)wHzl~8yUCJm#;}pAW5rIwt+To2hH1^4x%Pn`}URs3*k7PV2 zDy77s_k(0S@5o5TJ4`a}^VTab?lqagNs`g3dtP0Q-G|y|)&jwds(t=a6rN+F@Q7H^ zy8TR zw9uBCuNh(P^L{H29w}OSAf)KxBO^tB^Hai>3H&N5PBHxs@b##FGl5S+h-b!G*TEh7T%5L@P6Du>!f*t`;Jz5f5PdrA|_H6P>5p?j*4>P zGRxf-_B-}DFoGAxu`eIjuy1YIH2PmS4eUlkfE1B-3DCtp5$Pdfzr7ZA4Eu+g0eK*? zzyATl{)-+W*#Al^Nxvd+Q>Yem%7}B7l`js0jT%{MC+QbR(w|Vkr?49(Jm+hI$20Vi zQ$vP+VJt&`Y|PN_QigsP4UnNfmJc%Y3&zJWyAT_q2NDfdiw;0<_Nnl;8c1S4w&gop zm$jFN^<8yRi9*K}A9Sq!lgl{$M~RBI%;wKVpD@$?Q=JfeavqVj0%@KrOwIZ{S4;%4XmdP!#Z+tsh?*1iY|z)EsfN^Hp6dh=Iqa>4 z8l)b>Xy~(E9~1Q2OX1}&zlBkz#Ypvg?f3kl`tFr##bkW0avn_qcCrwvn@=^B6DDg| z@o;tEZ|PF4fcX4AfD>OcHaA^t*;9}0VaB6YKfvc?v&zJiNZd@HsF2Iiq)y`3MD%yI zgmNXEP>ARS<{^gdo2vv!-}L5jL6{n^s&^+y1j(qX+KJ}Mx`B?UQ zR+mM?wb?TtoiueV>HD!Q2CJ!*0+0NQz?Gi)$$W!-0*~5-vdc6^=8#V z`Kj=L>fFXenAf!LhBt37`~FZ|VOyd4b`$t;U<}tN(|EdnJdKZ+(%zjW9O2*>u7MdZ zS^x=FA%7+p1^YnTIF#2J%TNYK;nbA2y0bpfbt4tU@tnTe(m19U{2rB0dQA8DIs<-G zLS)Tf$qLA&h@63~&@!m}&GHI19SMjj@3E-{ z2owtn?js1SwFbbnfrRqs8V%b=*kJD9$~Krc>$5tpxK5uu zbCW(Vd)~5ks96rzt_h!4^2uEYbzE`1t~Fe<#Evf+6=M++e+(4kf+dh%3WA@8s6{T( zCS~>l%eGkcw*0>D?t69N+jw!E45Ck1J0txdp!}A&z=0*XCRSGolCQr4Eo<9lQQNq) zxK`J~CNcXQYG6H%a{+7w+ECGuf)eFHm?3O&g?ybTAv-y#=eyN#vm{=xZ)ImRy`R>9 zJ7-;Po9JG08PCV{--q{feVx!=?*t-|^Dg`Kf#-8Aw)f>;zAly%YP+p$i>Mj4H$+cq zZODp1>BJbENO{I=E>AjfT9ML;z9TGJR2k>bs%2@+f&EtjS?@c(5f}qhpPJBD%;48v=Eg2E*qn*uZb&?25*~CEL5Jv2Fkyc3&xf zXdKG9SoeLFNL3*8`z$T)KWg}28~a|img-SnLXlfmzSjoJ+B`PUDk$=#j+6KKn5}Xg z2RplT9*W7*fn)igxGE|aj$G-c3h_Lo86i> z?##p^ws|j?wq=8z8RHTSwIXvH2bbzmjHtIeJeeW*KO4w~0lsq4W5Ku;+&o_jeW;cF zD%5$ax(+`^S@{Cf_F4Htd*~P%>d1m{U~deEdvs5OZ#=0BUMZ#VtM#?|ESJNM+F(aq z50(t%X5*pZpUHz0poS{jm9@@rRPs<}uFD*KVgt;1dz}W1arXgd_0jrG?Q8t~bNWqv ztpDclFOAJSqyU0kRc2-z5Ng&Nf(Sb-bol=^L>lL}L?nY&tk%*l<@H9sK#+dWFg~LT z`KTPu7?uITn=|ucEBA+wHY``_<3_b)>vkb%`A+>3fW`0!d3!SnDZwHzkyMIh5u_8( zRIdd%asf|vh~g-%-V598;a*lw{NnS zMGp5RD5_>>BHw*bb#g*<=ug`=xf`L{-105zEnl5eI8@sJJXYoC$k}6vrJMV6= z^Oqg$DCcuv>;PRCH3DEe@J75)=1o0BQFDmwE*!@E*I=n0o3aWYVPtw-+x^CY5oy}M zxSH}Pbv7(vdyy7$E(_rHg?HHn6iZ&;WTLaN{Dg#N_~P8DVawyA>!NehbGTXJQlImi z(oK>RN}|JMZrFYkJF*wN^`qM0gPr8cSIcenMa%m68ULw9`~a=Cb_^W|U{t2sr3x$E-WAV+LPXi{^jaZiIMkV#rqIg|7;&WH_1m8-KWpTKfryw#UY9eAr(>FQ5xS_3#&)&g^9!o1SYgjZ7j} ze$=~r5>KtbH89JAF?P6B&w&r&YgG6tzNWy8XQEkekMe)f<3gX_(he<2V$`ooj3mv# zaEUQ&!EW*(OcH+3is~`xeb>fL%c>`ruwW=il=cg#`}44_m`;n2be6Of!fzb|xLR$} z=i4+GwnZeb6N@~dF3!+q2LL!_tqcT?V(Zz{EU{&#k?L1ng#ERa4TPxSzBv{AD!&#G zqZ}4kRTfLeReKv7=A=9D4>{A=_B7yr38DP4z#JMbqvqwtyLiIt1j!jpR({L~ErGS9 zgXp3rtR+Og;kJXc#8TQrZRuwtMb!&54AOiemkUT;<(%EkNB_6U0`S3lw3h|%M85~+ z4aryGSx$)7xY@LVcqy~|TuTMqVJhHdtp$c%6<|H)#E9yW&+-ZM$>&o4cZk$!zW$BV zx%-UcGygUFOct;6%K)#Zo|$gvbq~d^!)q$en?VutOTIv>1p!YA;F;`zs1{gp9oaUu zB2KeMR`eP#cq5N^W<7m+eV4b>mv)ed)y60_J4L-pF5PVnJ#t|vQC3ExP1!%}D9C7x z3-KuXQ#xOYFcMj9^=|0q*KB#GZYD!i-zK}rJJ$&7f~rXDQ{}^BVMU1;P03ZPb8W%R zw^{!%RpkDikyN@b8?L9f^0Vq@k}A8iXPdwE=+7!Cos=i(1#+RTQfXOiWO^8;O% zf1o={BtQrCS(5m{e-x>aesJE`y|e%H3MBrXdwQqWU&#I#8E50CTZGBQ$7I=m$iN^= znMQ0&b~3DyS73)77kKovQ~jm!$JGy-q}X%MJ3slD-(v}69|@Zx-70-r-*vfY^c`pA z@GIp5e&4&g8=zsz&CKlAi@5C84`Xcn-U$= zylvwbzc7AVW7!@loZE#DoShTiVF-5U!U7QJOEox&8AWS{EKVj{$JsK7(^w0vK&o_{ zyM$FwLtM(%Ct+bCPBw_^*pl8EZg^oniDzw`QJM=e(5wUsHYC;ik9w6xU|jpdj`g|% zK8xLM(TKLWC$7xO&l}6>0-}N(NaV!<(lRq`#!fC`6o%pd)={~6@cb3V(1Lovv-^gc zr(f8AW|TE%kTFWGLUfBRNXFi+wuXbhTz=69Bj{)mu>?e%EeoR`B|xjf06mD+{)&xq zxFf6a2nn&rvprD^OwTVnZ+MTMNbtk}(OK-3O-{%vM74SOi(tKnik zziNaa4Kz!Jh>w~18R>mqLSpqydAm9Bgmd%Ll3n+TzaC%f`)k?!jMz}SUR30V5ECFG z=}v3B19o+VUuxz5XYXCW^{T3S@3q$ZzWcWJ-dVW-A&Iiy7kW-O2ZTOHk(9MKBUH+VK(#7!>Qd54MomKun(LO@( zA~8u-nV8f+tc-+{LseO9s^V{rz@+_#7hBSxPQqdKGD}(+lQLiF-Ib~hwi0dO zJxHaV25XSrAUh4p<3zVpp!}NNzGql&GFVnW7O*^!nmACaAZI>u%>0Q#lh@G5=I56% z(`n6mEhS4Zh4(h5A6QZ&5F;TM5??|{&j54XnRZy+i#dj(ZXWH1GWFs2{jewM} zdIfn3wPna%xYsbT6x&SJ%0kHlY%?wPNJo;>gXeFxp5LSA{FghhR3w#|pp9hRM+|0h z4L7`5>*8d1z5P;IxW%6Kdb*KJxJxg^y{dNz!>&Orlboym>Saa2T6IIxGS-xS#0V~H z6b|`*utUpXy^$ZjKarp7-$30KSf!NGKXCp957WR%@Q6eJS=`^P_O0(uq#|5a9_8Z~ zLKhm%p6?{*!H!ZqUm|Pqp@@gZ z1_T~1XwcADQhGLirQK%V&ds2qPiO#CKj7c{CINMqDmH^Rwniz#=B@jb$x2D_G5zLW zAEe`zC6Q%(%)2TS%_FHJE|=+WGTWqoJ^tf}!*MBYgn#M3r>`GQDcS$I@ijd?Ash#3 zdJO9rnIu&nc%$HX$SD;&&pg+V;{QEmNG?KIhEtNhsgXdP>9O1z%4tQX*TxzSH8lVg zr6C$70i`#L@{nFUn$q*y(R4W#uD@BW`Me-;%`nwBoxr8=8cI!-(`7ziPHiRgO|8sR zvdUUTlG!Q4@yfIYKxDjp^UP$KmigwHaquu@mP}NSe10@dkC}VZ=p0jM@4QKirQiCA zbpqr3FsGXw-U#{ZvsQ1=0GTR3MWNAjI7f!wDUdupA8W}45@l3eSjtOsg`GCOt>Wc` zjJx6XV3l|%O2YN0u zQZxM1<)kW~6pC~-2ZOkIW}s{il3=0Hsc_D(F;3@PxK%iDc*?x$5is4>fhjN1m6?qf z38AqxRe0%Xb&3I0ySdrS8J0BM)<$W7YE6F=59FF#P37kN$%5`FPTNxNeVL_E|rwdy}C8-79QsA{D8U zhPCt>>+vsiW_v$QLd?sW(>NOBxR5EaEdJ7FuiLeYs|Am2)0igdB@f24AOv+=ah_gN z{x@0sn0oQmL2N@RHvdPFlpZn~k5w@Bg);f5#R4jXD4dA6^$C7VH#gII@fJsmn1BUp zj1+RfI@Cu}Q0NX7i-4>~g(Ka%hbm1X6yj1ZAjF=G|ZxUrgh zu8J$HkXd^q`Wv*Wdn4EuH?epz%OpBL_z)eKP%@Bz*Sinnw1#kC3LFqtff>QJRJ^$! z+G6b!4Z5)&c`LocM*jM@i0j0W&%s@>Qy?b!f9VWv8WFDxMaraj*m$DMQ*M!ZtCwk) zZ$F!v)_ZjZ)l$I=Q~*;H)eTbyK!z`|g5rhxKnJ-wKu`Hg#(RBkUg%fc9=fk!p$s-t z8^5YJJgS@z*S}4Dx=!WIXkd3R11!h!qo_WUc69Km`7LRhaX8y7yAMA+E=DFr4yG$h zrp$R~TLWbJp}@5y`b-$LfnSan?^YXbrWh~o@E4i&RVVY^O6!GtF|h(y4aA!54!{jz z>>?R%SOtcYaP4v9R)hd)y+RPOgL;VvBNWN1Ev(vNdXNjQrT?_ld6d%ZR6?Xke=s&a zF^RWyP{6h^Xu@EK;iQk?gWqZW7Vi=0(^xK-d?L%5nAPqb=e@M^^Tc_%kD67ZF@P4K@+(56Es>?uolI%GA`2QB>e}Y7+9 z7>SR|)w;J;Yl|V3G@$+iMjb`~nqWXLR<(J482g{cmI{C zJUAm4-zNd~Mx2<_#{X%~$J_oubmUU5S(#JNBgv$Ns76W1zt3p3gx-rUX*hg{Ql#M~ zb|lTCjwlw{kNNDVYE2Xgcl?LbqIQ2!8{Ua8+wgL^kLkfT+G;q6daxzE(UN9k(zBtH zCUzkzc;df|vO9<~Ngrr77ywu53ydB7(ui}jogEX0;h~kyrepbsnL>S49LyZt4 z;SWak?r(aNX+1`ys5q6sDYMx;QM+8ceyZ7I)u7;s&F$m2$-;?UYGzZ zeso%QBBT-DQpq~Z6u#9sF|d@ia(X>C?aLWO4@{&)cc6{b{RdnO@2JE1$sv`Ft^wzH zYM6TbSE}I@|LhnXXE-K@JXRse_F_Sl?nyc~4{ZFPp~8nUkqaYK0FE>^J;nV9ioaBB zB|!3A_Hcz2yKGb+S!~rZegLYs*>S|!s&+YL@6P}PxcVMrt5zl9It87nvp$=0_pj2u z*IV~~r?sQ0QAChl`ogsSMWtHeope!-=agiF(+7DuA-cL8+rltN+GREC^L<=v0Nyi{ zJqxA9!xagK9<7yg8$nzB6TRpb72Y>!y5UI@0by6UXgH=Oq|dnmqJ`8x0s}k-Vzp|I{f8?bWN}Ka-P(c-v+8QJi%2*~EzA z9h%NQ9zN?5k9CdA)@+%~8Mu|rYww&hD6C6#ep-|rO`e7ZO@GfOk)&4DzS*_iMqSWb zW-@j|sBC#8KHxCnQ)3c|nU?~!*rIWDA%D=0o*Iy;6Fr6h6R{A9`7jYwe<*$dVWMt! zBB;zmnm%gppyZQgSxBSA{;jD_252yXF2aWdof&@Qy8KUhzSEB!0e*0cig zO$#Q6OV#|72tQwe=$6O!QISN=#(s|Iev`Epxm?)SetWX_)(8{Fh^fDlmx@=q96+@s zS8+LFD+(M*^8eJvl1xgfG<>PK(~ypXTV*8*H{DYvdy1Dymq_xbB$=Tpaw6oL@cKVg z={q~655sf*ZyJu%t+52mT}l%L)q`U@U0XMZ$DISBDqukitacW_%QZc#ci3CpW6-el zf>|3L6ja3_le}KF$aPHH&HQ6?g2u|{f%(F@ft>L`bsI&a9CyD%2Uw1JyGQ-v)i$(H z#*?zO5o~<~sLB&nKgkn?U)Y7lns+X{oVM15QKlUU8Xy1JQ(Wzp80o~Zs}WtVuxEEh zv9|q|kWpd#%;|qGl*Jottaysrd%hNw>|ufcBUZZwD5bbndGgPt*;sR_X)}1ie5G0{ z0Fvdmc&)ON+Sg!;^Ot??KJT0TAl0T-SyUw;A$c+yX4qO2u6wH{kgIwcW=VmJpV`)c zRdyNKF7R(KX4g=RUREXcTP8kVgVtpP75V0SyLlCL=f zlkezBqKzkEC`hB>%kMGdbmAvX+4wFQ%)2ww3;THntq^DQ$ql{s}b~@ zi4e5zDPCkHTT1kgbV^3qOpIM6L4(7fUOb8Qhd=$|TC1aFi$7l71!1g&LS0t;u5#qR zz*eUE+?y7n24uqD#gDu+wBl%E=hC8jgtkdsE#rI2u|36$t=Sg(s=@MRinsr!#n+kNv)6u-BvM;E?Rrc5p)|cL@*_*usAYTRE-PNH&$_GiXH3Mzim-b&%hF7& zHK0GkZ1RiRo3I6`PaL6o&b>SOUn>w(g=onq`FImq|cCJXFAW;)^M$fep% zlsrtsEG%0AS2-Y4ZK!V=4fmSqHX89{wuw^767Rp!JM-nEg2^ED%xa{yDyC`4hStj^Q zJGZxMW~?kM!u5=hDVik>muwr^PB8QI^h0l(>02akH~B`3XBCg$Cm4q8w&B7^l}*Ll ztP1i1r`B8g>qQ`Q>?7MMBeb59{0W8|AZ6K3EvG899c{p}6^L(odkYs2i@KoW&k7Zd zp$8-w4T9XBA=kJZngsHJ8s+jH9%87khJaj|4M|pfMpccnP06SiE|(&Z4zqyp;r!8d z*{BYCkn&ov-KzMU3ehGnVmld?i}B#~P{%1QJ+QJSihyg>S3~Rr5l1QxOZ9ExHg&oB zc0+qi`=}B*f6{#CfHMrhHOiwIw#v82>rn}2hZqrspplnj zoYgXk$R*mLxZk=twPl8lAq=91hA@aNGc1JX64BA4j}t3Rg0D&`rh%cHDJQqgOqDYP zV~nQDnJqIpjS+XCxRLQ~qp9<0Z%|Hdn~{rC#t^C&#i$i5#i-s>0g9cblpdcqKcc>b z=gF;(d!d-7;7tfH8UX?oDj2EAyOxZmoT#S+IWZOr5SfA~MWvHQ&XfM8@tPDUmWcmf zAYBGX5>2e@R$^qlC{v}qlA?mOpNB(j5~aYT7j=ZI0a~B5MST*gVxT51as;%mSExn5 z_`L8em`_ibvv$2bS%h(;CsuwB!%84-Zxu~;-ww2Ma@X|XcCTijocW}=lok8cOWC(=p0h}+$0f^% z8HD~wOWRKUEeL?ca4?=CCUM3(||6P2^xa&H7M{L}~(qhMF3B2v8a|#@kc&;Cy?Ts$%@`9C z(Hi4HtP*5-WqiXvX%iIzzQlR7SJm`R#T z;Fwby(L}6Ib{0kn{Zf1Dp>A0hwH&O^pGQMx4y0DlE1g=>>o67n7p~4oU(8y_tESS< zY^3#p9-{Tq-Wln&JqkiZ42Swk^=ix`f{gIZ>qO&b>v2r*HOc=6Q_31vRaM)xqSl@G zn6ii`#L1{Lv8N+0<<=_@$eE8Lrdmq92{lPK1pr!~A<^rETUgavzr~b|dNPxnji#9# z)Q$Az{nNZrOka4=R@%tpsMyhX%=OFU{iy3VA3futg-vu;Z4;&^s@9y2P+w&Qm3S`* z$%g>)_eRbl8_~|A-dy(=KJlN?Vc=;L*)4zn5TV<=bm_i$m6F@qAGy-M0O+V*bVTX09Pk z;e7nSqeZZlfG;Q-o}VK|wpXmacUW_RKEi=CgK)@-vua6Uo)q6v+Zo@hMPog?#dxK1#LMniMPbX44ma)Yn-iG1#W$ZSWsm~Zy8c9f|#PNh!vskzX2~k zVO_SPLp0XvW%!Tb&;!&KCX4UdFaY*M=<9gEh^>;50?(Rz6j7w2cu}j-pP^C5ptr+9 zILc=G30@j8Et|lqz?Q7^^n?wqhM?w)RV@}mHkFXq99H8>jMmkjbZ^ay5q}b~Ie!xy zbu|U*SP7XeP>_$Z2v+GlBS^%xkUmYLWyNj(zq}l}=$a0WqR7KSNSH3ZsbBbvXhJNw z(VoGF9owT`GA`F>FpIAn&9)G9l=G=xtw|W^9@s_f^p>ATv@;LB!d#$GHdc1SwA+mAq57Eo8 zN-Iv0|BYWcm;97;vS0^WJac`SwVA_uI1e&cnLTqon=IN>I?5KTG2$J?)y}`DTBGbE z4(jwaUHqm#vTT^pfeT2JhBA-g2?6ch$KNmnZ-2zlVpxg*YXH^)_{tqd#~gm5d7?28@5$`Lss9fCYdI!(Fc;6D=?1uci|B_!cj8L}LJB5RvB&b6gJUHqvJ$rQerQmH#7s;a~l+ zAW0RN$Ur3dDNq}O*JnK8l)kjd&d@79Abw-2ZGMHLK*A6?l$B-5O2`UELAi#sk|I^j zpOz$H6UQPk9gw2Qg+%N1YW4D5ndN#HhhUM-R8DdYiqF&zXo+1CBE&TO6qoaDTEv#A zm2~M%{A_lyL~@+krdC0%*TBNK-c?a`)@xI}`Ty+jgF%$QY@+~lNbi47q(U>&^G0Jd zq{SW#AuLo-^2vhPe7`-Q2;jyEpHI@D3GF#}9`Q2w-p{`6bFcm8&96FuJrxOlZr1}> zz5HFDT-f_%-jn>tIxwXUlO`5mXzB(Nfzr~?pcIi}UB5was*BCJ5UAL=>Myf=L;SjN zoiyEL8XR!WD2O%P1vYg{zb9`_`@EDgoBQG49QCg%`}m&h zVm}_9!r2PwpX1fxDYv~#YkYN3h`&We!zZu*EeGx6QxHIi2ow$K02HDuyboi|@hK6Y zMW9QTnXtoC=shJdp8q&HG4^pbCN1tKCM$9&(#>*NQBFyLogusExD=D3tgMcRl!dDU zethe8ZP~Zj#cb~KpM_$_-Kc6ocD-`E8lG^vq&T3!XM$a@TRU{I+?gyL103h2|JyBbg|qJ$)i7Erws`h2FFJ^VW(XH&bVkS9?c0mogN;`Xm;D|;-tO9 zwd?&PpjHe`l0AFIbTWygIXcW*`(yfKrh|~iWIiA$KyfHGDH79P*+Ps|Tpy69)K65Y zVrVKNWeCpOm^)%SB+4|R>S>8b(@tcJp@~XQ_7LxVVheaT{ai+c%rtVg$<@G6T&ad* zyle3~y%10RKRQZC%Xn5x0hv14iv50x!4JTa+WFIWQP;#py7%YSN=ry=Vz{G7oWDaJ zq9ux=X*W8wN?aEvqxIZ1sQcM;fkwzzI7)nM5$2&lR&Em~AOwj$Bp^^Uv=q-lA zxyP=u4w-4!x~$HC0idD+LwoTSt3@r2tYKz3<~iFeXMYSk(igJ22S_pOl3hj}H5LpJ zl`?ZvKzkF4H>m*zMH5sEM#;q=C{e1E=8OhIs5N6aIa}s%K;rdgI`(T zF}uFU5?|Y;pqYLu!eY`AbvoyGk#M z?5S}m0FWvDf7T$DVC!&O+X4@0au~?MpD}JKpi=x_tU>l=Fk^`usyS2s9lFIU*Z-7r1?^oL+ko$ue*d56`=~@0J(Y9k3x|Q`E7f+5l5^laj3qu)hdbft~ z)lu`10H4lVC3?j3z$VV?*nJ~tBQqJ3GooQN@<@m`R@4oCH8E6N^BCh#oPB1zY)x44 zPU9&4J^w(jIp5&g=7J9D5qgd5zsFH*bZs6eEx^w+Bb+pq^BfYk7H(Y77!zr~24MKM~E^<-g zpv=$8F5t&p7iVQZ&!cakeU?K#2=`cnYIceqq{W>^YE(Q?F+^+T=s-5`7{wb>tUs-; zXsY}WFd#9UEl_mK2Egfv4frZ_#vl2vNGoo0K(r5=#bc*>xznzs0NIQj0}QlpQzk8g zoUEoXW^=w~nf9%L+i-1jr$e|w^i;8e7o_Z1YS!`W6pa%zSvK6{X$*)>Myk?egpb>t z)DH`3~`(=Y^` z?qySqL*ET8VgMt!$q(X@qQBsi+0BS1kBCK)JhOrrp2j0P?w<+7CFCx@N zK!XWVxe$w1t&RbNq>aiQCca#E=eM#BMhD)cNYdJ1mJ-^7fgv%}juM;d{g5jrg}EtT z)VT8oUNo&IY+9?=aavEQFoNS<4~6_}>~hxD6=09uK;BhE`{e zZh5;6DYP#EkO5$9jo&J3$4z6Lbf49;l#~8y(<(wjHRN%~u8Qc9NoNzVxYfWyEU@WdwrYtwlDK_= zaw-K@0oCiWWCxORPi zk}*x>t`J|&cZ_Iw)3!p<^ zKpDCqVbk%Sf2`N69vYXiW?Xy>jLt?fRqF6)BeFOvHCSnPpi&>G)CMZez%$2wXo+D* zv6dkwu8?O(a_O*>;=Ssyq8u6GqvvC6k0l?OAn%{2HO}ie@5$hKtirH{p?IHR8JmgN zNyO_q2ZAwL3~VYg(l$Y6b^~)o70^;RXl(UK;U?3oDz<7P(r&LF71r@^WQ zj9Sjho+a4zZlokiIffnxInBU+u(O@0r4!n0vv4Qm0bgjNh%$)W!FVom8%z2)q(-OZ zB_diq>~Dv%Nh%bx9y6YELr-GO*j9umB9{n9|5L-VM0(BAQ5vNkvwlcor`xCT!(zCR z9|2P73pyR@Oj2q^@>lJY0kNflv84t;EcXb@6YzYl+OYfrNA)stTNWbV1YN3vdSZ@y7U$Sk=V)z;#55Zj9k_wlHhhCg z$ijgDR(#Nakrspi#bh^@IW3g9W&@tY;Z3w@8TE)YtqqcheN{6yx`<&&ds+pV2V9xT z^3F;I29WeFWW`vcBnHY}*7_7ie>9MEdUNqLEoK=hGWK9l4k>0waaM_7V|-wpE?y(R z`wRZ6`XWlfbVSnVns_0!Mz(Y!8WOd!KCk>@{Rn8Pwi*D)JDs>@}5pjqyq zy2O!e(wJ#1(f^^ghbhU`FmNNr5lg}!+;g&A$t@k4=*2co5fmxMphClj^m9E#JrEYq z(E~r%wO$Oos_?y>iEjaovL`*VGx5E*6no6i#J@Xj?q_cF*=&>k8DAJd(Xta7ZHmju zaAcgqIFoTJ9J&Dk%vDdVw>t424>gJLkbh1$@sJ1cNU6fm7@Ot7UGGIl($wkAVbAo# z8^f;m$%OQZXo{o`iMRNL8J-FZQyZOCo1WWiSlt&}tgd0z)*t4;qSH7GQhGxG&p+PT z{2z<6T>KpFBQ_7^u|9aeM0T-XkLCSE+&W}@Ow;}-gnnwn;IwFakiNLGwiNIEl13wj z5WKFJj#ZjuvyMP2%*1JxwS5d?XVrQ#U|wSd5r6mfz?gIR#^jd*tPO1)?W zqzq0jh{{AFtu)5d$I7Jmly$0;owzDp{UAe?TnJjc+&`dYAndwdExks6k*XAMkZvBO z>lNEasCoqeUC3f&DUAWFI;1~H1N5f&w3?LyAalGbJP8l5^I9Zf^V9eBT;fyWHd_+$}laeT^N6?7XvOQO-D%pbM{+K6}-?T2TeJqlOS z`n3jFjM8X*q6-?-zi*R)!cVFtApg}48y`6D)!=4~lv9ZOg}8L1UqB&A6*UbEUM=-V zL=hNry2mKm&Fhw4I;Km(FR3Mo*0qZj&LZZL(+M0L8zksjeWa}nrh~9|)$Jm%1^rcg zQaVc3bI}x|ABoHI`Do*&s?M%7vYPEtmng~W;!@nAcvU2D>8hy&74Rf9Ti?h>dR-aY zt1=%iAhFWFzqqtH3#XSYEl|qjKlh4Jzu2L2Hao=asTF0~`qz))@7Ayb1Vzgvvm8J* zR*LULK*|PMSt_mD`ZHZTpd4TXy_IB%h4;mjOn^aK4M$M{CKNMW6Uta8qNU^iP@9G< zF;1=COa=#mBa{Q{l8u)6KL246aQH=04ix6j1UM&o20w7W^9)!?wa}Px1me5bOT8zT zJS@<^pcX-38p|c=SrJ~~Dz8;UQecgBgqZ60oH^9HXlU1oSxNxl2L?B%y+jbzZU zdJRid8T>i{|i{HZxK>yPiU~G;T;-KrD8yPtVnx&e241n!t z^E$#e+e2<#*;uT)(5e=lgZ4gW*wDduED$ajRrx$)rPR?S_{C zznB%r12z`%wNDR>!_=Pnf9EiwhJSnxbH9eZ!(sNv6cz(#DKH3~z+$Z72#f?GY%!7I zp-96ObAx|mP>a}cNf^t&6#ik1fv$;vEP>ha(qSB*x2Yl#P7+B(%Q3JD6s6ia0;{NW zE-;K)!KN?kBHDl!WcSD|oxwey!QvIoOcdWvba}Dj2qbJ6`zdT(*`B1@qG(l5dryVa z^uxE?Tw-yxu!G1NmaRwDltvoipwx3a@<`Q1>y2R4vVuVPEhCJk2Sb5aNgBjq{9d*! zro0-dA^ncL8qqcyxVSoKi>tj_Tt)IRr9yw~sU@!B0*&ITFdG-f!=Tj`Z+>g*RUwK`4HSDlLVh+Z10t&Pt+e|Co=(niol+OZY? zjaHMWf8=pbYG-<6)eEwj;CqR|BgL-+ZZ!d(Zg@+F=FgT8|~ zl4fhq>kCtY;t`FjV5eqsYgYTrhH5J@7FkkyUr*P(K=@_<2YPnpACf5tRFVz=N+J>U(`EqLj!c$sVU?1?agQ5|!c~ei@wYQA&PqPO+Pg<~ znI9HD3n{z#A$zj<=J$EAQ>Y85@l>A4Q;+pQCQ6=UKUcz;B$WKZcfMXjy0>!lFw@Uv zSTmDiWi-_2ZHdY;eAUf`B(e_9qg2FQqq<6$;SrMP1=|qW3sI{jEg8(Dpj4Gk6gzA; z9~|DJ8hB{aS)(TA9H+!xu+?TkAxs?tVM2sSan-PsY%;{qV4gK}*wvpkb{iGtVWB=89p3I);x|xpspUS6aW>*v|SFK)i-0>%@MaxQ+ zC+hPS2OYO~m1*&}!lI%P!vmibcU$X$(w6dFOIhDadHH?Hv#yo$HcL6Nm2#J*Ot(_* zwUpJZl&>sF`L3nJW4EpKYd)p6+9|KFly=Q;Sd!<~B`NQ=ly>VMwUl-*{>D~cg^2AokH!S6}R?2HWqf)1|Qr>GR?OuGuQrhr5U@03~rLNeodg55*AIh4^ za1iHdq(vKe7)2(&c3$ZlH3`PwL<)20LVim5{OtR$@M9Y-&&rezkSooUxd;l;e}PxNw7f2-R=$nR{%Dycar$?zgO<50ZFj{2K! zCn$b$lRMx(;H+l@xv8iKmM3gE@Xwu* zD+w+S+onR|7vq|hxQq za=k<*T&ZXN4phD{+k5ei2w}5K!8Tts-8-Jxg+XOx)Ie9DY3HMX14E@P9j)*Rqmaqs z0kzZsttWA)Gl4KYJ$cHxtV+C|Efd1V?AeI?{QM$@I6gjAR*&ICkDW{kiDVy@mBxTA zLkK_G)5mc+#D>OwbuS4Pw2?EDb3 z3pg9CEJ#~zMt`p+)kAj2IdY~XoX6z?s@Io-w zCzLDc$oD77&bjo;XM*olC1vnU`#ohRGK8{r^^}+Ey%bupLOG_&b>QYW;y<`+jGFOo zaFo=!Gh7R1l_S9dk&ag4XOc#y=7%%oxR&e6D1Lt0~*(TW2zZjwCd6oWc+Xlq#7VxiYm%Jf1WlYUx2F0w_1^~^POTh z@d7c@XO*s|)ew!Yrax7RY-(#t&VsqUU4|}&1B+5PMXHmc3%+oyN|}`-$E_o>k`N&y zONdN!>PDD^_WcZqL0D-~(V#EYX?r4ejxXX0IZ0Q=0Znr&1R0zLFBLg#q>JI1^JZ}5 zU@v14GGSIl4>d&vii(u_b4qxf&G?DpI#sKIk~~jf0()!w1_7ouRdfC4mNdR0HokUA z<5S2hoCzjQL}7LHCM*6WH9|6chsJFNtSKH8uMy`sQ$-X}&LwjuL1|3GZOfE|CBs&i zDT%2|NF<0(^OxuI`GE^nJ9uZn;+=Gah}i4pDystYGb3Z^(@un}I|r_|kdy^CwASwsa0Z zujJV%@3UOklT5W|GnB=j*`99m9%RaE$~etRTYapR zn-{eP1-)btWe4}fgnQa{7n}Km+Ex*rH7J7^3LX~4K+4T$5k;rC96ZoO^x>G-D89(? zQ(0E>#|WVBK4t*jBn+wVi~rF<SIi)c<1pmofS*Agh|$#E=`nto+6g}}@{}K#}>@xt}vIM4O z0OBKpvfIt%+kqD_0CL}qvm%Yg!y%P1!BBTqTAh?wJDQZdAZn*>9e>#m_gd}I#$?Nr z>Mr!Ba?CNQ&eTCkOdy+dT&q`nTl5`1s!^3^ed#}&irio^o|unwY$6XI_uO1x5k46o zp|wxNN9gS{@e!K)Y|JSR;dAPvHOU%un{y|a>YK+YRON(}{ny_PpnaZG`ao#{BS&f(`-I)&C0+`cWaem$ z=kT&TnC`{XfhvAEm^#gkVO@yj=p){~l|_xTJEhnpa9N{KJk^hxu$we zC9f9&*f?y~c=>5c(rtmvPBqHIb*2>5%8iN$ z5Q|kqVWO6>%i63?gt^wNC@8nU-d$VH3mgyJb> z37vQPW&4W)$@@;fM!hA6HG()S_t-uZn3X_9CL}rtLOzJ|{qW?)DQHTrc+j>AG%me!obeZHkD@!rnOs7=453MJwI;q~ zm;D`b5K`!}?2@7}{U~0QAGGiec6iHKz{+UU{y<=2G{%nARdWSP*#t<{QlWi_2Fkd>fB`Lxo~DD` zsYcfxGO={_JKPJYU2j|C35zLXD*4f!ZXzgNDTSehqQy>Y8&bAoC$wboj1O%>BDz&d z?!}e1Dg*-a)5XqNP%>8kZY$W`h30FBra@n4A#8Ea!xxdl$g$}KdnK~W+91D_yq!t#FG z<`6OoZ_9j;gb$rASU)QJqEmgdPNb7lc3fEBHS_^#W7e)sjD9$Sb9RA3(-n;L0tdt!F$sg$s7+iW*zvP4@)M94 z6uXdIQ>v9>Q}>Kk0+G!u9jycl`kZbhKp9z>Y9(0Q&rB;p@+2qd{<*1tY8MDKyjk(m z2pQyNlwmf9YM{y_Z{5?+%G; z9}`$4ULYil2(HjpCi7NBGH+J`hD@^Ska^2@mE}LukaZ(b&Rr-EmTy}&@R#vw5!fI?j$}9z=zRmKTXqq+DB|R%$P;V(rk1=lp+|6ULApu z2M3HU(`U#ey7FEq6zRkPJS1Skc(;A6VbAh~tl1pUQiKcvD!`H`M(zy09}XHOO$t&U z3@I++FtfFKn;+Enhw;chxfclr_?UI7A6Go^XH}n`Nb+aaDxi-ah1v7N$v|aQo!Aso zLa(@16{*ED(gdPGi>WwDs~vjB_socy<8+b|z<)56S0*fcS;B24T4oLBdDOFonyrCF zv*o!;?3tH@lNWb=m1gIGS!z$6C|H!pNZICwR=(|QdYiatJ6x&yQe_@x+vy9HL(<#J zbi2uL3)!}?;$k4l7a*X@1KSx%se8p&HOYO**fe0%kD%ol!z2UO8nGAKh#9jX$E;Z$ zExrXTs&PzKMs*e#Bpy}s@JEkHDWD)@5hkDASrVfDYJF%Z(~oCu);Q>IzVI#x+$u1~ zXxM~*Md$!@H3c3$vqalo4(Mz8o#2~A3zZOF)^JFo{^5RY%Lt>A(`IhCu+*= z#epL}zimaY)}tPCN&n!ylwoIqA5%){Eyg1({_G_-^_fe3xu{?>FkQ@wu%k~J|BvhH z(rn)#Te>)#GZKTB+63(&EbMKy?0!<&7k63OIE>Z|wMQ-tAML_y#UOuQT1E7r8J~}%dFmpBq#En<7+b)1?5#>l zil}IdrQsV|I^%dJ?%5Z2j(0LZm58}wh1?L*gIeY8Pw5O#3#PUzar)x0Ki#e=qPMY& zi6EdR61eLU^h(C-ro$h+Se?-lR$Z+4go9QU4u`%33JtYM7`XCcEqgr!LamZGnx1nF zlDf?V=#YWuM~sk^HY$Maqpn=r=C9*6Gq&biGVb-`c#QzPmFYW2obLKxN4@m{Uf3Ml z{>)LI4I0Q@Vb|Zm7sKoHwLwzh_)FO6L6Wu9yFppD|<;c_A?*qnI58&VfcB z_zUW+*9z43{EoDJWa621z_iAeqI>M2DMvD*Ce74JFQQ4uoAF(qL5N+uO|$zgm>z*Q3yl%NVtuAt1cy!#+;J zMzAsCyRJa8p{K9xS!0c`?rA(O-0JU(fzRNkRtLc*!W3|#YIJ*O;g-grY^-gJ)qo)~ zGZc+j7pvlBj~(sSaBp!}(T6%OI z_g3^8b|+)O+!J^1wg@im$L`G~|IHxO;no3BSU#8+!g(C6s$Z%AM*XRzRvGsVj_^7G*#Qrv%mm+}Us(KT(fWht{W zOlFCMJ08&hK1_ht++bmM_+J+?(ID95}rIB=;{qYFUyCkrEm zj_7yNuLefFf(~Y}R%0&K1nk?_-tKV2Orw`4_L?u1qDd(nC$E1Gx&$9JV zCMJTl1|pT7(r0&vi!bD6cy4^6ENHTg%CxEc5Mqpv6lB-UWoo zneECPD9IVgD?iMr{$L_PLx|D zxJHMPp`%q7A~pljG$n&4OUjA zQr)Is-!4Dcyx!Kh{?oVb5z_lCNa0YsLW46oPjh;nc|UXBb0kge)I_f&pRiI0g(Mz+ z_{#6T;nSa8DUu@Q(o$ajhA+S6^LGFAikNcX%0K+{@yasm3Ge#g*LJ)vQ^JfVy!yJ= zzu<9t*FhT8`sbf~&)4mH?(gq^%dYR!=P7@E$ye^{=~ZzELaS_0!IfK<)_<~JARRuuPKMu#n&X3%Y zZKq$w?>hoCHL-RIF?111Qh4iV5b+c1RCS|qtUcb9C+KHznEK&G!dtt37DQDPZn;mW z49s7moSD4i<&4e)+iHw;VCbLrBiJf%$`!y82MaL4fLP2(;|!)5Wt_(m(*SOm*5ozI zJMO3U0QuN6I@Z6609qX^r~M2{?y(K(p*Yqp?Ha;fdy8vCxV!VVtDO@uwbmgA`G0Hd zI+!TaD9@(|l!%nOG^Z-nf&RHRAu+*p41Sub*enwc81=;af}e<}#1d||1isG3Q>I%P zYh@}%#`Ci%$)qIgx2Ssg_W=$KnMGI0qin1Enz5?lEvhHCTd>3ZcSEWepX_=pODaC) z%@iNAZ2z|JC*rCn9Nd2i4(dxBekVP=P0RE~#>3+{%)zH9lQ%fVWO(Bv<5Rp*DewXx z1(|3y7-Bm~@g~Eo5?C%6L`^lxwdP1`8@@tf7j7}k4D@{QS}XTomnSu|hFc?;`roFU zG;MZ^q&cjL&dNew9njU#U2|200Zzl^ViKy)2-{;|9PNy-w?+`mihS&6gx#!SV52%C z?5O8*Rb7=S2)+LK2-tQO87gACtBu7cw~IRElvw`gEi<6H1q)+mlJ8HKI~h7W>eH%< zTda#j6h5-Es_J5o`B_z;ZuJnWbkDh$FH=rL5Vb_{=$`tdbwKFVaW{tOLOudUz>n1< zD;`uX+`3gcLDfKZEbJ8|RtHxNEW(8c)xS5 zQ_9SgQFilbR~)5n);8P`>)+nn2iiFKCEPA5 zu+v`@qNhCvA7QeSQr1ubCdq4nk1q10ZF}mWg~$QtjRq$g7F=oC+$0RKA#CWt7q3?i z>0m14Z_qF7uziS&7U_qyZdMx?Z~Y6sTr1kGHZK16#Cxm$B2~@y6C!_;Jlv&T1g;|Y zcB$zBOIhDadHy}hv$2)(MoT%ZO36Q@yBw%GGacC;_R6ADrYsagCKVBT!Y>*ZjH(AI zR(e+)1E|m(ycA8j)edUD{23}P$%;B8az;BKo=F8>1}tZ-a*9d>#lWKkHA znzjvchZC0ANy^_TBWyHEb^L;aro)f0%fnlX+eDiVG~wvXAoW}#MTYz+8gEV*fcpJ3 zY{FNa`q?z|W|cS6m-R>7T49|w6ucD-v3*^u5Y@D%eUK057fWUo9er9CskdgZKN_Jb z?VwB8;Q0&;Kdb=pcKK58gQ5!4p)?Y$R|aEbmL|R|^P+`@2J7$S)ORx%D?}?^fBd8H zbYmPt8W(;xKs5zXz`SLlR5&o?T-+{hNLf99vGx2F&~r^`zmW zHvQ@yM#di)Q2_?3!pHqH?V?xg*GusU)$e?xRuhu^KNzew^-5+Sy}4icU@wM|>RkDS z<9d^AJ0-4+fiGH&mv79>!g{6^uj2p{C>?%TrvkGi5pXsMY)mq?gJCwREiUTUqyGmF z84v5QChEeFoUzCMz|q-^D%=`#pYP6CxL2KjhY=bQ&S}`R_}Pf{WS#^R@qtxwoB1EeYgff^dMK8aloHnV@wKW%7z!p;=N&Yzj|PrFAe!trwVIUq8C zj&CMhPUTjFqWOZ>&T&!1TlKefA$@h!}3o+;v|cK2uaG<*KcO8>N| z`wU!Iv3X{dee84}tDczDv~~ZMPjtE;x7XBTAByv5R>!96(J!ca<>r|+F}>aWm3&%t z{>*XlQ@i`C__TWS%<=J4yZfv8#08Zn#82(+ui?{in`hR>Pwnm>$EV}ZpE=P#E$aU9 zd^}HZ0HAJJ%)b${ewdc>Qk4@LzUrW^|Zl2i?)7#xYkx%Q+ zpLtyT)b9Q|KCRz8^Z59w-Tn1^+Hn5NN%2#=`y2T5xXm+V{M7FLLFaaQ-?4*e37mPBi){hIvg=;%0BJf?EloP@U;g(K{DE016%8B8`u)mWcx;)rP zSs&Jih5JMWRqLX{Yda~A3y%xCIw_*KTRJHxg_FYGc8ZLl^H83xh%Aq+l)YacO=6uq z(puPKrNnl*!W~dJPT5jKijFIo&C+D0xHG{Ya-3kH9GBly_RJMp1(*~M;kwQ)u9mG8 zGDl9?K@w#qUlu1?*mex5RpIWx zY7Gx?(=10eY+)swkyL;$lBPy7Wplm+;7pYeiM1+I(R=Ls$ln)CXL}~xSwVf2kGVE%ngj?*b zszYt;ZGRVn!$C`_c;xcYaI6<5wpT)jgdCU){o2|TaW zGx?Ohk!OnYboS02J9gyH!}LmHyh}#j*p7MxSM>On z+BfoN{t}qvd`>s7mx9`tysk|sSYi7=fqF|wmL%?$HdDnS^$<~$tx(G_$u=SKqKFV9 zt%_@*eLg%zvM9A{n>`bj6g}gD{Z!PqaL;Ff>drBl?Xs9vF?E=G|8uFtB=&>c(x1MlhHk(D>-YJWlum= z#SW> zh&vSLh&~O?S}?G3hpb4+(5ybBt+5X^Ce8FyH<{!oJ0|9Z-)NVm}1i|i8?+CUDjA3HNHpw=O(08iEkcn9l|E)^wI1IS#_kw!l!B4 zwywq_HNw4aDRcXspQItG)n-}DOgv#8*k|OFOtZLAr%s0G$-)_r>9}D@on(*pIC34O zP8OwOs`KNIpiXJ^IvA1JPyu=S5+Fa}6=Liwdq2?I$dC8hkM$DNTDLp>pEX#S5&BkF zeeaU0Klun?WwBHLx%b5C#DJosPYy1r^S(z=CwID};X$Lasp{;LY1?LTNcFOFB_4>P z?J;S%;xkH&$J;^ecKXZi2#eaVOc)(L zii$;#z`_K4uO^@yuq^%`WISldh}@5mGI%(cYjwS+BSj29zScM{&5tX{#NVz^pOSn; z25Nl5=4JS6ai6VE<_!I6yGdtd2Q4X%eg4C6K(Q;93FO-9Qj3tXHxod#VfeoN;I*=g zhP&EtWtzVsZH%38?Y=WYTcF|YNpX+RV7?QNuG1qy`1-MF>{c?480QL1vVTHu5?@Jpj&7UL=703)J3)X$YMV?Q_ z9wa#}h(_k#``NdB?zP{%`BevqImYNax9fqcUjD96F6{lXVvysdO#mXXVWh4mE|@i) zG1h59nbvdb!eLxjH2Gf5T;aL;C-(sr&-UdpG2UT_Jz;xe%Y=6!LCLj zgV3%&WeR=ty+x8BGM;VRxG`XV3CEE^F-#AShgo*| z0B~B3`|0iZg^P#igYEuft|TCC=l0?8m5ergcpk`>lVXJh!$cYu+^r%$BX2{s0fnap z)7(J;DlFNMm}iBMdOM1(PVMa|GlbSv$Dq_@R#=(Vrj@#qs#f$*YHe*!f%2)xI2ohT z4R3kS7z_CAu|61o6Bc@?Gm5xk9=GB3nrYj%v`mK#)g{|xq@q96ytRs4!X;EZpt|jY z){hD#&=GYtwdi>(xS@iFl?I*<4N19}|Njhc#( zUjC-n)S`3FvWkoxQ-&>iS3CTnb|(cE_-fe>YhWO@Z0mMTbr9D`vN8FqzmYte(0`f_ z*jPTSgeO}9Z||$#2yyU(iHsxIn=}=Wbs9hSA5bk4UKJ-nNJRL&Rx`V=Tw5=>vbrxxr=565ToHo=5rGSc#E7+Tiobh$|A?4aX=0Tr49%uI|`65 zw3=LNO#(N)%`Rfg$9?La$BYoOLF&Ta)(H-o)YZd5X5;{s`r2rmp$_ek{YNSFy2&&1 zEK0^hQ}OpE^FER#l!n1TAoi{T3)EDU! zN2)bs7CvK1$g7M^xL+^DpBUu{l^f4VR)dPK*LhaYheNGANSTi*RT<_z2nQO20>Vy_ zQ_$UNYv#kXdU5dL^e~cGQ&Ny}aG39$Tiq@NRF_5wOoHyVoJq z0#gM+EGC=tA(UopvP~u|`kaS*w)G6LN`-^4Fo@eh2+r;Mnz3`e9Z0iz4o@ilUL=_0 zA8yHB=uc@ywh|1Po?I7O(W7Q-Kb|q(LoZ`33W&TyEGwP9S_vIer01xpsC|<&B+Lku zH0<~a!|qdvj4)>X$xhcDe5WTXi-#RBIKK5D^&W5x?U#?G*z>jWEMpiG_O6whKbxNwpWZOcEmoz7~cXf-moK`V88zAGABC>rdTgMS*wE;m}fNMkI;%NmQX;dt-ew8Y|$QKdZr4+t7&+epKFAAN0VIuYLo01C06~1lBNM;V|KH^ zJ2(HS1_cdO0Tww3tc7IvTIqL*^x>F51FadQs9R=56ZtA&tN4Z!#P4&>J#j3{jICA{ z7`!OVwqh9B0`@72V;Zqkitgl3Fs1tx|Kg%~&)1@Lq!CXcfl7FT@F<`_!&63FgA!#e zOJ#?KrjP|hVTewvTFEb>u*0n+nVCZ9^seTc$xFSuS*0_F(?xR_n)kDGK>#pmELBw! z?)HITk$1JDMRjk)oZFzMO?QVw4-9V^^vIOOmnG=2&MijI8llH@E}*pDM)WKPYQ^00 zXF(h-gfM#e3k*te8!jF0M|sBaGEv!3AQR@TWI<~y3H!U~umf?IB)%&Tkk}#l9Q9bh{EOzI1YuZ7Lxndc$~V-Y_1L{;}>=WM!KAJt{?yk5N-M1UYe#P1Lwii51BI0<9s}hzvj^jObBXL)NP}=IG+L zBF7i5U+B*tl?W2B=>$a>_buw*PmHvAs440HZ278}x0d3l!X3pC9u{>XKlMT!6q|5b zE0I$3fJiHm%C?orc3C{VT9``;Lp{K!aw@?{GL6wy3Ct}C(p47r2}T<+ng8Wk2&zGZ zlRQcbfr|~rt-lF1=yZu5^BlxRBb(T`osBCk-kb}4FpQuQd8r$j4SAC4U3x{31jo=q zwTlShkvH3hR$14oSsPE9mEQ{k=(0-rqC_`|-K_BTC8~NwRDw~ES9fAF#$``F`+;)s zD61GF-{ZeAiTZuEBjAbdam?j#qWaKd)ew!1`}wf^{<^WpaqcfwdT*ZpAsLUu&a@p> z@h3#>Ag<)1Lp!OJ<7WwhXOA^Gs`?1LRUz!u@_lP#W-I~BM7>b48CLiywrFwgpQ|wT z9+oDVw1iy{&U#i22^(vyK(qYvU5V9zj2pdY;#$(Cb)CC-rPlT=beJR=!>wXm;ji>< z#eBHtn|ixdf2)lPC3V+hOE$NsGkXwgBrt&+uevg=<@dLiYedJ)`Dis-(9^#%1Lh0F z~JQ;B__e< z7cOlW`CC(x_6Zk)xkg^?&=@sBt>!7wbc8tJ>v*7K9F#55-YRxtt%!jbOFoK;b9r>8 z%bPf7!640EC-h9*N2-OyIWtaH5Ectrogj9}*I&O5vB(w4s9~|~^V_cG{KoRf z4#{JonF4AwC3^}|z#|dveT7w}EpGAtkXm&eDVtm9Hd2l^H`XbbDPEOm)36de4&Smj z83CwTzU`$)Y*}r^W+MC@LPs0rT%h1kJ$S!AY}iSUcEsP`2`S||CI zChf6MQrSN}(S|464~4l)kL-0)a*t-w2!+U2osmuGL+&nH~muDV6FEE}pF!yZ+EmA)Qv zqMBsIn|5l@vaV61iwIDHli;rPEb{uwgCR(kB=C$8O|zvFQziGIG{v4ZnAvFu%2s?t zQ?TL^lIZ+}dB!SUZE%UJxMVnOa^d4NOT4lwh4FJ3N5W5d*X2Jp51vy4Ilg4=mtOrs z-xQ92ehhH|2@RRbyFf#Y>~ zj0Z-_h7~-kWEJ1$NX|C(1SdfcGP?kwY=IG$Wt!rXu4y9+w`tk$;hWB7@r*JXs$tKi z0N97I&7KM0usn-^GL~pAT`^hl812*)LbHms{a8~QGDTgRcqvR&j15VSf->ugt?`IH z?T=Zw?vNy!J4I&1F^&&1>@51vjzu70mgU7n24}ZX9x@X*+s~QHi()satBEU1&i?9jdjB@j@mGfrA*dTJp%~D zzi1qoSUo#B@#rXLCM|<byM}z*V zwibk9wq9d10vrj|!ahv*2-w#W#xW1VGvec2nihDUUaN_*&cBuM+dcNJ-}$yTi68H` zkK>(>3)&p3S{J^hT4%c-v-t5g`?$XPXl{}v}8jXR*39YXf*kx253$Vuy;E>%}lodOnG-E)VhXIeP+=~c}T4m zzStJ6hG|rLAn0LaBUMVozHo1>hh~aWgCg|K00i8?wxc@QIX{SWEw*eg0rfrhVX)m$ zO05JUwkA*k;~}(<8FEGgMnkNM)w)9aINzp8PKTK0scT9ILX)l$Zw&P?h@Vmu?Edfu zbvunM?~G+cydh;;(M*PT9bMr(Zc2zRD#XJH8pH!6+z!B(K~ROVY6k_|X1lzY>Z_Cr ztrGMgeKW178L?AKny(hu{AJ(I$(H@gHdHI`uBkerQj_G7{KG-Q$)zk+KM6VLjH1z) zo|#mq_KMNCo>@<{Y9X3l04Z_=)&-(;?bpPwa$2$u;!Dp+*FsYW45D^Ki$EcFxm+-s z;+$CP0<^(A*j*|Cm#0?oBwQb7`8rCEJvF;geO2+XcJVv4zW~c!UHm3xyAi=^NgXV% z`;=RCjJNAJAkmxIQ`d2qvhCwwyTx^cgFQiZLj#%QmN0kEZSzy0D$z!Nw?=)#zGU+-U5VIsm)<3Iz45#KwMjP|cUq zTknWvyf(iPna>Hg*xJFIqqKNUx6=C6EA`j9Qb<%1Oe{o8T70>Iw;vvoN3Eth4aE%p z2j-{p9O!Y0@k}{O1k{SK@#(rGxLje9M=&u&O5(B`!N!W3ygIyRD?M`O$HjZN_+4mMfLvctE$P$9b+yo-WsHDcSeC zWjiI5b7gt_7E)Jo;wEnh*XV1N7pzoMKC%UHSBM+? zH~=uQlG;uuR>+T`jNmrj#Hv@uUcr}nY4RNZ2$|ak5RV&1DMYBqW^&!XiOD_Ci zWEt0M2BTH5P5!e$OkYYVF-*lkG&(XJYG)RFGFB-d07-99sl81<4Msjq6=I%}I0H_@ zGF{I-+jNY(YMB5$%oxSY=+N+)mT0H7kXeE>Jw+xqftlVtOj%=fv?QxSl&0Aq=c!IM zEU$A@mz9G{M#gd~VyTjui1inQI>>0bFYxhYzlcrAX)JM0TMT`H2Atf5gPa`~3}Q8m z73Xf2$Yx-Ll*2+y<*_N;Fs~Nzlb8niY;mMv-kLHa~YU3LCRKv(Xw8 zgP3N=@n2f5QJ~hEqvBY6DB>A;qK)U~%V8m39&hGQUlyZ8r#>=Vb9Klv7+zE3{CmJK zbS4}#S=J!!z;UV7=ZrY>ng-hh?13R+n<>N+G^>4Xvqwj)IGhtO>R<=4^_PD>#A<>r zAze`NhzYepW51j|i&a9(@2pT6*HvC>!krZ=j}t24?FXPYw#N>%=4h>}q#dn0tIo=9 zvCXp_uo>4(?z}f{1!?!gt$6R2mSTMF(QakFqUhL4J6zi;b?^9LN*y8sEATb+VyP3w z`&4pQ3U}o9(8OpRJaQcjuF&cyHVx?T1WqjR7J1Yns%m!+=K>PGs))%N_}Gd_GA zlk@S6`{RcvmBlh_c7?Neao5OjkH%i9uoSq*`j53yrh59PljWT(aT#&L0 zCN(UP*MqvL%Z5F$<@n@%giGl7mbH-EowtU|CAVS38#i}7Xp_O`3c92arS5S%VESgs}L9;mh1JO zu`e(_SeExx9H$oQOvF1H|7p|ta9B9jA31Ab3Hay4`r%lMtun`qd9*fIy+e0FiCP(}*!iH4DbelT_sKF#aP*-v}o*Aj=GmcuQOIUaj?Y zsZIy?L-IEe(CJR*>104CwW>|qSe7QEmy(I-#J1rn%o$VW;9n$Y-jtd*S}^|ERJ!3J zK6Q#M4c6Ty%flm5oj`=FfR4G6p@^zeHJ<&lGz6|MOXgHrjULvIBMlqF&Z%ar1K-oE#IZUPD^R!I2qGj zpN7t?YL{xOEZJClm6G7Xd_qjcG*hX}wI+?7b{UP8GEtvGs1om>U#3sl zQZw(GE3zenB_@f4zbh?A(xpa6rQ1dom3Gml-R8?-f&E8UQvVTjsnKwaP&jIA{ zlZD2UrH)F!(|@o9Xcw^^zO;05F43BonTA>Uc*wjwNqk2ZEg@5f*vi{OladDb5pTlY zvy#~~eR`6FA7Euwgp^EsWW(5&DmgWgVI>C4l3UPah{9NXW;x|6!SWH>2iklOKhUG$0?;&&*RYYWMQiiVF@c|M1m+f2fXNX^B}{DY~&z#cDaJ(bIh zh>>_|-u)1)B`STpm5vPY%D$aYYzr6>fKzHZ4THG9o4TXFSHQ~iWUlq>qLNFC;MKT- zaJ?`}@txTGaOxJnpzZWj5=cS zd7v3O9B@#Za3|{wS0jR4qFAjjWqR>;A6!tVh#-$(1!2qsM;JJ@%oI}2q~uO-#}d}w zMR0%m)LzP^Tk9(C)ZVfBBwK-cw14iAGA|T3mPg9GP|OK=q$b=WMSRR9azt@2d^s+E zRP;dMoq8&vB4EDlLYlek z9JpJK=s~yvYnoTxSkpL(@2u>026{LHh4zA7*JfFXe#Ux5y69pfd7>ghHjMtD9nu+2 z8e#ciY#jTyq6&b?4NNsS>2^*Fx8|xWNeALE;kzCHGdYJRmln)8j}Mofjb)Bdu>&9D z!gX9CwBVsIII88UQ_5wRDw8CS#hF@JnC-frkJcuk>CvQ^r~7-{8)Y3ZpM^DPwZ#T; zPs;!BTpdTud88t6nb*UO3U#oVJ$WwYGj?$ztk^1R)?&jA4){GWX01lhOobpa#}UaL zK^Dm-!Mw%{>Y)w9y!8V-DYPx(2@hq3C!(_!MicU>rc6sB(%SfGKE_XY;SYxwx`6LM z=VM1z-x@K@(1c;d`Ydxd)Xx6EbX4$Euq3XOf{3@hTxm#HspF>Pr!$)&53pKP5jp%< z=+LQ^m1TtstVEW^iKgd=3QJg_Ub+PldV%@a4Oi4PKSG`na0<34XT+9{V|1g>Zw7SD zZYkGr_B1}fTsddTyg- zoA}WGPu`or>2=n1-)FhEnR_NVSsO@~GdBTJX_A@j4MlRMEG-nMP_SZsr_;=&nPf7P z&P=*!l1|$YD^P&O$=X<3R$K~cbGidCy3l=nfw2h^(Ii;7qk6d#LyzrX)=w)>u$ zEVTG}pU*qV%-OExfBpCCe{FzaZj732oz|Mh204$xDH;h=_Q7#j+I6XMV5&(^%2(NI z8y-x*FgysyE%b#Us|CMk8iMH{8y;-pc(l-oHazIOJe+Z8nNc${`SU1FyM&@eAx3i2 zs=g+$2sB}P$>7b*m{phpYV!8?ptD-y!%0o;y&0SuCN-GU<~-c zgLqsp%z-$(bZx6wt56VRbq%V?7x6k5G$`N38PeCR-_Gz1`T{c~9{6s!P%doeT~+tB zG(1z}TG)7z3*+Trz%f~tR?F>*v@C8{aZ7eNe=F15d??51F(xIsnlO{=gKvj@PuKOX zYTsI2Kg9qIjXuZt`<%XW7xzxUF|j(_VTsH+hVee(%Y?(SBXv&5bg;WqNY-PPqJz%x zH_>l?5smXyRz;5ZJn3SFZzfdYEMc|hl!65uvDhimPB2h>sX~g^^~Jo0_)zeG*d42AIqBjwDyDk&6 zXDU4_@|h4)d`2A`5{fzoD3$^jv}&ca;z8xx0L6KF*G?-W?7x#%=XKDExXog;Y9AOn zDXpZP`phTK28R0Rf%BV*Mr}dSSaF*4DosLZM}1%4dHB*22%1rdNrw7UhzUyXzZ3PH zVsaAHw~r8=4E0RdO67#$pBo|4X#o6!ded+Xr`k-dIZ+{4VWCyYy}Yc`)=FirM*+IrYN)<>8me+BL7u{eMD7;TP-npPW}h5i zrbD79LqCcnwacKNHpOB_!YG+W;cYrlBm<$3shiZp2DNA69^w0)p?d_{7IK1cj~4lY zd$iz}Mckua+OC-Nr_5c>oT7PQHUvL&oKgo`syF$p<;q;@h2!&mojDhYr_ZZlk#zH5 zJKc1U?Tj6}Gj!{ixzH>7DFcDSHs9Tx|7N~xLqt(74d62WoRWGJMYbbq@vF7gMSWHx z8J$kJq)`)`YH}6Z*ew4d&EZB6s>k9sH$3GTz3yRZ6o&M87^&ab0&3c_Zdw#`^)LuQM!5FFCUIsBqXZCLk=I!~u|@zew@DP(J>uwss9 zyu>*q>Kynk&a3e91`pGAU9Yz2g9c&p#THjhV+PA`+1;0`|y)E9%Y zOozB2e81c`ets46-Ncxhi>4y}P;2ZSF+3tYOxdnd+8m%R?s)A-` z=e#Rg_WefpJvyOyQ}KOv)=v{0aS0mp5=3bNPDN1-m3awV9efJXPu+tzzq-{t&}tl@ zQ>sO{OyMIG*mZxaeuDAZ`t7aW9bp6=Yp>*>5gMAdQO#3R>x0j~tyMcg*t>SS8qKCX zarKqGUCG@y$CQ~o;*BRCxtGr2=c0p%^sV4ICWS^eSKtxDZ9|I!`c@A5 z2|;sezuhX{c6?@F*&DRe!qaP-TuR?h-8oCSonW6XL~ zA$?B+E-vg9oxDD)P(4)=vB2s66RrVkkG0OG4lY*nIcjAFy@LaI&OJhrIXpE7Mh4-L z)_FxMj|}=pS}}CH7joY5IZq=l9FlbWd6#N_3AeMK`O+p{vU3zcti%Gom%?^^efGt@ zfa@4DS<*~u2}edHv-kgXB~3#?_UKZWbJUf5O|>Mf!X)iC>S@ZadE95o5>x^oyI$Jr zQ^`F=K=6^D(W=OFbU(=gf{(Vn%>sgtwY|*(f_J>3TtXHQoNarXEdrQ*eL3wNdP+7V zb8T-QvYk23NscQVok7NU4G}V?voakWzOS%sHo7~Vl5mnwV)$gvz)qbl_8+W*iMxNc zmf{H->B%sqxp^za&~d!_HU`rAoX+lppz)gc=||$H9f{96a;7p<%~WGZb-wY=BSr1MCZDdfRGQ6wyIYu`ck7M zD~=wMx;Vn<2j7mytF9odrW2M>n@Hemu$mlvz`~cKw6S5Z)vsXaPdO11UkK_!T!~Ki zUdd#-ZjC-w2LpPqhM#!N5vpXh6iVyJk)wU_pbXIRBcPT7Q6p+8?^oi#Ay_5hX{|mI zpM8X}94eO_E{WG3J$58M=V*NH(RlSy&5#3eoFsSzKv!J>syG!-<#iuj-_{J+2TjnGHXK50 ztMMuVxbbS&+WHY1QB`YkM!E!)0HK*ieIOQ!S6#tC09jrOaq97^ql}5vXuUr4R^8G@ zZ2Y4Ja@Gftlk`~m4OOGqVVbyM-m#Dbv#k&ud^ieVD~?{FNm+n`dw{3qJf^`wNqXaF z3?4mlW!v}Ii(9F$0c*?MP?VL!Z>VcYTvJ_LR##1JuEtAL5Fb?6lD4{ntge-K&=MJV zV(`jikhfeTr580)oeksyswQ0ZXP(T(e!lpY#rys`c>npSpo+=4*Wf#U+s6@$Z4`>Y+rAe*m}uNkb#hsIYS z`l-<{+?us4QdC~&tJrsZ6@AB7Y5Q)ziY35TQ38CGjs*BBmH=Nx2`cjv$XBTmAeOI^ z=DqpVY)ZJWSAnYQ^eS>^fn}2vbMxy4pMU!ant(y=I@apu>bwnX98!*>mzvmC6$Qmt zRuE@KmlB-O&B`n}7O+Ypt~ zw=}smw-hD^Jtb@2W7gbKI%}RLGi%->YraG!R|{+YP@C2LqMnj<$#>h{-feIDlH1k9 z+`cYiDSMoyG#D~VDJV?-oYg}@t!MKf-XbF_K08EW>C|;bZ282!B(Dr2pLmib^%_~Aw!MV(EVf{H;rY+ zkIp(G5e2kV#%pjq+y`NVU?gPhj{QEE0b;V2T^-`I^GV#Fs0pcBrP*CQZmO4?(?xpg z5QAF0evpu0D7f*RHr*6eBac0Vp((Q#ijNM{>u{N;0y@o8CNTI4`}?vKD=qZA(g*%-Oee z|4xjDIL#H_{B-E05))_u!QY^^=)iC`(|Z}L&0MAD`e_m~rQw6jvGQ#Ojb=V-!MR1G zsMwu9?LF6*cSr9W{V30vFB~oo7%W;1SlCAstyIogPF!N`h^558`6e@HU?z#v?Mtd` z7U*VJ+KI&&RraEwv?T0f%rp*Ordfnkz$qudOI7S5>Gsjd>)@nowV6WC-k*HJRpE(r zc?y~+kSSMCsOmVR#4M9BmV01cQd$;g1Y~6uuoy@Ov^9@4Z5@~ObPWVAtFm_9{+W|X^=9eqm|u9 zza-_-+*9}z1Ve&#ve=SuJP4GVnx&o9=H5&RwzFDxSltPwOOGq)v7NlvlPjQMwk4Y= z>}T5qEu&&$)rrrmf3sSpv3U59b3*?$@WX8O*(}raQYZ=?p(!Y5x7fo#Gh#v=98dGw zO6;>kOPH?c^})h62N7zq36Qs+MlZdNIfngg_LY2z=L!mWtrIR3e8~5ReUrFUuJ3~% zov%Jv^}92qL-{bxA12{0?*bv2BT~SmBpJ$U%Q<*q9T%Qr_mWc@_01Ne zWa@%#u(X+`_NwpEmgv6j8hy}X=j2(u5Zz;rEb8G`c;me{z-P$Ii-Be~4gzD4)-Y*G#FMz2y!FR@b?%G0z$U18yP?)wvLK{zG&{QqkiAG!) zY?lLRNbIYp6cMJ{N>fQ}MbmU8aRCUG#9S~dNqc>>Xi{K~U%eAPVY)a2VKudy2QMA41c8bD3G_UagI)lPLST8^? zwsI>p@cg^jU$VaDr$0f(_rvU=d~N8VjzZ<|9=21IPnTc!*z2Co*W!8P zwevMz8?RS(zLrGzQ`aWJ^{qftS^b15^Xw4{-1ytHP=I3~cves)`Od%j&*cqrbG~15 zM+DIqw`Ml>6H~U2367rm0K2?y&DBIz^7Ykk5J}hE$OS%q%|0Vdx6wg`oYWqodmE{26Qx z2$5&^ebw+wvBy38zeEWx!_VVNSPH21YfFZCs!rVw1_ad!@jwlzcG>=@o2kg`nvjp(VdU! zPO?#X$?aKbGRNL^R;57F3=R1LREzt}^OyAUOI7wh)2v3kHyrA|Ky6mb0f8fe#{&O`Xw&-^9R1Y!{W+lDW8mmY%HR-ILN2NhO*&+`;`u50gk6{hftig-#F z*0pJ|_wU&))=ki_RWj`byfS%*^)&C&Ux)yrTlKYxhD_^gm7wI0BG*|iFcK{OHTlL{ zB%kwB&?tuL)wjA8%zK`l#Q=0xZyBg}8BnC|06;I!2Hge-%dU2LgyG}H`N2vK(m_W* zu8OyFu%ITCuf?rp+P6M8cF>vRs<0fRoZEw)dQb0B2ZeFB!Hai!7jf6UgQGf?xrfaC zc2!%W-%tAh`j9m*e<|xggs9XoP|x)7{^V|J2L^9_u(jw?5+xRg?DDEHy~bUhVoh_! zVS`OYFb3cYA2-KEFn-Q29Oe?Sfz+IR%CWGKqDN{mQ6nv#;6h`PZ#tw9>eBA=iU&O* z>{~cR0WEFv4nELm#oLCx1p&P82Nf~bH8e2`vMj#Myx0>un@@&(sxQK{nRggn5RoUn z!Tky^`6cbVpFAhdBT)Mb?39BG4mlP>Fy$%agvp)RzWt$#E`_Crhv@Qb&-*ZqF3A-t zHlgNl65j<1h`?0Ru-4o>X-tDk@M#EttLI2e=xYWyoo2YY1xv6I{j%dG2ohDE`(U-i zXc#1)&ALop@ZZ%!ZI!B{%sj=;P6_>Pq9ZOKzc!Xi#4KP;d%?tCPZH|$pOP6G=a zmje^*2511Xb3LUilx zZ5dWMYhB)Bc19KlsCk3Mk=YuH(wS<5#i`o7S`0kJLBX`AKg=A;8fQIzOc`OuT;#&$ z1N11f_*5wTn@*OLeS!~{j`t@)9#e9XjS7=ija*l89; zE)~GAy(FN)h3M}}F0dARak_s1fU-BQ!_4oO-ANE@lE7`7T~Gd3`He+~zM8$ME5c!w zoK3@EWyME`9&Hb<;&P``I9DnIz?%S^vW zcA|i;=K5vAskKZ4@k~%1=93CbIn7?dd{qj~Ud2_ri%Aa_1m431cx*kt7>*~g(K@D`D74wjkc@KzSzg=QBug_5p?b;d@4W93Z#sG6d;fXEezM*?eO;_rA2IFu zUvl3$pa3GLnvshO-4j!R1y3E&R2>JL^T7Pic>v;MmH|{Ub4l52G|LtOAO$IoDF<8K z6y^z8;GR@!oRXpk$O|)j9QI)QE10{)U<58&ff7;z1Tz-_woW1F50DMGtRVGyuf4*9 zKKX!wCAF?rje6CetR{Dw8^CZ|;R6Woc4`BY5&IO9)g(9yuug4Gi9RL}`>~5I$32So zH0cLGe%fCutOck#?}TR9xs1kLeNM5O0TR2kG(;nKFo7vNL`t*6APRVh61>PlV$@86 z>`dh5&-xs}XpW^iq~=;u7z>>7&Ak^}M>XKRy>J~;F#v;kXPd_f%;NCmy{StiPA{r& z;SHg#@t7^qJ(kEfaVQc=>A(|888p8Ybb7#Hs{Bku80fS(0gZOkba-27(RDkUZeHpE zGk2r#fPY0*a)e0|Bv_8M`c#6i7g!kYHH4+UYn9Fj?X|;-kVq@)eQD$7W#+}%F7T}_ z&CPFRcY@S!4GX_j-AU)S+Gq1yNoKu21>Se!T2Yqyt=w&Jek+c$Tm)ryek=V|d88$9 zMfb8t%0t;BCAdaw<&NT-~d@`3?NU!;RSx8a6;m9xI2AvFmvja*}7I0h$6KNH= zudFsjT~WS_E7YUFR}>ZQTae@m)B_TuM0jut2DrozTSUB*Kg2|YyPJ;%L8ZNOl(Gi3 zRe%pj^3D;@dZX50#?DqJU&DTOP7akThwNL{Pcm1zop#;ld&PbX*bC<|mO0Usu zu|iFH!{TA;!q9;@IV|u>xhKtWeEap?*qMfICjY3O3hWVXPAOXfzpp z<$5d}jVj2?%&`LpoCf(N+l(CAmHPG>-G$KQX91Ciq!;8;@I=kn#j$vYNp@=-;Lu zV3z#5Pk6WWA;iW5Zn6_CNMixBvwW6+8B!tbZ(c5b;ABf_|K{Z|W>!obQ}7A?I3Q*l zKho;q)P=!dkg>D1n1=3q6Mq_W{YN(>pS^)s(&%=X?%EMPqAPvIzh}>d;vaDa1_*jhiBr!fZJ7R3`b%TIR{>7?P5^O) zD}#KR+V=e0@6`i~IIQE}ORt~bOV{FYFo+j~$R6Wptk0&>f zc5;Urg8@U#9ioaXbDdeTqU`Q(AjEEyHTJ8Zp|z z?qnvR_paF>-X*B)ac<_m$4q{eKq~$|Vt;WH5$x-eRm=xXP$vh7GaiG7XJ-Qf(Y5G4 zb?@WagXyjvnASV68f2eqFNAT&=vS0hfhhZm=i=((29`JA+USVjBG(99Hz(dX4TgZr_@{?t;} zn*UiT<^?bk7`P85#+GK5(<1YYsjz|99<4aXMUyRPw3x=CLoT_;zH2g&-Q#(P7O46d zg-PxRG2`iMP8fpMH1u9)@{~LZl$8FkLOJ>q1F|X!x7V`y`c(KJW)iw%Q-&9jTP$v7V}Lt)dRBhjBCTCtc7uvfjK&1fsgZsHfM&8VB!ul z>l_SH1TA(QtmDAjB>kpMxa6!gzC#~BZrbKO384dSS@WP{*zh{p^n&=1<|2t(7*xmT zHQ`A86P#|U7T}r<<^e^;on+>CU5AuW3^F#WA z=#Ca=>_7zEXSphAtdG{CMa$?8a&!Z(c~|ZQD5i@O>^A=$Yl=rLPz*1w()mRT9u3fN zB@*wB@~!XkV%QJ1)Z$_=Wn+lhxK>=4wD`oa#Z=aO2T zb=+cfVyK8}NjQI(!&Ca4$uVu0CQmI+mOM==)=?(@JZe+27;9J-y-&h!!ho)gO*kL1 zucb8aRT?J%d~?d4utU49k9UNZOA%7c<@$3)T-oGbX^Ne+CB2UGpzj`QX<^9R0LEa_ zPA=B$dmA|bPz>M&Tu`P$Lu&riF16k9b7}IS3dw}GWC}BYpC_(xx>fw0L3=PX9WN2z}?NUV{90Us#Z%9fLHJ5v!-3Fa-9$e7w?`nR- zCY;AK0KQ|`nVA8^W<%^Z@0irf7K^$^$GOu>aTP=Wn8tfitL|VjnSn1^0Gk}aQj?@h zQqRS>l!y;A4sv!!6XqNq2MmjrzO?bawoPMIn;4&(pc@B}H}DODU?k1q$t={Zn$mwLi- z8Ny@^1o1~sxv;|=duD97c^4oEtzd|wvd8MzG3OF=Fzdn`5B$HL7J@pR)UQWiYu8UD zjL`bGyiS3b%ZC>)^~Z!x%?5komdESYackH8 z$t|;$ai)D)x6e-5HT|4CuHkO{GCJD0t7(0H0lG0o-QkrqivTN0sV9bK5;a=vU1T^2 zih_h_1kEO@J#ov~;AB2zrj&d!nz4VbiRtp%oDbK>lf1IW3;U*mdh7K;KRNjU2+4U) z(o=dUaib<;WM42DIP~I21x+(etfGvd7?e`VR3M>B#=ec_OKh%;NlIWA30_0-;glju zkUi51iXny0tHeLFD3Zt}j!8#_nsXJTHVr)Rv*js1kbsk> zODdybn|ETUyAQdqZQqV+r$ZGzvG8{`A=3A6)ED{wQ^ZCE^n@#0$Z+7z!-P>?{XzAo zn9^1=R)zV&U@=LK&cxGErs_%hv`lV5iMa+m@fs@|;CF6HpU{E`oC~WF<79Y8BX(Z% zpZ#J)8+L4_osmT1UM;4`;hX893Y}XR`iELR3Fk& zpoYRw&?iHV>#>7K7|8qxa$8W%^g)KP#HU>JL=o-gp~MbSRQ5TGZ?}K$Q;eXDGlg9Z zXUV(L!TApMf)z9NvSE{yz1%RQc-0XlQG#P*>2-8)JF6 zEDaU7fAJEm4F$5(h(`gG$&R(q!*;59zAf3*e&Nf=O*T3JBpO2LvU_T6CXU$1P^lw5 zq*uw+E?o|!bU(y{;H5*ddy>rxiyPLXE$3I2=(uw4)croT3=6>*7hM zl2ZekePzbCCa0KE4-VPvqoiBb^a|m664I56UamAm3QTfm84{xd_y@)VMudz6>cY2j zge!7aGFz4A3RAmgnkvyZT&tF#q*O~fyXj*-OK1zX1a zBh77cz{O$n6G58^O`$em`kc(jnhETNhR(^187Q=Y=Qu6q3YYo1&f*B;wQ$QCu2~6n9yFUNSSPFJffW=s6VhKFaxN-@-S)Ms70mk->>ZM9JO`NCY*C&rH zSV;~;22?L&R2T}M79mTXBckh&i&!G88J$e&t7lNcoZp<&gntRH2`^D)>%&44X%{YZ zV9l%0w!r2WYeI^R`4R*4ZL@MlIrpR7baHxyED9pE6vq{1L(L_rv(Qlu)q|}{gD$Ht)y*bUsTg)b1SEq3t-SiS1NT!#dXkhJW61cZDz0IeVXf%mAC7f4alQhz{VBXoL z!DP<1rB@Bsi^<>*9Q=WV(X~LfBW5cOkzN7}IB_sSV%A;n zLjs9xTmfj-^iX3hF&1yw zg2-YaDK9IcsrieK7qu`{vW_<=@*=I4Q7|i7sxtc_mH| z--~5+cs-l$Xo0_!h2fperz8t9#&k*;qR~@J>n|{`EI~sw2uQkx3F68?Hl>NIsZ1Av zv?^kDIpTAIRJlCZ%@?)0*mFYOf84cJ{tX>Km{PqTMM~5xfk_-E2a{fC3MTSlV1_3H zQ-eeWn9NlY20Fp4w}WYBv;=1TRA9#4ni5UO8nNT|rL86#j@wFpIxO5{jWvb8c_~W+ zkT~0F88jgTV3VCIZh0fDDJ9NHt8p(OvzIc;Z{aml=-lEZYQH~VZw_ixOtT(@F@zm^ z6Yd@)^rWS#1fKRY`}zdW1fPmqKfl%2c*${oa6_OKQrT)syUA-{FrTr1pwqC3m8hk? zDlE-L9uW|-X){e+3=4he4O>G1cQ2fHv!NKO$vYNv2~Hali@RDP2lIVx!7DgBpmI2B z6_RUtp!6V0DXucZ(i(HY)odm3u=F7TePz&tX;{eRiLbq(h+T$U z66kVENie8Ug8!3zTL^b^Wo^}o)|uExryL|$Fa^VPB4O4)a^+}64SvxYiHG|KqS@-g z17;#(-0;i>`p#Ywz|^xZ1IbO%Uy4Ib0JRp!vFm-fWYifXgal;|SntO*kWOG|tztFc zg{ml)O+z^XkTxh~Ww*Lqze;_66eq5znn8YYkkuq89pi9Gj-^R(Rk9>ZylP8wbbb{e}&gEoMs+KH_r;n zHAAsrpkeuL%_H_(-1mwvQRFScG!k|$+DWGucS?(@7zcLY6ek&E?3L2N9!UaNZt6yy zs9&lBH2_yq8oAS9C$`0vM}w89D>g*_i=(Li z#=(-H=79)IgOM+JHM3Z&e$`Z{=$SkRN@OGrv{9boO!(j!7W$8-0RuAAr-d&>Z8rjE zc`rxxCS5q3Dql>HvIaRB!qVPCp%vwZ;apw^#^osWxN^U?$I}*%_sY(ZSO@M|Sr%~R zkX%Lz6|tzPp8^;fe#`1m$$@ng%!y+dM7>${TLYv?WoeROj2YPF`Fv#Fhu4e{Hza|E zM&FW1Hs4bNc_A~c(_r2l{zPRR`ft`N(3ss(>W}YFuA;&D8xZXIsAj9&*A^kd3_*S& zy5To4ohCLQhc%|ep24>w1e%zaHbrDgmPz=+WEnj?Quc;}>QRy@Ounqs(4r5g3ZyFj z?hWj-O`#-AC67NahS$ZFB9nc8z6BB3pnPRQva}yEoB1*DHRwgJQ#X;xxnZn*EuD-f zqO03Fm=9}OnB@Dlt!zVktEcF9a~dIRmF4|exx~Tel^dyC6dr37`*6w}db+F%NA8<( zDdH&@>HQkUrvDVMpnkvh!Y~kQOd_jZmQmyO;F82us@L>M!+1cEnjD~ipn!g{@cB$z zs;-JK`IJmWzEz~4rSB^06OB|C=!VPS79pP5X0mETIb>)n$yeR(K1?jrrmp?GVNvIC z4KZbLrYti|2kO<LtaXFl{ zbzgx5APw+7+l5|17oz*MYYWE7B>(|* zsoiOT8xyfco76T6snwMIPN{W}69rK-T$}1~x0=yKGyb~;naR5n};4Mo(eb} zF=xPEMik{zA4cx&K8$rNAGR1{v2;xvxOK#@@JASYem}r zO`h$DrYY?3P=n7*M6!gPNto*>|IQnH;=wO%dJWdA+J|kCI|kp%aZCQjlWuijXyTIM zuX5-ZoXTphEnWe|P>^4u?lP4iKc zO7m;Mf}Ve2!ZesOZv)iC&w6dPpAFIyf_Zh$-L|LqmLg_tJp{SMIKbXubcG?Yay!`5 zNR(Qlc$p?HoX)<6wIpuP1i%zb_1az-~IhD(5xPMIPW zibK0J@i>FLuMt7Jlv*nZ=*Ls;0llqg*1YQ?(AAFv8qBkNp_wU-`D(w^KDqQ1jT1}l zW)H1&JgGh(Sn>GCvv6u)Wt$DFok<}$u{71fCh!dnx0cG1s-=)lb+xzDYksJjqR_Ms z$qvM}*@3STkW*bMDmFu~Er-*5Zw--Rx6QW(k{gC(0yaXjDy-_fNtS@d z;f%vH&e`=Trj|vQ%(~m7T`1y zz&OoH2h%6zw3J-pefS&~3v8hVHASC@iQ_Zc+s|i(Ldf*F2Fh`fkFg{8P2Fc~rImqhMNh859Y>x@1 zn#{%`4LeZHDtyuWQQtpi_z3B?+79JfuM;HF$wc4pKOt_?O{;SIac~LAZntp+*=oJN zy-%kzDvT4eu3Uu&bd!r}{>v2YBGqI?Q%hbW)nLZr%87K6kxO%;FQ6K!=C*1k{2F>c z4)YUDaE;wkeVr+WFRw#T7{%rkH7P!#+8J(Dkr)P#|MmNSU7#oQXO^seZ zHhFkDo<2A{HAB{knW^DDGx6w+qk9fp5i_Gx2gfGJ5Fefxz3~tQkB*Gr^!yBl!Qtt# zJue%b86Fv)8J-wEI68gP!D}YRM@ILI9ULB?K0H1?b$FDU(Xk0iniw9BN2jJHr*_2v zGCDOnLa9@u!+Z7(Uo$SqM@Bato}St?KDlRjeAAxcscR=UO^sd)+*3Dgnx5LTX-rMt zxMvD@rZCvf?(V_j*lM@>THui5E*u2g1jf`%b zn*MVy@_roDy}bg1bIqRb;Q3jl=N}3@Z%yg>T%OmKp3mdCxAgopp5xNckl0t|tRZ}^dS6?HUgp0}K9_Pnv-d0R@)eLU~x z`Dkmes5k>PCm`yN|I`InwXVAAs%x&=d)35MQ&-LG`iV_bho@)uZ0g@Ouyx1I3%Bjq zvSVO$w7-An*5Ms{`Y#;Va^cp2kc_ZWMXD|_#nbQbM5f-^x;FJQ$xceNa*y`-5F*|cZh=$-@Uk?BnnRI=gF_+i>HyGEHFXAd3pUdy_`8_at6M}vi_0y(R;v2?h_QhM`(eY7hz4sOJWi)|3J;c}K zactuH;c=82e-DrDid(GZ;3BQsxcPnK*o4l*}{eF3NdS=84$mFK6gNMe2 zXYUh~`%;yO@(`?hhsVazrZbcA-m&rV_=bIOLwwEQy?aNeyp^@c^w%>3BH4Vjrq{B)&|_Ieyj5yD0Lw}V?Xi8u9o zHoxC*UAb1pv`%e0I6AX$azu>tP3pUxa;tSGGf%qw>G82Wqni#+j;J-BcUdFyUdHvG z5VpRK=Z&T3f8~4J@hqG96u~n+IW=PdeHD0KPPxwoq2i0|`4XOm-|YEPp3f;gzl3MW zOZNS8o+W45^P70yU3&f)&#EW;{u!QMQ+oc>G(S3fbjlnnC$VybM&ciSo}4lquxCBX zo-cY{JU%*+m9?P?y-H>MFc0VRJin~Ty?e3Iao_XeeifBIy3z{R-a+1SdGF=z#BTpc}0ad+C^~Upb0jH?wQk;fWijh7YYj|LPc56VbW)g;P^kJB47hS3do= z_PeLvn>|K|QJ{agFD^>6Rr(Z3TPp?_dtVDrG1fvp4E2DT6E7}z;*;pYC$ z1DiK*-m-b?=53p|Z{D$a=jIEy^lus1vU$svEnBy2+p>Mjjx9TJF8a3)Y~8$d%hs)1 zw{6|Nb;s77TQA&(FS2d(wk_MXZriqP`?ek1c5b_Hd;j)+xNmgq+I=(e z^N_#M@x9sOhIk;$|Ep>K?D>I3%cFa;5z?$bU!{#q&$x#y-zM~}WG;LDRRlvakv%`q z@%&FbOHNJ?ZfkYg7Jx66`&j7OpYg(v0e?T=v*!Vx8Da2VE<=ywfS))zjX{(nIXx|# zzISYN9HGA&A7e>m{?TEskl4%ot&|}zpx5a7hq33~o~C^(SM_y94j;l$s2iD<$Gea5 zO*%Cz??w2hub$bv)A-i_F=I>$r$<1E>EtIVbLQhtj~v*rZR3`W{U&yYsCjJK7-y;L z7j=Ob>BA>k*EPe_quaM`=-;?`VB-$wD$^5pEb5I@*K4Um_IL}who{GWax|XAciuZb zc>_M&=tPXp-E(*xHw8*uvwdqS{9c~-N6Cll06qL<@ZuM|@I^1au3D2 z&pG$JxUcn$b|{} z&dKPey>#k_#t9y!Hnn6!uOFToqmLZZW8W3;ToGBk=LZGH^`m=I2wrtXa>WZTcHJtv zNTUETE}5UPuw5E^!xJRxk)}GGH06@gPV&6m>HC9M($;Ih{ku@$7jS(98tmixZhqzS zWzY9;FIs2MA5EWsP&l%{-VojdEO%sOItMZ@U@%%&Svuvb()t3@|^{b!k{RZxZL;dO}^U37{$S=@O_D+7pW`3U}J|_v7 z4DA^mAIHxfxG=T2ME{^P0xG6Q5XUCQX8v$>WPP+lTxA!35`CjM>kE=sTt0kwdh}%k zm{HKLCSt4(v?9?j7(FyOJvQ^|Lxj9WM4gKN!Ip`gyWMpjZR&x2)6>{Q?F5! zC?1)_-BFZ-4l~6bnxr>I5M`KdjA@9O$pfPk8%EOHX2BikKh;WOT&-O#;>;WSTNkv( z$0iQ6b}2r3K?`QFNZ531*N^{H{zT%5(L-CdD0Pv4VB==;AN`37TGt#N8y^`Oo7g+) z$~ihTbb0dXSG{m(D7ox1Awg~26=(W)@8s0M;hC6Ad`K7?i4{Y8Q639w*B&m+kw$EA zHgG8vk=yvf%x$y&1m+Eb#V%wJ?;9ralf@l37A2Q;j?1R#qATyxiD?Yw*q$+n8xx>3 zPm*w`!I_qOXn4pV9@;xPOz>qCmouX&CL@bE*?7d{_{R8^1m4C-LQfM9X|ELKG210^3*S*p$c+ds@_}q-h~eb zvhbnzS<)-s#PABy8z|g?GV$)jvt5Ah&A=N zftsoES`--y=E*QC_`Q5>fO6lO-y6Ys`3> zFjhI)%O|Zk6rAvXnuwE4nK$0@Bx&cL6L~i-(uQnEC%!>Sb6gHIp=N+^Uf#%Qg6;V1 z@FB)cMxRpfKLPBsr-I#~|IDEtK6GgOCM5kShuZTd&YchUtF0o9JGc=3$@uQO{7Z-FOP0ukclpkrAn`VQkd!6fptdQWW$C6wu_v_)X5^DtR_GL^*mR zQz!T+ABDTI>luL?o0&c^b|^DySUl!qsJDmH%itNFj0Jth#|{e8+$=7b=oG-q85$Y_ z9Vs!n!;zE*ECz|q-CfjWSTF}IKQuLVJ-Vn=?(oRSnH9@46CCL?%cG9LG~<_NmP?=+ zu}|IB6sXfqJ;6XaU76EPZ%r0iP6w2<@Y73f1N=iLNt=%P4~>n8{fxcltB=xG_#O0=@LBZpOE6;KA?8XPoQr3yQ0zy5}ny20Nx zSyy&TLN#509#byT=+WAxw>nq`MBeOLAdIL<*5V_)%&V};*v(Gsv^v*daI(r#emMs&|_g7*tYV}<1_RxcAKR&Cn`CipHs8{nN6EsF*yVzvE%&ef||gv$m7R1RnY z`Kt#8NCRQ~Xc>+0byPc~@@Q!YYF5EQ%cvVnETd&!v^t1ZsiCS5`uQtYF(B!03NL)x zu3fvH)_|%$fUSF=@T27`C`Uib&f0eFv!ka&M?;If zjMxF9e~~fCs$kXg{O6tT|M2sD|J)$hz4}~I2Frkkb}Zvx0zXqRKZD!J#Yg>I9PHvy zz^Z@9zxn2B=zGg*PYZ9>ZZpjMzS&E@^ZC!%b@mai^`8mPsvR6XI5~Aw;H}A~ZVydQ z9-i96C`CFa+k1Bq%BlO6pnh-+zY%ryzF@Vpqh;M~s_5RJo<^m;`+^FyN@u(e29;~1 zDnAtT5R)m2{ncQ_VT-Wi5KoK@Wo7?b(A+ySlv|mP22ts8$khDnq`uF&s^`G@%<*k*s z`)~38F!)^X+2A|%*Eil)e^>Zd;XA`$4nJ1^c>Vq1PuCx)zpnm)@V@Y#@b2)v;m5-V z!cW(JE&SW?7b|y#ZwtQ`z9W2V_?GaA+Ami=R{3b<*D8Nrd#Li3%3stzS$l8gp32>o z+p5Q_udBYH_RZR_R3E5*y!x@~iNOWV1SN+ZPx76>f|9t&T^*7evTmR+yFVx>tzo-7Q^$*lPRsVGT z{q+ylzg+)P{qO2uum64hPwIbKe|O^_>ffw?x88mCKlZ$#F{1T^$BJ!u!*#ZC2a7G( ziGpPw(cL_I!EXK24$6(Bq77q0_M&K22A}Y68?3N51hBie(tu);EYgqD_}g9b+in99mw?WQcR{ah&93|f0Vj)V7nn2rNuuZ=r2_~Yi0m3P!$u!$j_?wWOJU^;zntCZMZbC6 z5Jzfl?-qzbEb~?tl^y??xmhpzt~E-_-n23wN@)uZ2Q`PN7y;QAfrA33LvMW3k#@g$$j?auTN092+l6w42r^QTGq-Y3kS48E=QHH1Cq$d+CkJe zfU%h+OMO_M#-cQ>>24+;F&OW>or1_5fO<7SWZ{}FjSR#Xkk2;5y_Y>`;Ir8qwfVb! zS+_$w(YhTA*&ob(3u2(PgI3`pS0p6Piqu9ZR##;zS(V%=7?P()vuu0o@EyHRZ6?k6 z!8$RdE4ARrjIJVQY=5BWW6BfmrlH0Q1~fd7Ro~VkoePjcD)wHv-_@usJ_HvM@j4pm zIYJrl87pk?`V4Q>0Y{hk5J4Gi+^x)MKK|0aA$sig!pElle( zBnU~_`uygna9I{sWKKC{dZdR;?Dn*iORTLs11YbqTs|Q&)Q-pYCUzGIL%@FE?C%qZ z1hz@@=Y?z|1w7qTV#}UFDoB~rkL{)&QQ^rB-adbSa{KG_@HPF7{>l+fOSYrmQTw?* zq^mX>%g^=YER)P`N%D8I`OrtpfIf3Lk3v@?rakh ztx|7!(Z3rL=uHZ`5}+xf-z_Cq6D^lZqlK8-4aHRu2hFFn;@>-iiZ5?#acVz<-L%;j z$g(M!=N5RHLGc{YVT7!;wnVsSiQiml{0+YBU-Thir}^&@JN`Yxu$kP!Ih(b#;Wf%Z zuxBOMs`OOFyZC=QZn;0^!b?4N(HPp%u zBfi$+vNOOUK={%BHmP6{`YvxATMAF^bFlK4U3sGKiB_)J0%A8S;CVB9qm(?)F91AS z?%zm+J-tr6;OO>Xl7BXJa>e?P0;hsj^$b};yXBMv5RolIAwcSOv z{z_xrPOIr4Y*#=eFlt5)gT0k|>eLbCEW?uN8* zE=L|9<@%~{%)Z%Yfsz_6Ywcx z)_}(3%$l;Q>RyOd7vg&rRp#CiS_JoAO%aAc$H?jJOyb))ng$ms9tFC;6LcvCGEx_h z$&xD8-ea4_H2FU$xk*`%?XUwO_qm$D8%juoo1?jv=u=AR8e6XKJ9?ec-|=*gcj$;j z7&#?#KkZVAISJ0_#hB{@9mHdvrK|e5Rb9)gwtXcaK??gxs%9UwtZMOK zsp<~lgn6l&t=G{g*4)=yosGOsHeM_@_gk(J$Pg|ypPa6!r||DXk5~&{-0JQ?-}iVg z^s!}oCQ00Ahp={$+P5Q|^^JcEe7v~Tq_hkhSxH7i$IFyNGdoI}*%3+%T-!)t{_kQb z`_+^~68H7NIAGE<$S{%CM^16S6K5WBLGMAR;k2Z$3k3GaUrlZ|MgNOwr=rFQQTwBB z2?0H|X7b%P&!Irm9!L6=CKUy=?NGPyNt*>t!4nSl4uwKOg5Y<%geA9?SIjP<$cNI*l&euC#x!&n7>z#J3Lq86pd|z4zrP{4MK+4EtXGMqE zth?q&GG8IFcayQ9^ldJV@(^l7D0bkVvqz`v5FmcMw~ad;q^Y(w$GisQ^2(k6hGL7p zExSrLcAmi&!tcnoCTb40xi^^?8p>Mo)oeO$R{vn>|{^-M^0JoWQ*1W&u$+q=L zIA_O?Zatyo0b6DAr)PikMP+wtF2H}?;H`&wxSUVt(Gq-1fOD*z59qdG50z>AR{LmN zqAn$Q)(00DShlUJb6asD%)8>fdJj~W3PDixB+k6WAL(rIKbBfN$8NDjRHd!SThk_g zslCbTgRQyp1W5J}#l)%cTT6Puy6anY!c8Yq)FE4+_ewZ73{nZfSz~kT>~z?n^4S}6 z$3A-kfksr-Umz(fqrHE6<{0~^T3qIlKl2Md(|-L0#w@0lG0DSN4C@hoK?M|CvOc&v zi)5&&^!fwsIi9SK-Y?DdbeE~bIhLs7bHO{VEO&YXY;;ME9ZZIBrBfZij;kvAzXgjh zlJ!(||5)C8e?`$UwmfW;ptGF>t#J~x5`^HngbHDN%n$^MB<1Wj6VfK<@;BefC_vT~ zXcMQEWpSb)i-mm73ZfA`eWAmb1j9B`3$uO+^<}70ld=d3+M6x#N{I|XI4a0a${nst zNS?eOe&)RJ>jq&-Uwoy+3wP7kS%eoJ&3NHYRKUr3fwY*slQTod_ktUQun{LKDgDz< zaQ2j8LyQ;wsi5iPhP$7HKK(=|e$G@@zIB^qPeT8fD2Lmuq14=8Fv#`b~khl_$qQ-{0hUGV`8kx7~l z*C_C4fihWbMBPQrC{vrTrVj{mH7hCCFu4wYf#XZ5cxT~E+2^_&e*CK1*U68M=Gy7Z zG5)DejQ`b{S-U@INB9Qsq9jz$?gwP)6uXj_gb;7dv6Q|`bvPF84>K%1RTl2IJF)cp zi>d8417}_kT=MyLB&`qDYfm^@VQx)}knB3{fj=&D6`S$XQj6E-1}Za3Im@I@(L9zR zxF@EDWgf|pk>wTpJP8dy*NKa=2Af@6!#|SA=pS`rqtufS#DGWIr2pg!zWsBd-<`9S z9^kY-xIE_)YL&HL=k&Wc6y$tXuyo23J*d<=pSe7JMg^9Ap@)42_=0TA@+AJFF$)a) z=PIFW0L^8V<7nDRjx%F+81s3qVukp;+-UhS)=ywyNbSs|pp$7NFsUbPSG_CKWnT46o1x(g%Og z*U6YBMF+K-6YW?Gz&q6IZLR{|Si>f=1?+ch4Awbf@ODf33@6bp4gAXKqAqskab8o}qwA>S zZIm?kV4Xz+a=|kB-u@f5u)?v2dZnz*w&fA|nq9MrW zjVH*BJ~W#UhZnKyhnEiCy4f=GiX}J4r<_KSs(;~PB{O+%_=;kbv}iC1%)`S&x)8WK zp*}9Cv5K_O#e>oj?z~VCspFE;@wTGe43R=r36)eMRQ{Dv>CncU8#dUs!*>j)l|jDE zM)S~$$|!?3S0L50$CZ0+pYDt_MKJ{$PgaECP$Q)jqhKt-)K2#>Z*yrJvuJP!BFhZm zU^P@agO~?IQcvi84ZoJfDJao*uYn=}@i2`X502ps3#10SnYiQg5{a1A(4xj-dh9ep zZhBF9zD6ro(g4H~+v*ifb)?B?!o8O+p&Z)s4| z-h4ZK$s4qc#Zx9rJ2s(9=uDcf8~mXXl`O82z&ZQOA4NHSSq_zstT? zitjZIMrGf_=v`t-<*WAeibx3Fbxa@m8?jWD4Ae1IiFqjsZ{{_>xxMDzX6duieN9EE zWS;?xgy0QAMT=E|Aryi3qOV&$Aeq2WU0Cm8yJ_mvkV=SVAVWo`SP_k8WB9a`1xQs} zh!7Ai3GhDca4V)9xe?{6jVSxcI}QHz$=$~LzvJdZ2n5mZ&!Gw@p(o$t8gRV;a%tcp zR1AvQC<~AU^jSp||6&qrWQV4{kYZAtX^_*U_zEc`5-BeIG9s|B96!QoadyD9kd_tX zCH0QRuphoPCdeD}k#b`|7gMT?odlD&0NyGfn93ZBqmAY<8zbvNNz$TCIlwvF7>}M* zY!)ul)w(3vC8#p=sHJ{l=a>rAlAOU3jl~fUSNh4a1z?8+Xv@er&v=S-nc9gf&7C*{ zF*QZMB^i)+!^A~FW|U=38BcYit0UcI5e2 zmCv5yRd*I6;aV@s>s$$cQ|GEuo#IEE{a_QvM2Yqc2J5O;m~3SJ9taDQ-<1*r#mw1C zz7DG?P#gU}LIl-{K1}Z74j8@YZ`0QZ0IwUGP*WmH(0o3I)uE5CIz>;$*r&Bj-w^th zOQhN0dAY?0ViI^ShFHzd`GsZ1kMy1T&zdA4!<#c&85T0~2o0L`$EBKMgCopoVUQ^; zNTKm2kvg>kHa|2aeU8+;n0N|&fF-K68BNw==Z&ZM!6WkNE@w~{$~!@NMSySlg|A-v9l>BX`X0-g9vOm`mgCT1mt4rHLoq2JFgoM{fk)H+Q!Hn^NA?akD)zN zh7!AUt<@QMYOHkBrKax|Jiu*hv0_Wh^6sL5s)SX}H zFiDGDFCXG~(f3Ss&{JGL82$*_L$DD5cvLbb1mF$of>EhJHmfK|IA={=o;>f)G_Uiq zcc$50MK*q8-7F3|$Vylr^y3~PxD>tH9L2N=VFs}9kFZKsu$6$KIGN+|<{z(l9b-o;6OPb2u{e*U(oP`YAUo5x`54 z&lE}5yC~z{$6G9o-n!Yn1i*3(3P{8MD+Q;5I6COXup==udi;gx;aY>F#nzr)cl4)5 zl2s_Q!&asE>#S5NG<6m<6SST5YX(D|VyO>SHMq|qhV%{*d^TX{UY-gV3Fb+Fk>M#K zZFl*FxR$h2*_jS@)ABYQ0}6Z{yWC;bTz61O+dTs~(J9XboP$h{pi!jPN_yneB|Grc zK<1jU1nVugP{hV9^r?0A0!@*-kV|X|{;CDiIW;&R{C5R~l(d0wPDU;y!j?H1x~Ups znV`KOVjcK3z?XM>#^C4PYN?-;5>{4P_4mqiGV)2%{ygG}`7*)G=iGhl#J|^`X|%RSDVjD_0}3-X4-IrZHr8zImV^Zd?7*fT;Bc zomw}gMjO!#rUacb#^_lmHdC-^|2He!jwK^UPxN8er};kG`Y+N~PgPr=4XKPwLY;hM zKl)=)M6QlZj_*+W{m|swPbHjhDJhILq6o$$i0)Noq6L;lM8Rvqrnn(Q%>=?MXOlDj z_13vrFR7vdenBlYOa{q!?QIvWhP_K4U|zFx(Fat6%vg}SDRDM0J9$)HJIwaKDN%C` zf@b;RFrAGLYUTdA0A2D}Tk4G>K^Xh;=`hTk>f~%Q0JFrPSkCc39LK!fFURx1MLu~1 zL|}e`=-mRsq$AwmQM2@k#*wq7YYJv#`jHXI1Qn(u$=pG5d$3Sk5@l-%lq9l1HnzFZ z-X`8;+}(V8SW&F8G*H!F_T6l`$$JDHRykOiMS0Ag;ehc$tB&}nRcQht9erH0f6&Ig z16>pvlZiJv0AkykGTf_lO__)mFSMdeo)Hkcmby`}NRfP%9or`>J0?Y5HuWh_RyOpa z^!0h^>sz(*$~VUEiOEat8~X@BO~y+aSOZPd zb!tS&c=+ONbF*HQuSSC~FqRk^RN-yQK_)anTa3-67S0{tmhdfz9mV%>^VCbBO}FYjC%oE0q746I9tJrppkD@FV9)Iud77XiaK$Sg?l| zy_k$rrsbHuh4O;k?f*`;)YN8yndipgWiIog$zky{x#@#bC5QFWk(Lg}n;-%D@*$yBL6IQ&Litrz!$qp$Z)Du_#=@+nWw<}W@`6;C zQA&EJ^Vpq!Q>???Nxs~j{E%Gx!CN*bFk3d|I9M&rmD*~fvf>&F5CD%Y!)@+{d?rps zyFAw}lDtDWL=HNe<=Djt(!8VFR@&y>tw-DDJk0qrzPG6yDa(iaOj~9wBds~-&r_RM zJGFTgRWDFPXC|N2=-P3YY2WE(LNt`=Mwe+O&vd*DY+e&DrPb-`D${Y*h+3cJngV#z zY_i*AyCco^#v#UkFUPpoX^-*wk$bzi#Xv5fY{|d;3vkD zI^7(y;CrXf6-{^-*R)wFd<#Lw8i5YTD8!bR zR$S~5MfH$My5r~Oq^ah(m#X@#-r;@f-B-Ei>C5sF9(MN+=>E$}^D&sm;D}B*nk4tJ zwr7?565Wxt=suVVVQ@$=Ev>dFg7HRH`MBZDAek-Q=L>#F!`cRCo4D5kfcFV7hFumc z@UBuJ-+$o}@lI&9)Og;@HjtzQI&&=w{~`!Eb;G4r7O3USu$Q`*vJ!?=Zg3<;nt%a% z2Xy(JG;sUUkRXxH6w%7*+!SdLUwSFEa+Ud0y4z=#Pxw&8JCy zw9Ra`&jEwO(1-Vk#{|#SnL3n2Ue!tkId>jopvDr*wi_ym1b*xmvLfT^BRD#lm!ZPS z%XL?#2zN0en=NI9U=MOiSQyE@&DWC|mY9_-e*uDB83%*XEo@S7IdABJ9N`jcO_Y5{ zd1i}?r9jCs;w~s|ZV1R}6_uP3{z$rhQ$CMH*@*ABMrn3i!5?bKCjwTa-Q#=k)zf4U&t&>9$HB_U+Myy>V+EJMQnp5 z3(7TzaG~YT^z<=S;Qr~+MtEfoEfkJl?}myjsDwbYl!T!rF1W|8Xg~UOF{?rd0zUe% zB(J&F155>kobU-$&+%ll`RSnW-!(lu@6uX0oFaZkMZ_#yxyV7M+nsKf5RQd>c{;DQ z_{atb$nihrSyCej*MR(oEZzkwT;Ez=y4WD3YbIgR@`^&1LR`#XrMiQmWG}&9%H#ro z7~~=@58XPaH#;%g!H(bsygBaDTmc}V6JP4)Hikp4v^#AWa5---P;~_IPq;Sm>^3>b zra*uf2WF_qRw-I$Ah>UW{LwsU|Iz|`bf+@p3H5GmA7bQ?uEra_Y>t{bm+w!3$i3Z9 zmO`8DGv#+m%HCk<5wD9BX92(5?rhny-KKF78HK)j;7~?tAWBXM5|#-81tgE8H9`a_ zA(X8kgeg@cgtLY@Axu&)qLQ2tfg?mv5F*#307*(m2;DhC1R{jSTXG*MCxnj4;c*-4pfTCFo5mhcboRz;J`Glr4D$zCsB_~-ZxVr~H_@b^EY{ z4;Sr^e!i3=r3D{wx1#qKV1Z-l;L0K~#JBrx*seH^fWSuhGuR))_y84!r31 zjV6Iqa|pJ6*F8$1V-#(Z5H18&Y=e*=><$_a8?sKX;^_h>ZB9i)>LCpWLd)z9KS{w$ z+AcjE=rvvSG;kCfhehAEevbr@LQ0DOb94NZZWr=(Tn5huUrvqXr!cyG%WaYiC@n@W z#j%s)*@x&CjSLzrK_~NPan5|(Q_GozmIpnJ#I|!KPKKw`dVNUd6?zFfhi$sAni_>=tMAKjLVbUqpe2g=# zW=i4zW$$gEEvc$|->TYspR>=|r<;PbrXxK@>TEm7=|qyg_Yu0E;l6vSFG{N$t-YuHn9i;fRg2hzTkt_?af65CtWE;z#0%f?`4fDk>_`R#DMt#Ap%| zzuxaZ=US_(_St>98yblQT2IxkTD8_(^J~pH*Ia9Pf!`#oDp^(FvS%&@+EgkPMX2Zc zB|Q5eiEcbr!kJ|wUh=%3p6k~zOo7qXLYfZ~kO3S$4={{&XOef5c{R??54rY!kakD= zzV0G*&!%yrE)GA~T<1Eyq|Vn{p`S<8`0-6l7#{L*1l)$6@@hTj+q}F+ccT_^?ACLS z$?#YUBelVWh9_=OupUz|?8RG@sNJ>)w?{_tDSlIkxBa zT1d6+T>w+>ga-(_8rOG@j?L;fUcS1L)jwIjPyNWSzMF}@#`ZRZ%AEBo&7@`w6O*|OH@?)yNK!DjakStoaMQg!6V3I{uD6ORso)k9@~Jzz?l0}z9|a& zE!MJGoV?0HBwV1BZxi`EM=K4o#pr)EnzI>Wr}PRS+B2n1=gbw-OR|VjqH5_{p_E<) zq)5klA7uZ;wnsO?f$ijx&<*g0R%ZW~UFs_yamf=LyOX(8in`nTom|3pTPOOHt$tB1 zk0zbjhD*rc9&i3zA|W%{X%nq{nsZ87Bb$*Ak_v7r+g8|QR$g8riY=!X_KG^<1oYJp*Pj@3(9|AhF94S}~WqZyf)M(ykoS2q1 zW-~n8XkuE18BG_ywn;RUcOeHLnBbNJ)R<{VI!=PDxiCd-%5~MY@EZi>`k02!01^xq zKBHpo|IkNCp}lT2dB6vtaleO+={xTe%ltvnq-%D$)sUYPjL^JjAr7J&^-4)jRF)vA|*5kyOg0%<(`r|~k@Dfn=>3?KE4;)t-@BQM}b{Rwz# z3sRkpei01QO&R6m!Ze=^E#<8?YUu&kMk5KGR6`D|l3z>xNa&`T=jR&*P>oy`gtO~lR=uzR1fj<%`QMiIv^EcD|2_9j9# zC~qI2f#^U~a-)li_5`K&j!W7k3Neu4)hU$0Uut=am|t^mr%SsO%hC}m`B=_s7_Fs4 z)OGuao5serH^im=&B+nr7H8Q@(V$=nXrR{?_wJP!1{@S;HaIw=ivqfh znAiuB`UH)2&9tMmulJDk7wVzHwFm2@+6MVowL3`@w?wn1(@9CIVwvjX{usm^UD@em zW9YyT0Jt)YNmZC?l>`O@^X+O*L^}1~d`^MObYN?h*E=F+5ulQFg4UFTZ3}PuR6a zfw-+aVf5FN6ZsIMhw-VhI~j7sO?jp`oP-z`!P6^bNHvC7ab#H?H#h*Tm_1A^0HnmF zP7gP$lZp^zHZB9Sf-KLUX! z`06cVUMc6Dl+AP*P%X!yqAjVL-wg&>Hkt5#ojxW)*1wnPa@ggLF1@&>dOu7x}Cy%u~~=v*thJkyN1t` zRsgn42}O_0FD9JAx+BGP`aG(?_N>(vAaoB^BR4Lp*=Mr5eAn!OnQ2U?uqLj3!XHS zNRQ;;9x2%nxu;BP@XSVCA3YDj0%4*4vUNE+=%h_)?Y%{md=h{*n;vANpUzN|_MvHg zIik5wD=4DK{a*^s(W9C^wa{+%7?P|Yg;4iwF@GCh`jOC;*}~6} zVYIwhhEMu1F7+a6QqH~;xeC>{T&kA7CCc&{8@~?qXQBMEeQewGT7WDks#D*o!u8MA z`<}0l?h4>(zfx~}bPJ*GChdgLr=OrA#9n?;m709xD{FeIwqO16jGqg_GudSVOr;j| zr>r|jI`NZ)xN9CFJS#8+uDNyQa zFeg~(?f`F2HmHC?MaYipH|m5$pnno2>J#d#l%|^~(#NibD3oQ|K4nPRQ$vkS=3B^` z`h*%L^Ox#3TdFTe*Vnf{M-{JHwc+4{8~Tj~ZyOeffN8^VuWg1G%Nj?0kt{b_E>FUh z)>$d?mR73M)%IwJeJyLw<^FU*oF08`4W>0LAZ#ZyG?3R;W}9lwv-<-h7&a&rG($;e3(N}=h!xw zWkqdk&ejFR>^OZcN5aYG5gySu*hx0@fToTo)5)T^>ZRhWQ74PyJ=(dto(a#?6Cvjf zRB*TgE`0a2gB{>FO)Le7@pzo^Q@cH-4DiK$W(3_gEKM#ZB5)jceW7DQoVhS zLeC~#7;|fEK8To~T^}?W8y6E)+U`+@@b~`>IozLmpv55=jr-f~%a4r0eK4f6r9ALJ zb66*&(;3)_vPoM`59!=&CIEY{DsDx|AN`Qd{DbB}`Pm1WTVK?e2gaO-5redH-3Vk6 zhWxcmtYO>Z6H?UjhdU0Ool??L%K7{T09e&K=U)?kcwxbH{C7=3WYW=nbZ1I=Nr8Jh`HG>q79GaY$s(vj`? z!yly?n+HedE#;*TG&lYSvPQ&rBy5a}^6!*ZVvE|eD4A=V zhcDzE<>hDfwRUpNM(b7k7wWUB?W9YF)k;$Vd7UaYK)C6oAg|Ysr4!m$nrx{8`0IV~ z-UwMc%OkF%nhM#Ur7yVYK(=0g{vmxe*`GgZB_4LtRy+mV65nD11!UuP)3}vMZA+WB zXlWC9eInO_(vwmih7x-Ic`vvG8J5=aIsw8hnTM89a%_SsWbJe){d=t(?d`3F8b^?$ z4HHeVP9_?CkkZZ4&xX?GRIN*C)(}bHSzH^^`NIl2%hPY~`(mYh8&jnFNcmxVT#)gX z2a)`PChX&OsskrvIXqfO`>@>rH@Gw5?4Yib*%*-J_6}Xb7`h{j3Mm;vE;B_sLIuP>b96=!*}cK1$@B)LHA2cTM3)-mtVG)ovuV zr6Lw!SXZ{;gdnvp+ea+5iPE?ACYDh(3(m|PZV5uM?BaS@a%%@s*r+kQk8<0t$>i2f z%syIjtJ)J`*N7q`URYVP)>mCqI1)CUdHJP)L)tnFW@FVH$bw%`&Rk zN+R(jB=<>nQ|*oHT1YXA9*rbo*{iS*2!c!^b;qdBUI-8{t#5U=(DePzG3~7@- zyg`qL&9*i5b1S0>4pXS2sX#_V=Kza|J-BGVw!36gJ8iV|SE^<)S46ctp2ORRJB_rb zS*+enqENkdcqrfDaH`LJZ-f0J>d(DkbtS78%lBylOOuR(N?TZOfR)4}`g^4WR=E zNK9BPn+zlZH~82td}#X+;X_AnJ6*>%TIOL_S#1DY*;@Wh0Pt23QT3hf_37MJep7-S z2z=Yphgp>oV|lZaAv+UXYry?jW++5{o1KV(&GjaASXzOun@ z8yIM|+-A`Yezq_eMvMsR1*$b13dlGaYv4NyM_)On&lb_YJ81T+(9t$=8x3u00bjKC z6>|h1>~A&02`Uyl;pSLW$czrWUaHtrLwiQXbC*$-ygzO{TYr+B$ck#V{x(;wFPW*o z&zTn2C_lQi!;}|i7nmqzGmcH2t-^Gmpbe+IWJYoGc=k~nX83+qhrQ1}GTRIj%xbd% zgMo2#8Vqr(vKh_FpI7nyNyWJaDSvdR(q3a=8h=FCZ-d(<>)x!k5vf;S0-W{!3kB^v zMLeK|!)65U_A#3?JehmuInQZV`hBM|0M2mw^LWnuEq=|NPRyicx8Et13Sn$*_lrfg zILBwjiHq~r#-g4t?FrysByd$PP>vVejX6~aunype^KQWhBp%mn$#amVbWHaK|7@dH z>8Lx4SXwi7uGVc5){)n)uQS>K?%b)Gcu#gtV-G5qOPF#~_E|PBExZ zQ1_n(0BM&Gdxel31Jj2sK5V;}nfk_T&v?kw5P1X+dta(mFS)Q`MD>G(kt4VKkopk2 zTO9+9c@vpV3#Ag%1(p+JQ&^6X#cR=Ke}R34zOWgGap4mI11>zX&WyAO_E}U0$H=`s zXIHieob2r8C}M?Ip!bPjQBk$iXn@h;K(hY)7UAV3L>- zysv4%DqI@RQe+s#7xt4nfc?&m{ipR6p3#x#CDK0EeUL3(02}^#w4e*;P zaiOV3b$06Ff)3K#K(JF%ysfu=ac)<>SeoW&Nc!a#h>pUgG5s*c5TJx1W;E24e+gvZ zT{3ev7bNJcg$y|MnG${RKHg%~%*d(;M`I60^|v&rl$ZO<@GBG*ebx|-?}hG*1(aTn z9#t(o&9EvECNzR^odl$#72x=&6}}>njfQMlJg+G5Of|QoC&}+>1v(?GFijmKA^^oP zj3M`zG9a#T%%iOS27yJyZa^T7GrFzS6KwPd!dA|cmP{Osi6g4B)x1)4xMMrVEvN=e zfEmn+pqFez>!8J~h^$d|g_aicBJfMBT{@`zrrB2VhsFQWFz~NYKAo91`op<=5I4JI zVyqeFW$+yCFt4$@ii7;3F#&_T>@@*5G02an4)VV+eT?7gV>~G9MDsQ_>Q**FQn$s# z7(We!j&|J&FQHv41JtlxuK1WqRS5Esk--Rds(PiQs@d9rSsa3G%7nxDGyw6s)L?9- zM2oEcmMt{gf1yMxm;>?iW|W+_QF8v&4ce`5UZW&1`8YYA*Q6t&pe#F6Kd2Wmzqb5q zH9h~R4ZIMpEw?VVQO%piuI3rL(5G>P(rBDe)*YcH5vCE!`r8WCXsm0GP+J7A_$zE= z4myiv8;uxl8Ta;-fBP(?TTC+4ZuoHsn%mgRGv`Ojr17UnBShs*YlMg^Hsk2PnWSO# z=F_ix^@jIIGy^&e4p0SjL6@dNzODkYs7d&hS%G+nA;511{dmDAFhHn_{njv}oWff{ ztjr&$byA;EVRn=$ZLzJ_-&0FQn5(OWQ^&&CF!IJ0Mc;!0EWV4%G%=5qX<{Bzr$@j% zJ;UY{=3&T$wvnK&g}(D79RSMlI!QIZHH6Gqg99 z`CL>?s~rbqpPe;)*d7STg7fwP^W`39|gN^$R+ty74>e85$*aR#~KG* znon0!Wg~G2NF#B8(Q!nkg3*z%y}&6ETM6(2H5$BeM$T9?o8|Nk1L|h_7tM3~TFqnT ztGMdSF~qr6bwZYFx^;dp%F-FKlvMik@w}@*({VM}$EY5QR*e7AX12$}Jy=49P)bA_ zTh7UuJ9_)zPUmgB0eqS%@Tp1;{tagcw)E9H7WEq3O;cD{?;UiW@7O#Ky9S>|o5vYq zjgL<%fOIBwM`)FmgkoKsH;u**9(@Z7=fgsjE3-zWVHb@rLNyn; zLt22du+0?RXWP?lSVW0Yx3)iY6h{;!L;Q@zjiC>e*$5KNkH#xB&czOFfP+ILny8JV zGk`?k#NOx;@Cc{`lDl?0)dT`85+&?5c6wq*XeB#+XiDEsnQ(e0n;d8zRi}^XlW~?{ zHk(|s8f|jmH)+PnUCF0f<;0PIbrb<*oJxo_vlxW$BTu4I-7@&( z3Gt7rhHkD4x?rvw5*O#4G;xF(nt3vm0hCumcjDb#kJ4cdw_!a{-&BKBqJ?po;0)I} zgjD3-%RhsTPv%0WcJAQhQDOn;W#DU3bZE9V8A4GO8In_;kPKoYY@+o9?UN5LbUg|i z%e}9O;kYr|Wz&BGLr($QXPgIqu~T{jLwnDk`N&W zbO<@%xI zx@8DJUimF}7qSdP_jT?XzdhZ@-W%2sV7WqvXE>~;6GT2YoA;yTK#06?Y4E2G!=;e| zXUkJb5V`oKpRg6g{4*1t%tNP|2|qb$CE)5Ii{!6rY_h;Cm0=dOgGL>boTfVlg5|k& zMlf>`+%+)EEQKZe9v;ay^i_!|B2E~X=7&g=&AQzXf(Ow(SZBCJo(q^6^DU}?pQfCdTTmR6hl)_i$~9f69HjtdQt|!hMr32Pq8cm;%QsQG zBex{4^MXamjxa(Ubq^L`PRwPIS5W zFtz4TjHdI|Y&Cy85;gBu5jF_z$yJmmiD&KHXc8H5lF>klI^1iVs2z3NtZ^GPz|Ke7 ziiE16-eytvgzP6a_BgUnmLsbJpb?|o3_-J?P6RI%&Ve)hTz?H}pK6E4+takaXjC%R zQ*rkkR!9C+?=aJEaUas}nduPgq*WqDKB(G|M$_LCuvCCNX%5T6*(HKPfHr(4J+_8E zS(`q|zi-h;x`z*m+-KD!eNYR5KC*ujeNr?cy7FCZ(UHrp(g1!8Bit8NJTJ<|XruEU z4o?zu8}eJ8{eu&Xu;zmkj42{&qv(SZj6Y-(jGtbsbMMsz0T={F-CiR=bG7h9fX@i{r7#3?hZN?H9}j!0Hn6Sh=HZGz5lWFWC*cNvI;QMrO+l08dLNRxo?YkB$iB9!Oy zHZ7btInQl2C}$hpi-=xpg9nL42G}rFd4>{_R(4v~FED}}s9(}yxWnHk%fhXeDiU(R2WBkOV)`B2)Jh&lB ztp)fZJl{;1MCeWB;;4(u?OQ1`Mf#H)zBbNJh$ckth}pN3Gpf0#d42}b1=t@4AD4Wn zDL}3oAvgokC3|jCd_+&AZAz||#Ss8XL5cZ;hwu`Z;y#;>5SSj#nF^-Q?i-NOUj!TL z;WOBOhGuM@&Y}qo$R?!G*KZ3hd(~(}h~YW%oI5(}dmH-$jDVuaDZYoK?G%{@#v_={ zcg8pUF3w5Q`4e$9gP-@sRGI!7Q#04Jl8T25#~BxdgGgIp#|38jqok}W)YIDU2*;VI zT2vhKJRaA(9ls+*?ukxm;NRRt?x!T<4sGC7xk@3~v#1cIO^WE$3JH{Xl{R!sGNx9k z=$KbYq~;tS4$f{@nd}!$=WHI2Vt(?-@{^0Hm0D!{5tg4!_1lWAiA*S zBA-^0W-830j3fz{pIfWL2s644bEfi4VFS7V+z*V)~gmrB+VY11!Z>{c zl#)@z;0)_}gVi?radf zZS3&5ECCoKgU|HRLhznBp(gz$U(U8itTdaGF%;NrP8hF@<+qcn;aRrWXG;#~PVYL? z4x&@V1$-#-kBT9(Ov4z+j1cCsSTwsLnIz2GDm6i73gbuEw1E$0>1xS3<|EJvZiSzB z#_><%E+{VVw3xY-05424cZ^EwSQ>~^x6&k4^l2o?Cz3efKFz`oTQ30q)h+s?PC{7q z4%!^e-Vp;2z0(9y>Yez0P4AdWr(9 zHdxV%RNB^gYW$vTPgv9Q%Hg26p!d5u<8N9$cEpaj2HUl>XJW5=<$l|u2{gr$+5YX_ zJ=(dd>!$a%-EaCk#r1wxlgtYW$HQH{Uz6sNOFhd8>@kVgy>Xe?X+h0`Tr?{ub8D() ztqR;Wkhh&|FQxIWNd>{%ZWg=9+r}K*%muQeFRLM9LUjuW87IU4>IQz0TQ$;h0$4^j zrp7VHl*pAFFuciVnyA$@y%r`M#g8mInVhxn;96C*$41EsV%T<3HJMu-*$!GTjt(827|>FIP{nRcdq|gS~8o*6{+?kW_Af zHPhk`Idg4wx1v5k+wc7c0=0{g5^yqU_V}!M;aSN1VzN@smd@565)Y65W`JM z^~4*#lmy;o1~@~09M@uq*j(qpbIS>1$ge$Csvuq)#j{3v=(F4p*FdY;mPmTiRkOQNT2PB=Dm>Z(8hb>PZFW(&|TbDR^W? zFIzfEiD+o7pH7WG7d#lPF@dh0XQQw!u;-H)s^es}1eBEG^*>+I%uAplzu^8?#$N z8*C-CfhhUq0d3$?XakpBv{h}ibrHA0WZT@dqkuS~@Ec;*^;+ymPH=}iW?>u0G3#1k zvKDR8l?bY@CS}rPslqU9hCl|zE#fSwZQ0fQ#=H%)d0NO37Mf1azMkcE&`r_ik|1B7 zvag>%pAVx6*>N$ebrLh9GL2V_la&Td-7G?LTdy@a84)IJ4r@Va3^#@arJO7(dzpbh zlZ7VXJmiKE)0*$t5{i{jBW|7ReGL8Y#Gz}!(-x(Yh6JPwWRTv?*13&=QiXT38jos1-sW~gl+;5 z;E@XpJSfJBndQ>@(vxB#a>Y9k;EG*!SMxY{3UM;M$}~ts_By8AB&ub}wMhoQ9}M$b z_t;eQLd_%>jc+jf%w~Nc#}`G8$Yjo4VHQe^Hn*{#<-LI|XP>tjVDIaa_f;f7j;fSh z?$(mWy7 zbc|y*MkX1$(~2v$SgF_A0YZUD20i`6IcH98LxML%B7`nNs8gn@&?e0Y&{1986w+$s z9OCQ;M&byW7!dhv7%-*0uET(uEsRVUmb996k(dx9!k;qE5|EQ~*e(p_D|%fxmaZ%y zk^*&beekT?p|=)yN*^ZA`oYC0#e<7cR#&omzD!dj4=zSoVY*npk3y@iB0`ueDS@?d ze#X`?lZ_zSxFdPAQ3#c8sY&vk5pFjmRX_fo!VP|_$qO5pZ1(+VE=GCD=Kg|()_cDj zf@k*}Y4A+rPZlkn6e>F#4d`>DhZ8FM+L}$NM7-d8_2kcafpk1~$6l5dVQbBndp`s_t9J*00 z(u-AH(a7&wx8?ciEr)gOYB{ghYZ)wB%O@4LsXapXx9G}r(#`j=-QqCYy)(3XM`-u< zZo3yY(;UL|q5IoA%y#b%?cNpIJWef?L%h0r(LV_ljF5U*I zZ8dt7o4Ip20K#+DKK1n=nvJNm{)4&EKJ(RDRnd}wvt)p0QFVi5W@`fPpb z`r8&O^R4(WMJTDcC1bo@s{*}_s02{oHuTz19;>0qVY+Eoi9qC?T&e5ABeVUw5^sCC zu0Q6JMhd)LuHTz>5EAFgUT^z!eaH@W$KXmJ^L#E3-C?^T9NXD40wy?zcksa3K$V1n z2!!^Fpo3o_uDLU8$f~#lo*!nT#kf8H5-+zqtLmoKN8y>E)3G46EK~|e;}sF}6SCi8 zQ@<&0ulN-TYp^0ntu;j+5`YNY#NdB@b9~O&)PC-pmKeQTkHsN36U|l(m)qO9-R-vr zxZNq!wqrg^>#swgm?|?5fb3zDz)a8)yyl_9m>ync4-LThOaX)^14y6&dd0|1T((1Q z$ZX_>%$g&V;bi0{JbC60i@b8Tdxz1OJ9Ypu>N`m%iK+^WK;WmLD;fxT+d2uE66IRr zO$nfCn!}v{*AxnUv>3=Xc_#E8H}iFSxoW%qX}Rm#(O)CRJt-V|Y*zo3&2D`$D?evj z7jMkU59p?R<%RqmeYLf_{$+R#eNWk``r1J778R`eRiAxfcd!p?zb1;>C%RDH{v3Ow ze4##RmHM-_yh9I-2l%;pJdnr3-Im1}J|gY-Z<^}ZZ15Bw5*X`i1Jqa_(Mf%=P%)g9 zA6IqqsJw`U=l#Ck_u^G#Brjk8EP-JN^FlAQ2Yv0h^W07udtF~*&xYZ}j1 zyFI=;v)LYdl@#c7fKB;(0gHj6MU z&^zL$tbC3d1oRIW=nqYx>$Q94lq_TQ$BBDxw4wv&iqVA=5|KG1E;TgpL4hbP*S{*G zeX6k8ioLrsrFUsUqrBBRlBJEaZJTboWk6DZD@^AbpYw^%oaybgI9gu%$xaRMARNP+uf)+X6Bxv%1>X+bvbQOl@pS;Imhzv z1if}AcSPmjLe+FxC%`dOC-QYI}jhzM*N?^8;N2xN*SB5ZY*b|U!fv^FnYLxioGo;Gy? zPELdfZ;C`(YM*ZEly)86KVnh z?cN`Z3HLL~Bn0fw+Zc#!NRc%t*w4sb0qy}*BS;V@z9AyvtXPSdr3{QnL9fJ>8N79t z?ctxe$t!aW!#zWY)m~m5$Zjq9W9a(F0YidqB`@#sw)uny+I&sjb>Ql2>EU0i5)Cv~ zz>%#fT|nQTkBbO!PYVz|FY@DP%q#@EsxHQS| zw#zF6=oE>}dwokG|IHstYEC>DU##JyS6ca`q@PtZ#MhXdO>qAzl4SZ?oskYss9eET z%F3$(3VG8-ArF)Y6IB;4MGMV+-_)Q{^;utKeuJy!ap0X(H(>8gfT{wgNO$OFw~)Hq zad`?CP|JYQ!f2|RR%tt;G~uvO0N>3Uz0Wl6tYd&wR9e`?1!{3Df{!kyhp~LAlmFO~ z8-od5AT_CYYZ%)J-qG z5<=R`0}lwfYD`UKD#%TD9J?I-A%L*r_2B|kdRwDEU^7uDrvNhLwH#mreBmq*3cfKy z?N=fE7`iA1+txdM(WLmaMP4Yg1`CR>A`_{>C>36>9z-2u(CBf$Ld2n-tBXGgl0rv# zq7S|vVQqS>!uuky2kY`a0}695Px=GcqW<9X4xF!%xHFs%qW82=Kr&k?ojs=*uW zB>JuyLwEpH%hv{a@>xVZw-Lo~T#$m7_Zk7yQ8~j22^(@03ySphsty6*+>(}ZQD#!0 zrjnLS-UIKFI3V6F$`M~-N_W26(tL%IDH@LFEE@Z2i@w4t?tFD(2%_L2p4@RvFre+L z6ZI8NQ|GHykae*!8R?A>NUm0b5q|?1Ew|5nG|o8DygLqNHS@^qH0qD`R|ZGN?ynLUHkKUxwfx`PlJWD}mhu;Mia;GdG)czeB~BPea&X1) zSAd}F;bnF9$ZR){B^n%9adLAjJ1;!lN@_ZL$g<}>=iD;9WV`eN7j?nFhE)C5c}O~g zsDbsLTHeAv51iz^1%T=PQgK!YKAN-8RhZqU5 zq}&Hgy!~iA-9C9okI4kPJ#R;EHQerH7$EYTosf~@Y1dce=3^X)HIg{luJJNHI6%Q8 z5qVSMd_sTtO9%K1#8qwzo|ek%)>R1iM1_D8eY0t&#*;aO4!*r#XgO2RxjLdKpU@$> zZR~UFUQ;1(DoW%`=Qs_b8u0kvSa%+*3&>yuu^p>XCBb9X6AklcdeQPDsuEm!10EdU zm&RHcAS*wn_q=6Y=}y0F=Yl~LH;MD8Nv`9L&#A~N-_bjZ0>vXUwSeZ}FM_O3_ycg| zpI>C1P-t(to^kM{VfIV3W$;kBPH^M1hRv)a+a*?cJ+O>PLA09&gLEzPg1nXUxKxUx z7{uptxnb|>3PqpdPXrskfQ=hkRp_q;+l!wA3>XxlaWCUgw2q-#mSb1cAGB!5tdMo0 zq1o?$Y1#GZ)ixHu|+@SQ1NRTZO6+uoH)a^Qne^dA;*_8tM`d zqnnGK&eKW;-xTve8oS|BcqnL8H}=fW8|O5S7IbURjwdsT_v6~655;>rpX^T!N&Gk` zY9f7lS(N&_G4@(RAAXkxkKSb}bijvy#(e^`GVio|Io6k=6a(I;VHYWHFu`Nq>46)2 zc{M=%3BY-?<+sfmwy&d2Kt*e80#v{uME+lUT}-Y{q0r%(&W6p#l5Ehq#&|BucSn3a zIVumKYJUr#QHwTeovDW|l0j(H*p6>$Y#9a+R2G+^+$`#);)#y(GY#d5uiZKh%*R*$ zdB?tPBOdrDfnIjEi2HkEVs{afOzh%bn%Ju?$vgzDC;i-eS^=qPE|aumM2-dA^uYPi z!%0$+AoKgqjNrr6zw|oFSE7U)$~;S^`62%5^RJ2W#j^PSD%1-9X%*8XWEA!#2>vbg z!Vj&u;#FvQW{Roskx>d?g#-ancIWj2S31b>J z*6*<_Xg}3ZeJwV(`U=OPHg1Y+epNm$6!Zt+YjX1ego_C3q41m|`W(Y9z=YMq#c~_R z9%r3`(}o*6IBmG`P&hrbikT$tdCho06eM~nSpGVW4!1#hyLRw_#TTF<#Zf;Zb#^UhHLA zBD_)G2>TlQiE=jv>2S*JRENC?H(g=45n&LNG^r0yMj+lE8SgwDc^n1};fsMsM;&<3 z;d~#CR&r^@B~}Q5M}sypraBQ7Ki0q~T`Aft|4)wlYHO)Zf^J9;a0O|7B|&hs8P ztgZ^WT~+kshByj4kD+D9*3g0DOL1L|<_F$n1Ri8?q>(ZrmP@|NCQ+(MB!fK3y9)(f- zjW3wdtWIE|b9fH;q5f|~K5u#ohu7Cc7CKl*ud%LNn*-110z7mjvJjuAZt*y>(0v$b zS9?W|y&{5R^@E|_`yDqdCL8y(;9rDCprr*M-L~FS%oaLA3Jy4j`jUT-6uh=&Ib1en z+!(ej2gy(S+^%4gf`8MBUG0rp+|3(;sru|R)WUTloP=0`2A#2`>vJvOVA0$taag)Z z;!LUNK}$R5$uJX0= zh<%7s6V|@g&`r!73jW>A>=a*X3YLp*PS-Tb>D)6za2gjB4_v=x+93tg!JBD!l3G9^OO2G)~+w-QPd|Pi>3d>uK zn6LUVEkTHXzYxDzcsv&Fp{yQ%Q=lzc7A4kqmn@`9(}9L8W@ecUbkwLYg-s_UX3{dg zxMIZprLrB@Qk2 zX^@+~UK90P9B3sj0UzZPz1{<9@w=?^oqvTYrQ{eLj!a&o6Neurm;&sa$RZKyYj(Do zH^mh0HekCN>K%u!^gMiQV&8pSF0s-4xw_QY2tyW}B ztMP$Xa@;fO*{71XC`jtQw&c?EHLE~*&3Jpu%U215-V|A2LChp7lBx-2jNe+s8vS;j zwh;n5#a1yr9h9cd%MYlQV!2p$XQF46)9j(x=R^NHghGJ~|O1 zP`02d;v2}0rl1su_lqcoO08(wNNW3|jphNk{3|shVa>{qTc@(}6ZUAMb*KDm2V?Zy zd|FQo_(~Y6Swi1L4XK zdS}G?4!VthG5-)itHJ>NDZZi^wdw_nCsq05A%oRae%N|BI@TH%qVOE;Q7hiwh>@`# zUs5i0K)i;%#t7gECg|#R2O32&`Y-CQ)FGE%M}yL*ph2UU1Pv;?C-8`C#?Q8FGT<6G zZfk-Lu-h#1F{E-+IYpiAR#R#WEQMwT>@2+>7{^1!ti0VYIRIz^L0pC`If6I&h!{|% zuKuf()*?YATMSUSdi-eojQy_k83m;7$%Ydy5kKj9vTS^%H#pN1eyJAq3W+00TV-c- z86@!;J*LAxy}&+_dO?#Q7Mji4<0eSENmC2sUu=ydgb(^&mEi<3?SbD5SV4k{5P(E_ zMn|A#e(rb%7UKVpJAO>dBD~#Q@bvm8pRqXORoJHkK1FfU^cF6XcJh$)#18PXL}pdh zC$kf`?<2xmVYBku7(p4$^nr0lIG}ezlChGHrMxc}i49pXVNF=%LODLJQ!ea7Rc9P& zVWw44j6Ib!1(*208H(zhGItoCk5=*yx)YAn7_`4lVd*ggz9kBn9F4PbpPt&2^4e4Y zp%c&Wr(eD&J?+a2B6l0|d08nwC4C3F7WWebe{%#7w1TM!)qOw#3befA2pYbBkblbq z4#8hO;1Im;2q3W0_7V-`kZ-T9qa_IxV);1JW-Y1H0UQ$NXs10?8cb5JKPb2IjcRyw zV1_7p{=4ZUz)niN&7qfXP{Cr^|5e2a+4j1xp_h^Q#KoSpN~A%*uy{|{i!jC zI(hdbj&v4o#`Em9IsX`HvTbEh;^=awBG{Doj#sa)WaVdVFrgYSh^}J-gOhswjY26x z29p#gWaR8frLkM*j2XkZO3E0nX2>hEj?C-o%v-g2W8;4q3 z{ioFrsjmRde8>E%&Ts| zHGFytBH=nsi@VA)CQit(;1CAK90mlah=Xu<)A2)vmyrA|(*Sc4}YsukXAy6eko6WOcpcm=(PhiUPWfLkC_HoB%|cx-P{nQ`l7FW}^o z$Zc4bs|4(y2lneh_rPk8YB+7JFMw0(uE(w(eo$X0N6PBO-v|)w#0YzjYO0k-E!1MC00#cK3;;8a^wLChd z;}GTn&$+uYY(kF($d0H6>dVko zkf;2Lv2%mW(akw2b}6m7JGLs@th`Wtgx^eRaecq48XV^i=n^cX*APf^IW&u8poYy+ z{(F@k=ZLaYvE{4-9EzFJRZsKbR?O9@Vxa2!Bg`_l+u zoK{K})Pkl)k7@6~ynMH@6%DW+tKEas#taPnXR8{JRWhQ+xE>40Elm!&;8UnWz>Mio zzEI&IX)KO(g=utm>?5;Zpa6YC@$6D%SP{!SA@@#NvC;`1_Fii6hS#i0W~4y5oZ%N~ zOw-DyPC0~_U%*}7Dt=R{_ig%$ytV>ys`p*3A9v|*%xmi+$~d1%eLOKkwxD+s`2q>n zNnr4(ebE5ca2m)~QvEgtGemF$k6IxOk!V(>_%Y_XGK8*e>a=Q7J@=#`=KpCV3hyyb z5(SH8&ABkjeI%|U!PV^sp*OD|DpNrc$GGcTZx9`xW&D+w z|0t$kG}L&gM~thzN8l`?YR1v67w~l4NhGh||3}nR_sXxk;6QhYK=b}D?R`JKH}#$U zQf>w-q-a%Z?W`2M6DcB&Mvw03j1GddDP+0NtbkM6-)$7(EpA5edk;t~WY`D^s);4( zVg;=xF27+|HuUsFv&k1KAA1dFoa*WruGuuUF`yh{v76SnK-?x9P>5R5{G!Fr85Ijj zh~pF`@E8tFIwby{b9ne$P|KOK%4kmqmx(47a<>3l7%CL)6#gZbGLVx@lIO)7SmIYl zipoODOMJ*E8Z>017j>4gv|V)3F8&iPHjOQYQyP-wNeqMEVDzj!>DGcPG~h>pa^Hdd$1(?|wSS9M;v-43D;V z=CnebDmJR`k|CSCuR+aD8^ZEH+B+yJm;+^#(O1(sM3)DWjYAZ(C}J*hu_J(y!1u50 z?YiPkU%2HZ{QoD;l*sPVt^NEp`oRuOkJEu-Q91Q?&Hpa$>FjlKv(G0YIDdvYk~2u~ zn3aLQLKU-%GZN)`uhdwwX4hiGY+Ax+YaXT?B@?Lzd)Y9@%TZ(R+?P7T$!hC7Gi z&RFqK75gXE3@!AlS&|^@pZuS05 zdB7Gh&DMVf6J@7~A8PRv`ktdu>RDr_*=xl|a|+N@b61b&0mWY+^Y#CSOZ{Q+HB8=nN29!ehmA(S=y>+&qVsJ1mO^uvGpA(Xzu(x< z14bqsnDKzy*wsb8Lr^j{y2zGcSf4p%|IL4Q(Kl}S%muGP^Y`mF7kd`_7JuNd%5&@0 zJ3-5ypTi;0G)mv6ze$Uwu#`1-e>|RfNoe+-3x3mvlXPU#;X&yV{O)Ox!-=6?Nn6We-D*zHMZC+iHuU#v)3Ayj1JF50@yi~W|ky0Ge_ zs$gBsKN+8c&u$ZGFqnW9xK7_=>RHiCAIH{h()&cL(R742OUTKawdm=f857PB$231R zM6jiIXNVX`v}db+7$R8N{RGMJRUJ7N=G8wM`kwk%2r)7jeLjr4O`v{PFNDvk-p}k}TmK{`yn9Ym@Bo-4F9A5Z%7ll;c-ze(ZO=B`B8oCG}fy*ern1qS*hXVnjW3KQ5=z+L5ya0hXPP*=t6Tgdo>$ZPpL?f z(5k5GRfdX~vJk|vBDsoFYLb?1)ztMrLrrAuv}?j2ol=paJFSYc^1CkFw!gxz9w&e? zq6tsW4tSF9h!cu*v_6HKcnMh%@&8UWw|Gmw39pFJdtl$ zAvpywMix^!n9gmO$^cW)MhPqxXXh;+l3=Ug?t`aZ6OF3+qlaWj0?g(MFv{1MGd4Q6 zarGLpmcV57i?0;5^N{iy(h49FN@lM<7E{Y6Br0p+L?R#YlZ*7;hsc44YC9(Im4kd^ z+~}s&YEQ1U`2K>YGv7ozd&nseD1HQS)mzlA$_u?^{%%m~Y0Th6i#_9w)lg#{$Gz>5 zHaiA6-uK6JA$lkVZ@*fgklo6MWwU;P$H0cIfWYfisQY2-4*+0^(DV2?~3#$bKYJ995kK;(m^5%I30;ycamceCl z9RVQ_mUo*OTpd^SWoaLajmrUbvUIBXJ@nDRe5^bkP!-ysg?g{(R_+ZproTgX>~BAv zv%YeG#|2OK+MLQZ=nJ~$U$wD*;RSox%XK&$7Q^0*;=zEuv3?~_2ZOn}IRZNME7T@? zpl*}~8*sT38+us(kw4a9oUaPE?40@PaElXlb+|IXa2s015|9WE#|W ze)%t+)jKJhuLf0FAM@1uyWa?yeq?rxJ?lTC{ft9@`DlJmJrnv@iBlFiK?qonUDQ(l zQGLL)+ERU&Vd%X+Nw68x!+G*Sg8(oaAi66x4^F>aAR-*b7NduYk_A-KtCzQ5Y2596 z_`3GnSlhLohe}zJ0B%Z=_2X5)J(D?Yap4f-AB{YF3_bPyXRqLD##w8FpCECVwf>yq zEGZg&fI%vSb+kS!FMnTO8)=EO?W8LfcwW|`LTXX??PR5>^Bji}?#as!OV7nGHZ!ey zBg2v2$646cl&NY6+np6URJW!zg`8EKX#veXT`O6YdMr3AvN(k&d%XZ7A@;buOntJ5s!tp-6EJLMJz*$bDqba@!XnRd1)!?n zLL~LPC|{sT#C;S!8I9g~uTbWJY>)fzWbU>12f)y8aBPPD4Gs?*2QK2(KvD%YV-m69 zjyVXMjs^tQRZ}_6`8#cbN1$p$fL4wzWi5Bt^pxW=`ID!a$43_BLV3Ab9rrMN^y^QZ zzoDRaU3LP%6-^Ki&f(cDB1idBmBvtvZe~Aa8i59Q;MJ;oBsR{CKlP{Y^Pi(1&*-5| zH~Flc&mE57&~}C~1J*ksbT+y~8C|aK`+SJ>^~b1Wi!xNbCoylpXv+9ti0g%H1510CQC(gQIzE?aw`f&G8fzgxoejE+@@-nS7ftQ=%1JW zpbF!UZ`hAxcq6^Q>NF|XQSeJ4GEH16K*}HH zDlhvJfGEGJVh@Xtx9q9+Pd+aHUPTtE3xRM3tg_M5n)Vr41OFMy1h%I8w9fy=5YhhR zYiSEDV@cyoSc}Uo$_ucc_ICzCeV2Ze-}e^9^f8=8lMMa!=6)e%b?F80rwrBFR^(E^0-7>`%Y^V?9~a>jYUodRft_ zZNe<4k1IbC8PkRp_W!(QRYGu~P=iHysC?-Qb6W!=b|yVo%ppC`jl>RTS2;b@%&xt! zwt7V##Eqb_<>$z*u>2g1v0i~87!xjglBDZj!#4!PEx}2qbmmj}&}RdcYfqK->C}UyKAsFw#nCisJgsp$%(UAqcv9H*%MupQkYV=W=lPf)-`uO-Ncc4M zYV`mlD=PHdJmYJ0=g?RZ!e~zAVM7d{Z1hw75br7(R*y|x88e5O+v8R6v5i{@Gv`~K zuRY4wD8`)ChMF|N)c-5zwTLUSI&XRJPzJRO5IUB1`^PQqm`%Iowy5P^xxGL5gyVx_D$8(&Yzj&V;} z){|g^iKJqwC#tP=VKKRnuq<$D;C+Avp>TSw1Iz#H&@8BoO34a9%$%waDJfaAB1OpZ zB=yByXtyaPoA%%r4j*47-2{hqSC-fko*PZ$4#Ev{m_aFk#Z zQ~F|qw7|gXr#4m;>yHH=$F}Ka?4F$Ca1KW0u+d+Sl-ejkVzrE84x7aRy3{` zy5`^_Fx;~XiR9~Wi40iY2kw*k*5o*ZB#5wp+a)7fo-*t@0`l#mrwDQy8oTy8Ica%$ zm+5_Mx@EU5i)Hoo;QHyujq=W;@1@YJI|e48ftk%(;tj*;XlHG1VFf*P?!M>Xw6A%alms}{@pC;x178b3Bqjvv-p zVa{Noz6i@y+5%Q&gN^{%;BEeUFzvr4afznAC1Q;(Ztdzffjs1ErJ<|CY>MZEY+&3v zEk{Sjv?(gayfzO)G)*6Q@4c=Wg-yU|mD2(8cdl*nchG3+X^4bN2};L_PTb3@2=PXm z+Jp||QW8hDh@(-|9&IkaC#ynl`(~{P_+BtoHslp=0$Br|TQt{PX(+1AfUQro+9VZ8 z{Mlv^8rf)PKJYU8>Gc16i0szJ+Y8NLA?hh0baaL?SP<3he zUB`6u^{!aZzBo)g&Sv%k0Sc#VQz1Q7SLLIRB$?DHBHD&K2WL@R~v_n7=A zRmSo@$vG9kB$l0v_sDX9N6V@1EmyXOfvGV}d(M_AFZOB@BrFyZi(+-?h5tegEGk}r za4~k&XYE-8SF8>zaM)E>Tt$TX1I@B~2IWoqTqbT~5s?vf_+)?Sm8(aY?9UZM;Hk?u z_lfLZ>r$!Fi4a+#fL?885(e|}vW_+*wb`kA%2h!U6bAsI9F1_U9+)tI{e8SC>My@d zXaMWw2lbJr|Doz@->#=~zz*{7j4!Cl@_LKqrH zDj=As|AdSMGWtrhZXLEfQa(4FQ$^&FH5DE$K3{tBz2)=w8+wfE$tZ5~`I+~g&-WD_ z@m<3h{TfqN4B?DX9XVtCgHdo{f-$}qp9 zYGeF3q-y(Hqg-t*yM(ncfDeW%T# zhMk5sonhw(rX%kCAaHAoHb-p`xbqNl69$3m2x)VKn!gb!h_bFg9hqYPUmc~;HBdd$ zO!$+zt4F(uDG5$yz<9uzl4)mZQeCh%3!hH1$HB~O3M<8`Wke1}M|Hh-936;^xP9B0 zhq7K98z1Yn8?MVkxK07;`VX#@MHXXqM5SdaTddbs*khcu7HVaq|8JW21BxgHGLB%? zKK4JDEN>6|dpNy_Ll@Q`u4|ac`)J-kr1Yl7V!;Wcbda0mLdS8sK|=TbzoxiQ!4% z#w;$x1Z_5>z;~-L@WaH_(MI$Oj{wpCZ-Y`?xPi0F6e3&NjkqXn&7ddIsgk4+e+o0M zwwD9h_hPT6lsL6XNQF})jd2`^n+6&mRk``d5g_74E#?9f{exn{9P|z*8fjF|i)GL! zmKRdW4+#W!bg`yOlVo9nf`=i@N1HQ_1R*O&3n5|+X#oE8%bSmYBu{C0bNiFV^Ffu( zYhw5jN_p3MTh>)bl3A^PQc-as0Jen-^BkMG5ER+Oh45&}#iGSZ1ctMxSK4*tmDhx zpC~x+K%(HX!$tvW0%`MsfOwzpLG~Y&qhUe_zNM9VPkWSY&1O5)__kX5NHhA6Rz`e( zbas25aWY(`5$$sd#Y%c5ziE-TmUwq_b)?wB45A{??SX&vvr_strCOXjW+U=sT1%tqnYNInt7C=W|YKoHg|^@5p%Zz%h`7H8;z9Et5i!&pSbK=vEi}x zm39SKGB!-N+r`y4xmm4r8V1KsGJY2Ho>44!w5Q)!v4&h z+;H70uzyalXCpG^AVMI%EmAJuua-Ky0nm-0;nBiVyP*w{v^cLU@1EKP?Y0!UK&eg_ zIO3@3g37hJU}J?F0sVFtZfCsf7%}WioVK-$ zvdtl0-8-Fh#$Zk(=1c241Wx^v<@?lkSe)h#8klb}%S3uWZ>u@vSjMoln~laPHgByz z3+0#90Lz+HB*5OXql@)nf5%kV|Jh(q$Alg>?7!U>NEoDn-WjBPduR^8wFg;!#p{Kn zhbJUyy3FUzh*-v1RxR&GXcMhRUE(%eD5-CR38-N!7MBT0UlfvLE<_YH7XRo@O?ow3 zR$~@7aBn47An=Q}pP+s~XO9ZOrn z&fm%x*K2LdQTh%!x>?8!k1WR&7ak5QahVC_;zm&TAZ<)@7A=f)i1Z{(X`k$zE&%3uYB}UTZh&z~W@IKuu2;60dRB7gf^~Sl_s6KE#6_;OE zC%wrrX2cU%oN$l5c=0}70Ja^v#a|fLdmbC;onGIr%)a{PLWL{J1g&qeufq{i!dF#1 z(-+={hRc6Ylm3k-F>`+)@%2s8UnwD65}x#z>~^-&p*Xs$DDP1{^c&5RT}{V(%Gj13 z+W)5jBA=kA&6Zf#QomerVC^}g9Vx)7Epy?PeM3${Wc73lcc*b>o2nkE+aYTk8QE$| zvQg@U2Bgu%3({$lOL{4J?X|@78#zl&b<$PpiXs$|k2Tcu6|>de2YP{qsK)T^`D8Z^ z&d}mN%DDdEaqs+U_PX=O_|Iol{Q1@6M75jSuS0hD38|-i^aQU>i{_YFw(3MR ztB#*%sK&{@e#H9rGqG=L`wE|SHUye+G`TFopRW{cu?s+MpR-NvB!`M2m#~N*iVLRg zmmlvt17pDvw?BukuzE2a*b6{JWe2MGOk)V_QNB)9^L9H!l8D8)s#8E%EvzIYwz=EU z+suVpNbTB5K_=IA@Q%puWeOSEMr;rSfr}M>kCA{8w17<7);5G`<(_RY7Mxj z&**?nTu{kn`7Z{Fc?o~xw?YX!ba8}_A%#C69g2X{Zw0)7suzS?g3s|b0y6q;uT6Iy zzcq9akxRl0Pvim!XL{S>1wYhp*UIXrKk<8Cn$i9ccD!gfnP{kkkWSxGoK@vKKfwM= zLmgKoh_uIq0Wy^G?N(F1%~*nOm#-FAbF+JKj&FB{3d%RyV8Qd9EGg0{OLoBEoBT7K z(uLsbF=Q|<0W7p-?;7f==63Y<>pH)qw@+7US+ZmCh7g3W05jHa=gti67>prHj3YE*wt=v-!OPGMSW>dN5eS{VY4qAn{7&B|Gn<-n~H|- zG&s%rho};4RgUwPJeE={%0#rI!Pyr=!KmF_bilU88{G}L(-sey)hq0-W^n4cG7nD^ z-`HCS&ogar^?L$Y+C)WsP?zPy$++9ctu(0mWi}VNBf_r&Ct^%cHP)^MMFVPy3m|T_ z+A1suBo-IB{Hh^lRt#5v(*jl-eXlnJMh)}FLBf?FK~K{KHXP~)W)ovr`8BIzCfFTz zzPSt0Y-@P@@B|tg88X#{mJ=FHq8Q&KQP4@jyag@nDIla$bwH|txWofPs%l$o@KfGSVF25jUXKg zsS=c+k%sZwLh4UwOiMYGL;Y~k9zCdHd=3*f>mIe}zF|}vwy`0-&X!dR|73Y|EbHdXYxejMOjTijWYQ(=e z{r`-LWxMtVKzqlJhuAJ0;4#Z%t>@**{4*&xG@}O1X<`R$twH{R5V!idXS9I!(UNwZ z!-#RUpB?~amf22sc>Z{SX0aV-wezR&Mvu-X6Z?Ds1s?ujsTl|Xl#%J|S$eAaCmLnM z_0GFlLn|djmZC_e4mX$dDd37!`xk`ZaLf(tHIE^WrkK=;|2-E1ipcxF}of#T<%& z|J&jy*^wlveN}{Wg0s*&DezCx&9o#)}Lmd80M1E1D31+=!+b ztc5gW;_cc{x+LaBQl$WwIP+b#`PqDW->7y*xdr0cTy%tj0OuT2#?hczGQ95`T@u8mM%%wc-k}oZRw9=nfDy zJ*7J>8Yc8$PQ4&?Zm~{yFo-4rMo}tf8x;*)V_vyqfAn7)y9AmP{@p(?)y@0b?|Cm(Zi9BdR;(4Rd!mNvuyjP&^GJ6&=0f}ZlQS?i5{n-*MD=am{IxjCa zJbTD=o1~Yhg$+r&7zE2Vo0Z*y45=>R4iIg6C+wMOOmom8xFFE+hY&tB=gd^UcOfnX!F?yuF_sI%-bF3L&8wJL4B zRIi$d$+_zBd4XN6MBvxV4Q@x1X&sTFZGC^nwAPJTR9kx$4N6{ihp}{I-lQt5Mi=^f>W3`y3Gd_?SvIn?^@`E};@M=MkqRvuAfm_j{ zeQ}Kjx}yBD2w@Jtem6vB@wA;6OUwvP-Y%{Lj+Q^BI1-~(CP*~f0f-I{su*|#d4L!K z;~#}By;PF^v)o+JW@-BT zUyXkUl5J!Q8+xvMi&0LGoL~;?P9h?Mt|x1aEd5t&A^Ni8IsK*$Z6Y}Ur?FG!FVd$< z9orfta$s)Zz~0e(kSu%ZlBGo$12OJC0gQG(pUbsxU6tINhw;mRkNC8z34%ZyPgX-u z34-8Nx=vT#ON;*2i_&{xGexZ~sA?3m$1faADn<2ZBFNpfR@=hhlrCt8KWTvaKSjZ! zRwEWy(O{n>2}Xcq=P6Vrc5sRb^>XjUF$U*KjRCk%+NeJHjWG9^)fja4BU z&iN5H`^`dNoT9zGXfy6g!?HWv|34gN9=`mHzAno`t!F@$7IdI5%&WdVZOPeut0^<4dGyUx_Fv+J;almA8` zep-@kyIRDuZ=Wdp?o{?~Rd#f}QVU$egr+w3vRuvEM(0WNkKLC(FWRQ)VBGdZ< z$gRE{0_4Nti#vq8gY(6wrt!sBI^V3}ivw%;VxJf`HL`{;J{dkJMyH@oVPVWj?G%Fw zxi{x6{xZB((FnR;e>eyM)1!QcjgBb^3e$th&Ogz79VcT-t{3=**Jv_S3?4}NqP@Hv z{l|_%$X!kF1p^t?D=qDEmE$%hi*Uk2TH6hCw?2VhV`&2W)Ecvv#E5&tG-ax!*@)#2 z3=T~vfEqfq1s|-$Eaz8ISF+D(z5JjmK)7`Oa&;@*e^JjlPq7VBa&$~Dkz%E7Yt);S z_pF+Bdahl?iI>~mRsNjzNOHPfKc*)+y{nbvB#SRKBvW8hRqR^fKOCn8Y9i53>BN;E z`NDf;6yGgQ(S&57FDk#t|5D2YV(Bx)(#ZA&^~?HBQVmO}HEJptA_y(6rKna>uV&5g zx$;i+PG=na=RNfe_T%z*sV`yTwVU-FtW`5RQOhgBssAv9?aztt=tYc9oWsg=kn-mM+8c<;EJ{ z&D-07!E%GG!m}7erI;ox*bK9pkxU7D@pLFQ4rVUrp7*G=n^Y4cDk#Jc0YJ6Fc*--~ z^~>)`eu`!Pr-#G(*(<*F5I@+lL4kEy0^`}M!yDYb<|Hg;+uA^sU%E&QW>!?BqREq3 zN{!pK@?HUy5&~?GnReDQhR^|nITTrE=LdLbg6rgC7?YGQQ;$P;$N<}Hkl6AiY^8B8 zbwVO_a28XqGY^S`UU+69df}Bu92!e;fhh-=d15BV3s?q)ADc58Nr#$P3 z)hLUoGC7l#SE!5;S$`Iy?bH6geQzh1I#|CzwN&sLRq!x+aHzd=UNmbPo%iGNFuckL zi*%}toMPG3NnkSO;lFv)Dulc)!sv_DffH8}(^3YfMaFgbFW*7~PByE*&wsNz7NCF^ zF`l*0uUzPz)&PZ0u2~PS*X%H1;8(NdN7aUJ**jZ)#D8FCSe@*mXkY6`*=Zouj2Eo@ zrI~ZFa=Bx+t;TBasXxRmC9Oz;oZf!$ajhn+wq!FzXQ9cz#6Q`_oV?6z<2<%luRoZX z9nN8r4a!R;n+tQ?0)VM1t_upqmmd@8+TL}|D~fDV5w4rV)!bu#FUe5nx?R`u4y%G~ zVDEJmRAsh*`Ejd?ge$MgTQL*A{Di$?y^dblBd+F!ah1Vk?@3kDdssCTD(|%C1d`Ho zgPQk~y}_}a=yLhD_OU!mtF-)-{g&GC-=EfR#b;6a>?M!NtS^7xDlGU3sZug8_O^c^ zLpEOE0bga$6QkOOenE8xM%4_s^OxAt`Hql84jVES85=6h}aGH-7*x>SAz(%TmXDs7P9 zKTMdJ%#tt@2$GwFamkr>6~es-LTbxwB28?7t3ycM&Bm+RZvA18VOxc2@HG8UHai*e z6YqNV4t=ClH8#9el04@Yd$Rn`8zF#Ft=1R#_yB$Ixs3UEAaAJrxU=WKwZY9lOE)1#s1I=dL5)Z|n6g1{x&*1F`ZQc+66Oh2LZ>jN*u<{?XfSYuUs} zXfi(6&LFMbIq6$Cz1qiHp{0NUbL@byk?09jKxhTAe~X|T=V7LU@x`Xy!;2c zz1Q!s&4Q>O{5XOHK$QDg&yrl!*KkaXSbI)OmFbw%o(AO}|F5(|PEKG`r^RqageEd7 z)}$i*CbXF2h`%3j=`UpTF?Bi|2_sYhj?_RrXV$G(_pqwoliU&KB+W>e` zBLLFVfLJhlcku1!7-~>aaI1{E*SmU%-*vaGGedm?yiG~^FX_0(oLVzmJz7Nuh*XZv z^EZwM(03a+jui{HzGnqY!4M{5qvsX*pk?v(wwm?nIyLmll(WpyMdH06pJT&&%L*;S z{hG4J>rg-$TMjMD`&kV#vnWi>V(6^xv=JO#*h~Q~o75pWfTa(YTjU&Ze2}_><9P1k zjGACVic*Z>GAZ>ZF3O#$+3!JPFpZk$RNo_!PA-MDu_fUZifk)%0;LU@RwZ9jrxbQC z4Zox3=kUVA9Rr=9735UwW--Kl*x(t7KIG2Y-hu7p`2Vx_{&9L&)xGcc$MeiQGtbQA zn`D5H3G#g&({tiIpy}(PQmQt4jzo}Bf0SdrzRo%Ay{GrwcEYQ-iM(ig8pr^FMn#Q^ z72DLN77ezfrq$b~E!Lo@sYT_qRH;%MfhxzMrY%-fl>7dywZA`}nF$2SIrWbkndkf6 zdw=&{d+oK>UVH7e*VbsD@EL&KjLQaA8GtdxPw^*3iZ~J~kQ^ zWFKoS2pKh+F|hzargrPLU>1Vpl)5lI3m7y*ho>=Vza$IP;zD6Kvx>S_LA*M>OCfiB zQEypU1ymvt5%h&0j7CCr+YRc1xwylZjBL29yQ zKuZv0iVK9WHu}#XnwjXa2Iy%Kz&v9X*Y~I{UDsf5wkXpre$5+??ACdPqSs5UwzqZ$ z`bLxC?)6nMNsuOw$8#47Yqb5ntzN4yq--J|>6B^Ei8Sc`(_H`xuXVU+#+ssImlaV< z+d48Lwb7@tksbLE+!qvu6ywI7dZ~gBx9GV{`p@;IY|NlcTLel*74=oayk!=!*2a++ zmUb4iI6YV<2MfC%IO$(B0!}v)h~1-QGLUIPlEilApk9x_B;!X`+^SLGshXSn&u45! zGm(p>QSQE7-D$R4MO2FUS_zOAzZTG9II8l+J0!*X??^{uKf<^Ty3*p$)V$M=_Gc5^ zR3S$hRdP3-y$WIKG20dM@ed5zw9KBJtt(70S*AGAI;sUge3A)6=jlf66%r`b@?up# zNi3W*)PEI~G2HIclFsjX`9U_L`v0-PYqR{HzoNKWr6Gvf1ztYxFsWs`RP$(r(Imnr z>_zzU&Dv&h)Bn|$bX|g#59q53EA>#A5g_shWGrbr5+74NHm_ya*_}5m0Q;vUluS2+ zUDaj#Qbex@4*~2H(V*spJ-_Cu==p2{+UO!+>B$h-?C=R^LwF z(O^j8l>~$5k1b$12LWv|0ccJh!dyDN%AeVA+!(+WeGQYe1cuR!JIt^$TeurA=`5#1 zFD!oK2rOeE;Hll0W>G(b*75u~SiDA{%VGn3Q7$$ER`z5hv}WV=Y%;w)TNCfIF|)kZ zx-H>erb^^bQoPO*ErxA&P%XUP5?<60J(GSf;@^C2@no%>N9>ETbFj=0mc4^mq~4&9 z&D++$SQ1iXBG!YSrUr_=VGSW8r{}2|8X{>YnPK2 zqPkR~t#2?amwG?*L*3pKRaEr|ZTJjwVu!OT#apadIV(r>RfFZliyN%bDlv}WTP^X& zMmia#s|Xgk_J!TRDv`=$TCtk2uDR6&)pGGzL-1_sjY3Fl`par;e%H=nGM~P})TFdb z4$Nd(nn|jJR1xq}k2&t99Pak;Y3fFUvy)J)PWu&0dtRDe8QZX;BB$)&{FTM8Dw`AZ zu_+d}BTdPk(Z7r#s1Hst1d%elKDuwT1>|lx^tG)QJ5dV^x>r(yh5DB@s(m?fOA_|@ zSzO%zsiVh^-uK#F&{==6HMNYKjk7tm)M1}|9zV`?{7``w9kw56yE4$K5;xIl76c_f zXtuwv7V%|Ay*@8NVOJLIno8?$S~=jO5UKawvP(G)BKROcGz#uuM?xY#bD4$;28j0! zLtB&0%1~t&5r5G7rYx!0W0z^=c%)u~OWT%ld;@JS(?Oz6Vg|>;iWNx3+dnF#eP6Xz z5Zad)#6TWBPODHTDWB3fPP4g?;)^(w0ReYmol6SttKWnQwW8NvYL|7 zlXN(NC6}QZxRG&RRWB)q;dUdG&S`8xWHYho!_npSTmdN&Bh_t^*c7iP+8o)$igEZ1?w8f zj|wWp#e+(yh9TVgF=aok%H{j#v6hauT3cyJor(jD^ovgrVD&_{4O4tKBEZp8TOob6 zgsPpN{(nv&yp*EXA61j%#VrEJI-u0ISn5QT3Ts`vc)L_x**?N`JPSW)xt#M|lB5{B z{l6Gpq_#woXU*Vg84+sSj?LNc#Xl>2WQ&w7od z9g!#!1OP_c;XHn@g#V5}5bNuo88_(kqAhMr%#fy!p65ab8j$@ zI-CJ0l+zup+>0yDBZ$x3Ko_4*a`iHHD%%9JOD$DUV>6E3+-~J$5?3|lgcd{TU{cFY zSJLcKMF|5MMFJFie9v6#eiLgwxzA6^-PjBT#t)o+gtQF-Yybi%OmdE$AK?=q9*%3< z8j%5<5sBlW%i54G&^28&OMCKx9QRvi#BT7Jx7bujxP!G7r4f_XTPFnVD=bPm@bu2`T)0i-x zs$qWAFbn&Mvy#-VsH5-%$biIUBV%^)J73x1NVQvNcp*`GMKe>E^g$GhY9V^n-r+b` zL+$-A++5tIH7E0}4vMJO-G8do>N2?${?^dnV0QQ_m1efY&9mJ{C>}~^?Ngj=yUE^m z-=->}!-ObLoN<%9DCGWc6fNR~hIOdi<^~Rl{hIM1EVp5xQJ{@=AVQMfu0PAm{&O>C zSPw(RXybOy*Bcj#f6|A`c$CuCZZpBY1GTF%3T>{})J`unXjY-`Jo?9&9&<2}hy231 z%14e_9KqtIMZlKd|54#djGVD)$9cbuVFiwA6{!<+C8VQi(9R+71gHPHVCCK=+gwT{ zc+o{NIlrpT-IAmub^gHocY_2CE*`xeJ-TLLGVsQ}oEDot2woh6XIs zCMA3huFbJahlMhTyi9)vmE_@%(@S05>Yq zrHbKZ`>?u>I|g#oZr6O3W+wHV`5L=HCd+&pc5WYLv_WehN3T<&#|Db0SCmD7PxrPxY7&H|%dKs2rM5%3+$Y`Ka znLeee@2IL_wnZD8yIh=SfmOfj|KR;4)2hQBSkZ?9^Kr3=VFDSe7pcbJh3;dD3z<63 z=Q2E+HxEB3(hcgP!%iHCI8yPg%6sG!M;QJp@5c6+cA&sMf71S*ZaTsBauSoa>wp|f zw_#7f#9YWGpmAy;C^uADfNRH@63i?;MB-}XrBks?#V~2eokYpI+PcX_&79n%J`D|% z*M-x}v*%Ci%1vbF>Z`;@)mI$&(@;*AT+GeIrCj|voGPa;oEE`Mm3+Ld9A{F#nD#g( zxt+^_5$D*Ps9F@GRxs8xB}@h=c8ag``11=x>PvW@*ygwwifIaQfaO3Vz+7CxNJZYY zgv;%Xs3!$Ent(1-orEYwr4vTZ6aJ?0!m+#TSR%e&0_jRXl1;$6ZeMuto=lbIC7%jb z?*DwKO`?1-;h!3T@o`73PuTi+0;*!5Cdvu42hh$bQ51*bD&bi$D>dVeW-B6$8$BV& z$_b%o!bfC%Il+vp?ITg<6^1!MLuu=XZ^0vWjSFpDF{_WEoKg?v?6|A>hP=NGdANP# z?Jj$(Xma%J{&vYfNt=mhbj@96^d$A&m#p}%Gp)!5AlT1Rk4sHOnAdiT=KXJRozP*y zKgCrPDXvk9jXCqC7LWWOeDuQ&SSU=sT0L=Xks+-(+CZ~<$7t|H!4E9ZG!@$)hgF`3 zkY1E*A_tRc(lzsHBvR2JV`qb%qhMk3?#3!15wDCq z95IZ5yGyH-;TF_s;it(K?Z06nX~r6Q^dS7rq978rL|LnPt*?^LAqBnf7JB>rv*-t1 z?nmkClG>%0lEdA1Ge(t0^>~GkwhO;L>*%)DmT_hU4F!WhY1eutY*||OkjSQIq{Zuv zB(%LG5zM4nyg?}vbApsZ&-qlNR+xFOG1sM1Bpu8dCcfw>a73 zw5HT%9#5Dh`GNlIb}5c6U22OCicDR)5U$VAQia>Nvy6&EO|`zk#C7bigsm7%Fx=UG z`>FQ4D}vKV=!e#Q!ZiP@e2a^5`lOBv8)l8ZF{hOAzpOowKP}r}NzsD3wdJMhV2Dv%0J=H8qSAtHuDeWiLeCNEVQ z5#ejWtHzZ~F3HMG`u`U!rKWnSs%ksiVy!#z!Lq0)3&A=QdphLiQ}qoT%MFVia`AlA zgqp0I_;Ev`*NL>Ssx^P}g;P&P+rZ)_*goPl_D_7HTZqB~pVSyd83*i+M(@H&)GvSR zCtbg}Mll|m*hFV(+|{Eesus*L1WXQb=TEj*K}b0ikQ$GIPsFQBTbthTB zrM7HV@GNAs$VT#!AEV4h=J!z}+mLj;!{Ui-OPLEh9-9@?)06_A6mNG7WGc~-2)8?c z%?{Nmex=E*3iM_=d6uNI3jnX8z&?HJbZ#y!)jQ|M?fvXzLYYVtahlpJepMBkQGpR2 zb_uR_&!>(o!oKPhYe*?PloYgO*EC)^`v7Oz-4?l3v%sM{`KTfw6uf%z(z;fSk*ND` zz)Mb8m+cZ=jkS6i{%zR%4QdM$#XcJbkkHdLof3kEEkOo*iud@04O?KOFHNI560R2f zUzvi%VK&oAa0`&oG6q%!)=6?Ps2PHq9IILajAHsi{!54&U&Lro>^>-Q#gIQtBiR-c ztwU+UzD$8|R*TN~kWAUrs&t-FB;s61pQc!49g)h?UvhLLqKmG{iHT2sO$gyC>bL3_ zIl~m9Jbr0b6bKtvQBO+%2zxY`eiwBcL637)=N}o~o$i612hAB`2P%E?S9Pv64ygwH zMm1vBxGTj3Oj>+H+|@rD=UO3MUC@6x5#A*0mSk_4Z!0sxig4u<{Yx&G>%S_^*vFxK z@_$MwYoho7&UC^({}Y=JSb`DdK;G{BZ~PjI-G#G&`Q*HGuFP76Up9x3LA@%om(KOs zERlz+eGU@*>^@{M1v*5%q}8(qg2^VTzAm8$PB67lyu~`XV?+pKQR-zHzO;C!iey`W zP;}umLd95Cl`tjDtmAj})pRCF{HkfoR|enTCA-rAx|RwOt4@3?>^0W<3EX;5F{CHO z%_@XYeUBApQ!KKM8m?{!=8@ahr5f205cjqCM2|}=@d>g7oiulbNB>nbu~ahCl*^Ib}ocr?f{2*n<)( ziZHb=WUDFB-euNA-os61cinPnxaA!W zm^Cq(-~YvH-~PeREgtzY?@#HS)c+fsu%)b)1Kf6^G&cY7x|V6!CFhMhI5A~c zc6J3Wsf?qX&HvCZ4LjGCoh#T`-uubqRrJ4OCnhK~ra};(?sjl5Y?9CqFYpfxax<^yfzwlZ9s`$qyzVEO3+!SMimC(CSp*N<8E%=BkIx>)0@;R$C; z*8mE(q_JL&)(2fMF;rf83?{6{d^LjH2XZJT9ifk}Ad*Zui;NTNei2Ex zf&wNp0uqtvoLD3hwl-EG62{4igc(g<$0sHdwF6CNkw_pHlu3CPpFEM^M$sY>h{Deb z8Hu2adJnn{iHtcoO8^JM;CRf4gom!k#QLwHhDkUGH`-I==O~`}Mq3=hnVj7t$#jim z*kDDJsU9w#jH7u9vUo`iCo!6%U&Ob_IPDX_OV&AdBxzm>5GQ~;Opr2k&`)L~v6cxw zCi0j}22&{%hx(0>D86D-l_`KWvF4Wg_f;y>t?IJn8FN9iD39%w;E+UBPfJ=8nbvIz zYOSQ0`y+FuO~a;=>rb!PuU7hhq#c8&3x4d-^}@llT@kP38~D{sa7^WaM#fY1jB~MC zwMc~GW}qp944MWu3%Q_G5^%{}YGIdnh$~HPl872XQnVNFrC}(7k95|AArl01iqKb? z43NJ~$G(z|%wBm*Ymw48bOQ_(DV7=7k{C~TC_H9;1kj!A)D;6{(R}J! zQ2yzGdx6gIT*NQexUqgB)) z^Nvw3hH`El=qQG0x5`%^W09i$JuufrFzu;`){V8V!G~Hz*LY@{pg^lDL|v{^WX0`* z+05Hulc8jEbijf=DA?yC%9Qp#JFuS(&|6+Jqm&e}0wvAVXI)ljzyMH@%ma$&N39mM zIJAc0Cs|r-nV>(09asFT9+XM{4Wq;t7aP_Gh^Um=6Hs-EqPR^BWLs2Myp9x|{6k8V zS}&f_U>1aAS@!0-f5t(!~32S$o9@Bc_oqK`F98 zV_7TeLI^3vCk^KYfwjO>&$V?1tM1cV({>C17A6tP0K_P!#k~z;Ig1gFv@NoLCIhl8 zz8RFK5A+rP2dbe=nqbBfH&i@pW@E1Od2U_;1$kBq5$2U_UhsbPH=u$SpI6&Mko$ue zTph`K=vn`_MB5rdHPewb7L$KpQ_}lC&CrE19Qurg@WauKK`KGIV3p_*OEh}G4Ov@w zFzI2OZbXeN)RK)Ab%S3qhCUY`vzHOMPXeXQu#%l7Q9Qr@r+GSF3IDxKtR)lX(4(aO zXC1{x*R~^JLPd%i697TM91=n#Yyn9kV-h#B8sO&~lvIlfW%Y$RI=DWQ)+(P2TzEER zFO)B>{A5`B$jODh4+WD`tXHE!=ng}6UzFG_`_IXUiR7ki1=*I~Eq;BaL){H`SrDaT z{GFr+Y4JHDH7dpf+XbRE^Y}nE@EFD0qR9Hw>WWz9dBDKje6B!|mlMFrQ3SaPo$<$l zkAcchIUtHB!Q`<=y(F4e1vb-%p#8WCX|CY%GL132gyJ$>_(|=Cy;V#nl+l|+Pn9Tm zeY)b6%^2PAe|nLYXF!7fY0QWmH=cBPkvfvKXPh$XY}IS%jmA(;P2~FQN#0AS$qHSl z{RDS07Q}|3mNa_lh*ptq6y_lr!C(SGS63N}5gx$MA^|W&n*1O;6!aH-!c8qvuzf_r z#p*TXC4YLx){UPdv6PK{H4$s; z%GfufeEkml3d!+Z4p&iua#2NmTWL8)hjNai6$yo^S3Fjt74kVEF%&k3<85(N3#moh z?2AI`l`A2?xI>si+JM3v*-@3O(d@eESID| z-L#65Pz`w;GHfU2r6jCF*13F^bt4G$Dpy5%&iYM?DXY7M;$sGok(Ia!FhmyBY~Fu4 z)LN#HBQgx(p`vm3e2do0P#a=oN0HA_S1K`^~MrDA*;gL&4C%axP z)6WzpF4=U~OQ={D*4^CnSG~sx!YQ&pzjD10nSHF^s^09fk$ROSDEt4<%2hzwR)v16 zDr9|YfhOW_luz}RF{+8Z2Gxnb|NTkENR_&qJM0y)hE3scn`mKw&Gbj=lT@fy7wMmG0l@^AVZj=?{k`+-*XY2DBtpMt#O5wL!w24EdT#SdqA{7j&WMj#(Gp7HQJjv^ zq>H;O-PoC;#cS<#LSBzn3fT#n7Jp&M02D6)zlPd1C8jzPPO!MN;tGC!cX7=SOSO3O5>o!ZWV+?p_qfK=- zO*8{-3ZT-ee@+f#!M6Iw!Y?jx#wOQ_%)Jlzk}dtfm1SWQzR(>al_Pv&=2-XzI|=S( z&Y{d^%8Yq5^A#(wwcbe09BL2o%YNt%-%J6<;=w%{sC*~OZY}BOte17fB!RiGka)U#+q^QF)%vAzQrVNUizbhm5vTn z>I0S9K(VnRLneY+*UK>DDmD&t0C!u8$`$sgxJMn9*Be9p_~pzn`uOFj4D$Yuv_|Bf z3!aM}JXT>?!%+OSVOgeF&KpL&u6H09qou&6A|u608-cl^3ifQn!zNar9S+&Ls#>tv zh_u_QM@5#qNV0TX<7u#}0izZX2(atjNJ*OfN%TNSYzFq@Bj-9>YeE}9bALe}u-PJw zDoQs>2a~zzZA|IokQxJ}U7K*N7K9IUSxG9ifdMqVOIZWXDv5!zmvzp<`4$JsZe@LwV9H35riJM?q?jEg zS*3!Fk-`oE%-60R+^tE zN{Xb=0gxuU1t8#|w5ne?Z9yB@N62>jh~S}MW5+ZH5^0IlWLl#I0+EE&5CFR{8`o?i zJ;b+r$r+kw0h$uBS|Yoq+8fy@wx&>OCF6vb%AuF?#r?uYf64W&Rj-WARO)LHv4RT6 z^Q(NJO^zwGbySk98E1~Urp0~wOwGud0wbXxM|B8L-+;y}4aJuX2nuG9x{(ifVfVDe zqa9|)=H3w)tULRuV;0BRht+SCBjw$zy_98GJ*`SKBR&tt8o7g@jRDz&^B zW=)k0N4v__a>qOb#Mfo?5z~P6`~O}fDI-5WmO|D){Cx#AGjD5<}>{V)R>1W)w0_t&QWzTr}`5SIw9C<DF7^(3QjfHj1oWhXS+93bUnI5J6LlF6hM8>|5Z%$J^;Z&M2D z7N)vG;K5xGBqOyH214Qtg}Xj`M811W6N*!ht}oKK`Ew)|e-cfR)FGJJfmNp>7%f7x zb#C5>x-YdvT_dWkKk$II>{`Kk3{vZ6#*Ux%m?ca70Ed9Fr(LfOXI}0*>#|*g>KLX6 zz)apVE{OT43di_7s>0$9 zGW~G~Jw16se?~25ZPGT92IGti)A8Nk)M&&#$KTA;vDS1OB`%}_4^L^rH@|ieiqE7| zNf*Ax3L^RL^MMJ#@cM_S6$$u`h?|V$;`jC9H`+2wK+vhFMA|V^K0}if52=j3*2VGh z5t(Zhsx1UfUcNsdQ5z0hOMj@pXjR&$O}7qHE)xxm!CVDEhOCR8hSXjr)*=02Hl;Vk z*VU|;OXhgHRh7pY0_j~z@lO$a-q0ooB$r143VOU1&Y|t5f znP2(|yQ~?%nX}52LAp`hs|M-Aqnki+k`Mf+0q6iviQ?+)WjkROu|6BSEjV}n+>q)vfd`k#8ejEV1pBzk)uZ~n0|UhjCWo3 zYH&dmObBj4svSy*;uUtQ2D9uMyb4=`u#3RJO1@(h?dEk$Zyn1yG_bQ)BX!ESChQ7p zhBe`BT^Yx1j7plX4=??iIY9INN?!|XiSE!XfIQaB3995%VWrq>j&pjcp_Qf5x~)G`#dp*s7-8K?ved$Vj47D_ zgSHxpq7Melg)T}=bfQ{D{I_Yy5+h&c(-{&3iBNW}OEy}z_xa`}z_BlibyjZAFu-}q z4@;-f)s13(X|*skW6LNowp!j(N;@pjx^`GHx9{-AriP-zvYb+Zv%J72FR+m}@=C;$ zPLDdE*Q>{>P{(v}V9?{)$q$>UVU^DmE2G~qDoB?gWG<% zwJjUG!j*otkDcsTrza36>ai3(wt7AKvKQraq+OAvzItbsks?yKS;jh z$Z)34^P?cgHz+mMV>?oZ2fdE)#`ch#R5lT-F0`f*)*Q6=O~ZylQtDPngW1IKn8dL( zImT9F-1;(#WYVFucEihnUn+{tqZu+Cm202xnuMvHS^rhSXe9sVOPFtK=tm^XH)4wP zDibLP2!+Bj(Xh8oRhC!_5{R%RM2a^pmme9_B5_>e#`3))KTI&tHOY@O6)co$>jZ&js>G=d`wF&w0(Rz=emHXpGElWpBXmveUjWFg?fR~NZlf>@p9|yZLjD!ut zuL-pN%SMK*vf26mbwf>H<@c;7wk}Jlfrs|aaLWw%qa!tTT`BeTJrjGY&Q5X2>a>-< z>XfI4mV3a*a<9Dt|H%=GNE=0$X~bsyBUY2Be`sDws1XeI(5#ELXZ9K^007#l_k#we zC-G8mkDkhX$JxbjFdn6x7W0V#Gp%~rkuxRc45c;{n)_u7y zoH4Tef!xd+=(WVJC0&Lw@PzA~8!D=F3lQz;a)uBm?bcW?WuNz?%>cAFGMT=GRlXFC z^KjNe04K66=xww4S;^{D@9t4t=7$^q{zzqh$aD#69zN!uZKN&*>X2z%UIe-e4LX)q zx5*N8V|Pgga_2QQq(`ca9ytAchBez_@=6Dn7`+SQ;uyK==0Xyg2N%vxkdj*GBg#yN z6q10OV`=>tH~nqtV5SA7R(J8s#uG?*_iEswO=rzAu}}CoP7zdx$AmC-2!sg{wo7|=IP<)^Z% zS_kPq&N8tAP3MCQ9EO@EbqM&Y$003FF}_Z|1Qo~;a0Y%e5VGWc{`qbvIT!XI^(RqA z`1uJ;1Z2KI>#;$P1w#+*70-`c-h92c{`OC#*rcPT(#<^t1!#HU za7NgaKfwST2lJqqpDQC6~)|NA6U;kmin^nRoD)Y+0q<$_K zoQiEfKX-7N-d;L_`b!4u!1oOQCiUNibLG0QYwPgzIk1U6buG0{mZx)vxtF+TZeg(A zN7W2Z-QgTi3>ll3Ok*Dfp{JFr>B#pd$)5T28ePP*rsNxT%?#(|>DWcJ4$oC~(jvo@ zt5jmLTn}zeVQ0FqFz?u133_t=beHy3IddxzDF_HZ6ErfpFqkgKB}_I@5xa?#7?iZB zSZ*k%Nk;kVmviN*+vxATy=FyZfjS~0HwMnsG{uf zhlpYji>m5xvrobeIyO`siT2t#&`r9URzozpmi|;JTJ6u4{cyj`CG|ISDLk|!g*#+M z>g@wBTRsrPm`u#RZqxdWy?d?EWHeAW!i0`3nF~WVtTum5MpPG8mm+ooZQz6c4{H6< zYa?rl49+^Ap7XnjE{2!-r6h!)F%f|ZU4Oc_`Bb3jlTv>+hHn_h_lozbS`Cym4Yo`< zU)M1RSoEu!Lro0^F&}S;jjvnQ_#~2)=rxi=e5|e>vCkJx?3>)-d*guF;!Tn@k{p}$ zi3NA#OUZVPX}EKRFERWvb*%8E?AIU>_a5;t&lf8`Q7vg+JlzS$wF8f@-hLVJE7#%7 z$XJ@b6QO7&9J7||17D)uB_)oxO8_rc{hsWH$2CJ&hRv|QT}neQ0p3jSNPNxssZU=_ z-OQ0>7k{e}5z8lo)9NV@n$r{rWortYEKk#^kx3~>6qTp1Pj%%a{+Zg~0H$!uJ%T14 zF?=9xCg&Aa^s)sa)D}4Pnk0!FWi!7oxNK=6Oc$nQ$cS{V%w`Yy)B}Z+!pK>&^s3@* z)(O^YuAyLD3e4f$xfbqmEe5lkVyF=T%}vy1hRW!_#WJIuE_K(%Nm2@mn^c{jCr-nI zszK4d#KV55pfLp{{ij;(I_v;z*XOBLyWZFu6f~x897MMfhX?;r{j7H#pjEdNYd<%d zkx^4w!rY)?7|9k|WaM<}j@K^SL? zn9MFe-G0D(Oy?)Z_<^+(eh}m-Klm~9Jj@L%ffTfAp-|bhs-B+B3ernNXJ4U@mi}o-9m_x%tzWooARctHk%Qo{Z!6tcmsVxqOp+)>H+a| z%rQmJG!6jrfl=hl^n&RQ;8V4N2BgJ%BwFxg)Qw_@N|G*S;<7XUV^Yy3nf(!Ua_HQ- zu*t+7{_x}BwKv>+XY%Us=y$&Ta|_$U;#F7g{(082X;lTjt*nfOO%?35(VILxtoTJ$ z_&QR?2m?vPOo0y@E5IaGjN{1J^HcL zrd#k8w!m-jQm6548HHFzetd0PMbt>UQ}Rmy>>7=dS{`x`FBz7uh|@g}tGiLR*VGhl zw3O(#szIR=+F>GKImCpau>u7E$EhT;ue?hnANPOZoQEa2TK;SrV=fKxy=r= z80PUK0%C>`9Y}N_9Y{1c7S4po%5++DD3}09yq4I4mnzT50r%Yo+MC5U+LxJ#+|$`rRuQcJS2hhu(L+x)KUz*AQlSL#Q4gv>6H06gx*Al5)agNoBO&Py%s8ot$(I2Y6*??x7rrzy&qU@Fi{NCT^u{o`LZP%MyG;LG zE%mk81Qf|E{YMK3ZSxRgE%r8zk|jW$CfKoSidV2jF*_*FH%rn zs?ptqFqYx~BfZdz^|r0}O>tOA8B^pAfQlqUP`vULrVKtUe#P3B%cg`0-U87Zv?nFl zDy8(&N?R3z0Zhlgs#;7eN^@pWE?I*CqoY{z+Uq%LqknHSkWueT#CBvHZfD>b#yAQw zwp3s!RS)>>2%2TRXu4{>5R%RLv^qSmn&`CTuO{e>xv{C-oF-%CX!-5R3+<$kW!NhA zsc$mcfx8tlq(eieH(Ea`3!r*-bGv7JToGjdKQ~4bRFWl|a(U}cNA1Ef($MrXvZ<&L zcfu-}JOrJ2&c9pG$@8z$75X2~MqG~bjaW+-8CH#aQv9aMJEqu>Zlt@Cntx)#E>=QY z2al&|+Dj)UEsRUY*T7xU#;jdqj81qKF&BYCvXhp(wt0+f-3$yS2x`A@eJq_MFN(X$^U zMj5uMuLg=8kC!w<)i5-@V=haJ>+~_qp)d7ks`w?VE^Syqq)YLt#{OqV-2_q}8^=2` z0d9@LzyuqLp=o(0ddeJ@$tZ&`@GY~UTOJY;bIB*V6e`kf&~7ol`N9PNyr4kZbU!9Q z62C5}hit5h%4JTh$h=(%7&6Ungv?vJL)nu1zA8fT%{;XLjMn67u4m zsz@z9D@`C8RxvBIL+{AX1}Q{IC=E#=&ctfpBiv|^SL$xoNS-InE!1ocEa8@)Q)2E8 z%a?`2-vwa{zzia@I#IAFk&!aT=2p2K9C+znwgahDrUyZ+nICWv-QESw#s;{m77d&7uibe{RV?u2 zg{5scEC>4f&dA35l8MY%Qe9vmI9+H{nI6Wpx%DvN+7=I6j9ObF5p2NuTeDz2AL)W2 z{X_Ed4c^8c=Z&u~WHO5r=DReA;-!u@feKv2Q%?3f&SAw*+QdfL|x%?}Jty0gJZ?z_?!9HyTjM%kB%Ns|~ znkn?LKSqv@!fc;G{yw!LI)r9+RUFNem!TxpSYKd!90euzR$oessA!9+;p>_@<9H{& zcP{B1<8womsJRk_M2pX%R&A)KkOoh>ScGxnaq9ALEZrd%(c9SN?9o#b30#r_dZpuy zrXwHxv$~)qthrns0LQH=O!^&dglMS0D2ni4CaV327eJ|1#e^y5OmkAVnE)L+@WPN0 z!Xlyy5c@1wZf?uhabxFg{R=ZLYa}RefGo@O14Cjc{)b^c7m$TbT;G=tJ2+>fcZI`O z-?o^9Ki1!pQXjMjWhVV+*#(GYa&Z1r@BVmlC6R*5J-Yfg?7N22)nzDUdLXR59Hqh7 zn(@etPm=jhy#0M&yo3LK_)0FL^v65i{=dJ%kd1GH)R2tNEFf*4VEn4Ho-0_k_iszv z;nFtO&XO8iK0V@>_Jl12ov>kMC(}aQsymXcj*!TvP^{kvAG;ZoXoqo>C+ctL@)c zQ9om=gLWkYB8EyWS|*4SoqJTdK;|}`uF@#j#?s+?)bQIJe}?4ybnlNnP3Sx+?I_yg zUIADIKTSCC#f2G)Pe$%$;~Gm#7gk9J$%2BW`s_@kP@7~u><$WtSd7oWS{0qNRd))o z)SXjLIBK9p`gkObp_q4I(0N=7X=1cWz!(#J{IASSFC);L;jqY8e(L<6$M zJkPWE9+BJF<=dG?Ns`)3G@Nx=b$JM073+1v4cc3(P=EX<+ueV$FiMe49Cda|1 zhwqXHKC7zXlRx{pg>c8usT8}D;>vEg?SamvVa?@3wVYoxB$5Fa@s<5@YTIx+bS?{r zt`(1!(^&Az>EgFF@(bY+QhbMieZb#Q8eP*NJEk&=UoeBO*{P@o$YETd=DUjr!Y^J5 zqfZ>zCiCm0x|5f^m(rhbWOtjuy5ZV){^+G))*;&UB0)3;8SgzrDTfPCxkn1%w&9hO zl+)WBtZm^tj|&z!$F3r(z~2q{fNfXVKX~2zu4}IW7=xE_=(Ez-55*@*#&|WDB8k@- z$;laRHXh8VZz{KU1pe`Z)KyOG1X;HTG1$7OX^O&q*){jK3#&dLKpw}!2Zue0hMBT= z#b8D|?T6aM1rb}evFtQkq*SWW1)%$r#i5)t^gH1F2j7AgEMwM) z-2)TuG;pig6P2`_cv;!saS&SEDex}A5zTB@wt|&?EdOiG39}4 ze)sdIs>qBdeDLG{xcfIVB}{w5uix;l*Po$x9ipe!Pkrvg4_SWS-#_-={okkTNq>FI z-`$hzRXhEZR(NvWdj59Hy&b)c+uH|sKVL6n_VVkmAJa?MUYLvYqT~0y`7e#@Ik)Hg zEFA@c^odu@aSoZD!b=xGBOp`P(v4s6YEw5>LHAQ(^^fp_*B#q#Y|a&j#MYFgSUL6L zIkBKkf3O4Fk`yC;4_vble&?8xHlAn_s`wNrOcWbvglqhp)@alEIIT;eQh_nGO)cGp zuvv`Y9-%h-+}QqXX(cY^0e9CzkaI58a!<*E1st*_EQTQzE8_wR&`8{C0c?@4t-0{G z#)7H}fTn%~iLIapM2Xo!zl!%d0>qkFJB1j!2qnpZbl8pf5w@sP&=1G4_IOvGsh{o% z>PHp{Z|(Y-5LHn)bdOLO;9vZRVczj_8r5ZCn+evgp?}K5FIC`_tAHgA7GQz_iI}0r z8B8Y*go(RK~tZhNa# z=?6yM4!299rq*l7ZvPL{#-7_OJP@ntd@}!`1E>$}g+oRniol-F{@VM#G}p?~N@Jxg zaDv85ytUo>+uJR*BFE)WD~(i1oHpQj=T4o5xMT-ZiPU8Mp^%bEndt)8W|e_%y!)7t z7B8pNy(C&tXvw&fLCm#kNiP|85lRp@DFkie&&$w7=2Vr+N`X=MmgoD&G=g@lk1sjM z%?WzALRQIFP%yJUt*?PCe*If%V?6?E-M9?G(SVgzgERAi(qaqbL^O77RW?#eU=cjc zkU|6CLw^d80`S6^w6X0z^i6QqvWN0zJLz zpfIqSMWJ%8pqaExUcuEihIGH<>yL~BWo(yuUB-R1a*rIyM@qut&f@&>F8TVn>gjVc zEvoe57Z^SKo<5{KuNdpy>H_bT8QAYIQTZh7R(Z^ecAbqS6|dE&CEm7H#XV_~ZSjAq z-XhiTD?5kYW#vGJ}h3=;2}wKHh0iJE10@fZDAu zk~JQ6sje4eY|>w7IDTXYN46%S(Of0estv|oifOZ#Q$-%q#!g8eoE`>g2^TrsfX@fD zeDPs_<9!suzWWa&$Vnq(j|OP^q)O7X8P^hz z(jp@dRcRZiLQ}I9)GxdpV#MoH8ZK#u8U(fXpblbn)WCSWAXcA?seX^!Zi~**eLcq(t!g=aSFXi*XNikBK;;SMgX3(FJP+jey5}gVNaM z=kBFXsjHx>D>rqisHPk$+29V)QYThSgfd>w02~r>+dIVd1NK|D)fEC{Ul=K zamf(asot3RXiI~jf1Rd(h^2fdTZTBhEl0xue z93wqOPP!w~e)I*f6S@dQ$sj0Oem+ksa?%OzM4L4RwLeJW;#!#u`;TVL{NFm|A^B++ zz?#K`TUK=OyoU}6rNstO{sko3)b^b0h5p4k{&N<6%)$nyRS|{`gz$RSLhW4fPwRM64=Xr7U~pB4RI>=PgKI@%lZxa zMI5%Hj40gWK2sH*OFHpE@3NOe_liuvAnr)||0(g_3QtUY)kTissCp5&JJ|<{n(nof zxmL<|EM-$Gg=%FLN@2Drc{(G7iKs zfC|CA4P$y%f+s=PMfesbI8Dh^tNGlG)of3rTgbMh6PI#r%EFJUsh*BgcDPfUuPXay zM``KVNyaBT%sDU%KdYS_+ycYYWnLJAhN&b~;ar8uUvn8SA5XUL02(Kbl&a~=e3(ZLp)g=<;({nrb5*t!rdzYxzmmon&d3T1`*;euV)h09oK zo%vDjrI$4<3x8wu$Qqf#q5(A_0q38$CI&^NW8{vTvR|2cY>^6xh{AChA35-cUdhL- z`)J!BcQ_G=BT4-!xK~r2wj%m(YUv-1I7Xo9kUR48FGQjSI}&#tMtmVanuUvJO5COr z(13|%{IYB+w5>=z&5}T2ys6P)AP+<{<0F|142~ZYRCyyoKcJnAXxRm%%Cehjs|Jn2 zwBue2FxYDr4zB=HIq_g~L?7<-?&4+b+{xLlKNZ-l)S6~-_cv#srvix73;*ljI1Z=^hPlbc!Zux33^En1b3XF&P&cB z@0pTR_Opqff2-r7S}@|mVIk5mHKv1!e2WIi2FXrRYPH@I({L102Xf8r<1A^!gNdpX zGgIh^5N#YGAe<)m_;!}-3O2#owS*YsEc=LIjCAP)`~baCbq2%FWO)K^@GezOX$yDo zL%-xl&jbr5Ayc}0c5>Db7gWv8z^J1n_$GI#L%HMIw1t9Q#@9UpkJ^N#b~T)q@^nRi zl)VB6Zdie@Egq!MDk@VfM1JA~T`d6NT*6X@efJ~dY6oQ9f-Y&gi)sb7bb>p=+Ah*>|BfxVdh3#iLT#3kH>XU`8`5& ze!nAtLkr9(N&g96PW=RnzmN{woHzhh@z(|fV!=5F-m*~Yzyma19MePt?(}@U=p;Vx zH3i`R9l=_A5u@35s5yyx*r)v>SZ~fy+SG@zQa|Cc@Q`QIE_R)V^-?^lc6~~$%{0sI z#C0v?s=R>$UTZ<2L7+SBsS!L&GthAI#I$o>qL72LBf0>?tO@=0hk?X&1?d7CNx9l} z0cLexbQYx4Q+14EoCI0LG+P&6FuL&gzhd=GBtuN9ch5KLdI{`VF8#um+9wUv8ds@oVPSSt?g3uexTwcinDf z^!AXa1fJLFnQ}_s#514sbnc$ryMfhOHStTF-&?Kmd%f|-V6b>fKGELjgsi)c7=)b1 zPRPO>Di5y`h5?L*|EiGUEEn)tp8y*uK%CfS->KfR$+rA+{^eT`pzG1ab=y#%c@M{P zZplK5F)^`U7!OeXLxW9LpJ!vA+gNIe!R=fL?Wc9aB z&%~^D_t{biQx{LKidpUMvwIh&w@w!^tKI!+vSu!xUhP>+y3fFcRa>XmSmsFg*%p+7 zHf7!4`}L9T#}lyi*oWfc>9w)xdh`pbUcGgCHm0|`znZKy7f+uOv)bKXL)O}@)2GI) zcK6qk#XYj8#jJMsXURHc>-4&q)$aZ&WSx5P^y!|pr2D6mdD_z-59=8Hi4 zcK7GV+HmponK7%~{S9QDv30tPS?%thLDthQo*sDC0XVru{7)nE%&pTy%bac#|CuH+ z2GYUSX}4uzw^)Tz6 zlyFKoK9V8=Uo`5i`hHqCE$kgh5v3j)NjW{79*&Hph%WCONtp|C;n+xusPOnm${FE| zu=tI3-$ikIM^erVXNLXl6z!%iKzTMJGCeX==07`}V0-hiX2YDhk|oJ1>F<4cUUBM| z6h#!8$}^1NV+b6k#7QvFtG7Jw-pVe2=$yqdOFq3I4ME!I;>fOW1!)P^tC zOC43T3vGJHg$_myLIJ6QNu8%(wS7lDtpJ2dv&~C0lU#EWo);$^?VDp>WTH|)njW4q zMTCvjmu<3-!p6rHT=d5PVeu&IiFTo_cASwm*R}V(MxAv$^!F{)12@eQRp~-z!f9y* zI5W}IP0QGfjvQ|xBHU?jm4Rjw`a0ImM=_%NBPon!SZpIR?6tS54z;nroi7B3J1wP> zkw@BJgkvLbCNbMkyTlwxVTYfPL9Ko;LDd@lRR8DP7dQ<%(2Ayf}Y}^q!O{3GaQ9LVhWWgZ|%^`P8mn;|_Q%**5IO^+Osy%zdO2 zW+qf*Ggf+oXth|*_Gshd+lNy#V+m1R@-Fs%@e${@C;7oSOgw;+JvEq;Hl3oyqML3T zN)wZjemayoW}VM}CpHf{N_STA#WU53bctukY+de+xvIQDNAK|ws;DlumzQhJ5yiAA%ISDBP+53&v{ zQ>{vO6Dv#SDL~={`t!r(Df8!CSI*9##{%-y`DgO?G+Rurn;-Ig`uqm|uAe`ZzjO1& zb-RoEZArv@&5(={ylzdnwHXK~b8Q@qDHKW##fJ7!;K{Yt5Ixb#(_k=6khACcB;(&{ z5R})CdHvRRLca2*VxE(;e|3nIsA8cvUSr?>JPt7%vt^VYZW9II)Vi+OXcJjZGpHpILQtvttS8qSD$XSDJh zt7&*z%zIiZ&#{_@Gh^PFtvq4%WyoF-wpoA9c~V$IqM^)4lq<*zCjJ@LNP`(-TS^A? z!-Iy&>R3xHa#mmsZL-8O_S*cB6`#td-QYjXF^IvmWQYFQd@?OvRQn~v4Vp_bqG2j> z2>{?yNSII^c3X?cW~N(9phk3U_E%&{(EM@h|IqYe^G6g&HapBnBu%wN5+L9m9cKs6 zS$TGtiL-;3S$TGtLF;TBcl)xDvjn#cOJ71IW3JsW_mXS;T$2i^V^5sKTo=y8F213$A1gAJ%Q)APw-mfwQ^ z@E9DNns4FB7F$lHMq4PWS}$#o#*UE-;)I-rYf!pw`C?ninLXe;U69=5Onye1oY9A- zGxV*g4fZ6ZjTopHmqgEN(I?Nx)KW7Id$Jvs98H)L7b%v}aJ4i!SB6->$e76*2))i@ zez4(-LKhal#j)s4tYZoYX6Gkg2BQ&(*4V;{U#C*ia&7!vDz1NCu3oMWp269NueJIa z_P5`}qVkoeLY8ns5nNkNDQ<~$GSgi-;L!fW+V)b*09XS5>6k6rpN6|^I4hD_w7iPk zAQ#T}m8a0gg6<#x#E>{l?lGcs@-V@J0JNp7 ztjE|$WIdLt4(Hk#t)&n>kJu+sb=4N0sjMaS;~M(h{FO#CHb4{QT8-OSEstJ4jrKN} z&~Xy2lJ%=5WO!-I*LgDLv18}ocF(&`Kw^D569i+OP_A`cUD!64d~gv+w-`D~P!^hO}` z!rds4y(cAK_!v_)-u`gg>TrE)hlJt4zJswk);|{ZwYD(KK`_0LVbjxqCHb_XXX^kN z>w6dlgGbo+cP&yThq=ab2qC*9N0GYqO()#CBnK0N<>cXxB{|NJc)W&tmgF#x**C;0 zU6O+=A$l}HNGiTB$4p{R)JmtO;kIxL*BjwfTp)wwEp1W?8UJn_Ns%exj*%4NDk->P zLx7kgyWzo+l(B$8WF$of$?L5Hl?m>Vk?vrORPXu{#lp|=^VHvFeuB+2Iaa|frGXrC=lzw?V%)>%~wQ$<)yaZ0+m^t*S+uEW%bR`Muhs?uxzG5; z4VrU!n<~DhOs9$@?Ee-3RQtiAi>%(_#7W{DHf96u~gdV&iXR9h^IRyJHljXu`NIYc)v*_e7*>)<38wzH6R2$GQd6Q zHcRToq`w~15&WHv=TaPdA^7qCxu?aN#G}xT_a-L$Q`0l6iq&#$jNTSl;I%|iZ0=)f z+MFk1Z0_(E?q6}1k*|m3t~@O^(KV4zaoi{@nZg85oty^ImU><1Bg^W%>j~6}>HMVX z{L3d$ryOQ<_X`YCb$s8qmv;QqUf~qY=Rc5dvi{4z1V2?i6DHiTq}Bf!gB2!GUS0L! zWmSLX3BZbiqyBTXv(=gUINiCd&byyLom^X;hCekbo2-JUPnk+^x9TN8SB$K#C}3&0 z*Al1dLEhDR(hQZB5*swxe;A5oooT~g=T!Y^539m3s0#)a2eV$+b0 z%Z9gE;;Q;{?73-pwn$q z8cE*%!o>b}eAj=GAd?G>_~dpqHNq!<)!?5DCl_az5hk(2$eB#bA}ne{q8S}NiHb7` ze`CO}hykSu#4tx7;|@bc<`_bWK&QmAmQh*wt zxpf7RTU=#RmYt&dWV=ZhWp`Rq9Q&un2XE9Zup1{r+sape;8xt4zAc1kFKdda#~$J} zL$IcnE7jy+@!6LO^ZvnZI#Icb;`TZg+n{oti)O-FOb3coi0V#w%AS*%@FyV7wJ#fytN*ZGx~dNIXEm zH&q-W*J@r@uz)&_NlT&2c{6RsqlLs8o29Hi4M(iaN)b%LHH-4k7VY#wx;#ah^lVv< zE7t8?;AJt6CfPeZH1ehIPkHk_Pw2`_fBg!$MiZ+z=6=f)IQOqTF~V#M5p)BIoynnFt>sAEI;_q+IUY- zC-y7#XoeMRSCHARu#~U@2RFcnwp{;WIVUQ+(@==1SsuE z=Qbn_O{q-D!dJ6uPa0~gp$O!@t7;%qcLR;huT(X<=SZC+QZVViJ8iIscG!u`u7yCE zSEml`l0A=1qDKOl=|@24@vI^C;s6B}SIbLQ0UBvk&dGv^n_D{kR8dTU=KbnG@hd9J za8%L=y#!}$>a9-dsm|heRf-F}Qm6Hlw(YF*BFA`8fU7kP0byROER83l9FrkPTkOD} z5w3jdl1<`kR2qDn}9j%TLiC4!4v^ z@yDu_p6J2#7*oj2)}>s%Wx%H7=Ki_|a34TNR*K9ln_r^6jOGy?Wc3CA?-VSTZv z&I)_M!`@NTP#v(_pH&~v5%&9zxv%`u z!QcPHwRe5}zKFSpuYUUn-ul&#e&i2#>A1;2$oPo6w@pz$p>u@*(M?EG$M2px>_=$&|-)j5}DsyHs z6D#U)jb4B&w1!D4)=>pA-G|*v zs$q%yO2CGse`nep>xDeijmBHCG0t0{R>)MuznVBmybS#dZH>LSxgmB5IwiWyBVBfE zh+O#i;W-fy8+ZmAQzSGlfuU5K@ujw_y0lH3aJ|tcznE&F z%H@+u7eq-sA^WwQE=FsL?k&nH3h+)^M**xpxe1|)!fZ;cCc40gI=DlETnRQbpk!0> z;A@c(&q+YNY4OiU?pMNdEdlqed#X21xA+Ma=4!Z8Z%Fb$KhNUl#yzSK*-R#aS$4e@=D@>Zl@|D z>5dD65LQE*$u61nPtCd?^{ zLud2#OGl`m&v7GSYGrVXeG))P|C6n$4w;=gB?&rI5piu^(Uj0$UH+Q0M~XZ^Q86_F zX`@{GLU&u}IqGO?A7S8=hCt!s5aHPRuNL3}{mIVe)@uH&F5cyU!FASy)O(PIn@;Mp ztHk{)7#fAWyQJZXD>IqQM6`D~nbN#$g;+(TTZwE;7mw6>Rzn*8SmP0WTb&0Y zYx9ERPLX44TP@-_YcnStmOUsi%-TQB77Fpu)nSxvgvqAtm@?(|w<&u-j|22~0c9^r zz28zPP{LpKB0>Kg|1jHPB99-5E-^MAmr133ne?ku_123sy>-n2MLaREW+W672~9^{ z10=@Z^DLS4XIeU-d%2mSqalxWd>g4W_Wq_^qShFr_y|K}ATocM& zsH`WAtw~L4!W)DKk(3<$-#Fyv>^R?9DzT5mLZ%dB>rbm%MN|+4?P*fvM=&|P>!)E} z>eXf3BRrfg;bCZA7HEL5iB@B&stDR69$wQ)M-^}C#1gj_5 zw?^sqr9H8m(>*UagCC;NZr}$P*YN|yvsgOra8L^##Z+qCSe?cdy#RK0C@c{qkZ;T_ z4jwCwsEgItXzJ4Y7<;W8TdYe_D`#B!#>51(W-MAaBZ~~-D`_Q43iUsBr|ckmU|_XU zyxW;=71YMt&3ao;-uEF@!Mk<*9w7xa^IkzyW^=JEN_7(c*gE6L>nTG8C%Mir+v{O{ zQ-?BoQ6tA0wWOMtTr!z*GzB;h>Kjv~Tr!!`viA)nR+8y^a4q* zd2x#mS1DXaBg0BT`kdmkMQWG$N9TxH0U0_@5ldKox|7OF5= zOoP1Hda|+&fNWE#>c}0P#tyP%ov~!`;amH+3S^?)(#P-5N-5{}r|dUh;D0EZ<0xc&Y=?Mo zY|SNOE@RuQtm z-uAyy!t4u?&#Ai}TZ*}54(^euh(A$L$ZBgr|NhqOw|umqr$rAYAqY)R{~ou=91B3oBho0Lu&2Z(b5M1giuwd?GW~C5`O*;Loks14aKy$6bIc}}EsSazoE^9=Cn<*%V9|g zL-yfmQvR{Pb+=9HtHT{e$oJQTY;{p=TdYpPfL_()E%tLy9eN>KNeqC5Le<`I=u1^` zv)OBHANS{@Amw92C#=ogd;b#zsbDgFG%;nof9djuSxQJ8(th+IqLX0Mq0xQ{Nb?n# zdT+0Y>u>Fb4sBtdwnVwLf`GOVH2uf1n5|68tklHH%n(#97Ktgj-v{{@R=#+Hmia;eXwC-(AQ4-3*!MoG z3QF?pZ1ZLnK2$Nc8g1e`-rRsB*Ee61=OzLxrSHTody^4>s^vSq6DMj}ZN+9I5G6o7 z(Uw>2^Q})^pWimleP9q50#Rhg59ZAsuHVVzDc;6C&3J;$DHAesTSJ(*ps`2zobO6p zh@E{p+L!Kmh&8skhydj@+zUV9GKEU(B#)QIVG2tsJ7*_~re?v`u*>O@Kx#_Pc~;ys zcDb9_X)NItR*&)3q>V`8cbwhORnhTWnXXNwrMbs-5^fRE1O}j#Qbk6=qs3ZwfU+%V7)iK6U{4!BL>> z%pnSu%Y!jFLSKV`0aM(95fhw84?J0bCEZx<(h{>ZEvZ=XO)-vX#Y*?)O)^M>8jGc) z1||JoQCj$Z$^+P13ghQ64uzla!Cfz20MDs`9AC2bOJ2XwH#sljJgPwGlHpD@97^n2 zt#yTzRFyUfp+qrTN$mn;h7Jc-{cN-8j>*T;nYqfDPL`w@w(hPkO$0jIWtXd2D$^5s zzmXVH4$~-3mO>k?@H1;loct|4aHryW;V@p=Pk|KG%<;N1#sec|!|a-OM5Mn|f1 zuw0!W2QQQrbEIMc0^BA~99`)x?H_PZ?8Bz8?_*2rXjG%Vq#O>aP&E{N-+A#Fsx?)f%x~2jsuLJYp>%ZP!1=p zfO1Q%JLk6=5$1i^S%UQ{#}FSgYs9aVS>t|rW=H5p<#{sbuWD;SC}Hb0HX~4W+So_v zJ_hzp4I?t028(-z#1;fk|EL&az2}uN??KD!jN~0jV&)^3IX;rPsFM+@^~N`;)|t^v z9ja31ot8OQW!jF!Alir=4TGvRa&rCWg4?46+Of0X36&bb4M9UWj*Z02l0iWV5w3Jpz<3DlV}_hzm(h@@ zVz#c(K2DzeD$@bG4AeC#1YyOf5pM$Z1c;CRgV^AGdI#~E-Wkh?ctgq*s-z>H858IL zyPOo_iwf~bf(G#biL{e*;&KF4DN*u*o24ns5iLaz(l@h~nvpoQq=jm7?Z55&x!bLC z<%Vi6aQ|fO7gsUL$^Np}!;KnDRRkE&b8k4NXPAnMBv`rg%zUC*3)S=zNRdlmE)k_G z;22v(XC><)oAg=fI%o=oLDY_F5%_3cx?RZ|G=b4Nm|TylwCWgd*YSW)&nk}y* z9M4tjz6LVsF%Rl{ey^w32S3cQ$z3~t;fnbW{R)?qT{*w_8=u(!{%oh}9!}miaD_3w zt@3$AX)TVL_@xfOZodLS{VKJw6CPCa<dD*E8ckqQut}ai#kkr-OIk%dEtf?gD_~Ec{ zxkiWa*8ms*^~2x2S+mxLu;(rO79Vz1G2Ey(0%aW@Nj++*8^Zk~skgjUWuFu7*Kb|J z{WmD}xnbW(>O)q;+2JPTR%OA;5+MNY3Q1!h2LQ&)PVt~53i&aV5zfQ9pK>DFdyNQJ zuT%B9Z-`SJR4(1jt6C-5C7M+_(iJ_vQ*z}!Bg?p6-yN<&Z1SJE@cC5A7lTy7L!%?J ztl~Ci z$Y`Y;wj$mO978A17$Q!9`wp>~k20L9B+cnh={QveC4KloLWs<*}(rO~aGS zMa=qf{-2H`3A!``*(h@0fT>lZ2!HNp6gFkIXTw=jgTU@7{Fj!qavqv}TpUXdMLeTV zwDH{JoDlMr@n*gOD`FI9$0vsCd_@e;);RxXU>G_Rj$xKrv>hZawK~s8GS4>H#)%9J z3ELo_DTw0?{CRxDO2Rn-vm6{jY@PEjhgdP_GSUSlPnb{}G;$UhA0Bg-nh`4Fyb7vn z!nHHWrwEnE_6MN1PT1SkoTIs}(snfOta(m$NYUTO#d>UW=HN7!R*-flyq}%ZTz&WF~DZ_N3=+ zS>MWm<~FDUyp7C_r#sTDg~y&6W%4QuNzKq3l<4wn`V8wC`j4Sq>nlmZf-IZ#HV1$4}n z3`JZzRpZ$yOGDsXS;A9gHF`Q)`xwK*i$UQwXp%n#ote(kHo~VgcCJNB^Z4RI6C-U{i@^4zb4mR4Ywen~KgSD-*sr z?U!)pfbW|`GXb-7wc?Abj}w#|oMbul$jC-3gJnU6J zWi&VXN`edH2{9GZjIT1sG-=GH&1kHAPs##<;S7b{%OH2|8e{;}@ zN|%cMDBZ?YQMuL>@%zFMfI%5iG6LiMj{9l01m<^?;&?vhttphzVH1-r4dkT#`rH)F!(+{=)?IO0r zmzoaFCR%ed!!YD@hs>QG;ybcv37Ot54ysbp02lEl>^-d+O_}`y0e2WPt0JUi+9Mk* zFsR2tBQmtcfa&xYk5NxsLAyClhINZ|7M+CLT*L~U-u%AfH#msz2P+?%*Wv!=hnGrD(XDqUQ2<8%f{jB-gV~8gw znd1-51V;2_hKzYZH`!YmOxd2lSHQ~iWL)cPJI}6r@M>H^xL)WbFU>Lox6e4^%Oc_y z7djEIEGaM^F%~4i&IOXU1FU@B3iuOZ`OgM3rP<+LC0k+P@?xJ*}aVcl<4`PAPiFalbdBmH+eioM4)SI8euEl zHpN=%7vcNy0$?HrOjVd}?VKjmojo}v9f-rY-`N0|^a4D&)L@MB_;9s8HiA&G79V5% z#`j(d*V|AS9My8w>B;IkWs>C4I8#CvT);uKAP71*JtJMr)B1a?H_9}?_$*A7rZlfY z+>`P@EZ2Ej9H=7#mwDa2N1+a8WV0or;VlU`5mwABYplfvH#p$8c`<8tZ$tLbY~dq_ z%wCT~EP_lVn>-yc%%C2cJ~KTbTd|_}Jv^nx@kDf1eKbuz)gZ%?0OCaa#9w-^@WSs6 zFEjz)fwrym^hr~R!3`f%HG@K}t&2p4Mt+WdIrOkM7_DK)(e17=7pjY|)GO%|0KEF>I_~v|{ z-`evNd~>ev^V`_qsqgb!dqHAe-{<#9VqSpo*`co_ykXdQmqu*7Nj?zQ=u1%EMx)V= zZaMR0`(#TZp+{SLYCi=Ltt5sP9%2|2LX6ykIEsW@6+zh&$!$qU6uxdt_n}Tfj81FA zDrBYQ=c`@x6?ymK5H#$@jv3L6`r4!-hY?N^p$P3RnrN0tmq3y(B`d&9mZ2tbVW#n| zK~0lQ^jJ=lS*q=+0mFzfYO+yUQ{)?r_`X36CjW({Fi&+!SruhIh|`t-*tiG1H@F9( zxaQvAvTF7XTxGrCLB>58LGXye6ODTit1nWXRt7YY7MoIrumOtp3Na(ct4bSs89pZr zrg#oQqh=}C4>FKLAyLy}S4J#-!Yd3}hoSIY#t!M$JEGVXIzSTmfXj9uaX~O;4jWEI zTWAH4T(oFf$?mgAoy|@tpCAnBt*^J^p0U%AXyA)*b6+ucUYKm(Cb(zfUuiCBS{Gk2 zdD-U(Cat+uwcNJ#%Hp;?w|uUr?Y!HVE64INf|6`aOq0DspMv~~wb{Adm!9hc# zyBSfvTXy%oODEtMTOH!Cy11Lcc((8rw4cz6j5<5W%(yfR$!N?PukkleXmav-nqXP>#9Fdc&wJ`K}E149RW;;Bm^OcbCu7_{D!yQK!J7_G{ zOl+LTnzIatF$R7+p(6doxN|F~mDo=kpF5jut!TRzl_fA}0t>{4TEU0dlDh$e&X#A8 z-QkRk4s?z)ychW?#aO?ez*x&lx}V?<4MdWhhSd#6V>BOnVi9Y4@*oDHcM z{e^CgH`ECXL+yVes&Pg$;c(7_B>fgnci~c+o|~goSzMcNGOWskcRnezZ7dQ(jL-Cr zaS3HLa!|AaF8V6!^;M#SqKBR}>?=mt|7KtHXw+BOZT8kz4IM*2*jM6C*+wS!9Yfh@ z;Qaidk<#qY(4jVV?(?LWpE5KOQJKl59 zehBphYC`e7vA zybStjlOtlpjN)??o_dZVO%QtNiAkC4UHo&zBV@myDIS5g=7b=`qrJRAJZkpMUc{po zv|TpoXN|bL-G<)Lrba?91HbVTSg*U=eC3PO&D-a*8-KYMdwP=^_L8p&Y(F(0-S)Eu zyPql65xLMp^QR^V1h%H)X45BDPD%V9i=sptz$N~il5~I{&l)+CnhN0>jZ#`uBq}x_ zv)CJP4(mZkUhOmx!#$eO<3?imUf#s%tl>9%p);*{$!tssO?speRN2jl+OZy?G%MH9 zIvHVoN!vuMvsbsVvtS(3(a-!~q{glLvy`VF7xB~tEh%gn3WSr4;OVrq0*RD^ptbYL zyxcFq)V8#Rc6_4`!tNgu2V7IKXihINbEc7aB9#Wg+?FeVRDHD!Ka~-v(*I3xiS7=H0pwBRRz`8Zx2k1n)fU0`>b`c zH^txA*9W}}t8502Zful+NPklT$NH*s>w2W|w4`-gc z_1j)g^72rSN!lDnI7)YSs}`44nB;vs)yug%z`dW%g(dJZeS9=qC37CFZxDR@@0pIkzgUhCYhsS z3kF!Wq7}2+hZ?$1()QaAc;eF!yb{5?FPO%7!WLU8vRk~n`K%NVPxO&e22+a7YbSzs zoDL`BNXxc7JDU!5Iy#+KIh|HH`>m>r_EaZlC=WYy`Nog9P{HiLDzb`f$$BtqIqk4n z_JZr@EQ;=Le3g(whAf0m8pr;mZ*v&zjN4Vw7Biq1s?~Pzc4{dI8vj8GCSJ4VOAMV& zH7Jp|`Ha;XvFo>};52b~Z#rth8!aGH224Ic8cm)h>q`nPXoHW`64m^C>QgM}}3v@y-VmO2gBpT1;}1cjhXhAY)~Z!?*-n8bpf;;OEd|0x)KZ?eLw;jmB@CWuhgDA3RrqqKT;s5%)1_|p zDyLhW)4k5=P^Snv5Xb3as{ph;$4X%i&s2FCtBxk2a?PTie>&tg z%XIi!9{~9({L!37&UYXqwT`-Baz|qYlHw^5-82Pd0Se*)l9rX23PQ@#!s%I1w`x{{_fEix zda?$Bh{O$9Sve|+x;Udxb)}oSQq*RS6H`IFP+ct>)D`mUYKH`^Ap=bm%vw$NCe}#l z@fxX4Nl7vaxQcD7I5HSpe9PkfU@u7m8b^lR(BpR3q@6oqM%tw&Xt$x0o5hK3L06xi zq80W@Mh;4Dur)hPOB8kNfFULmV^->#X?{)){@ z6|lO-QbkNyVA&+atU0CNH|y8Y1SZt<)zJ*DR@z{WW0WK4c~fjO+3uIb3SxiKr35?a z`eh~v7LbZ7uFycP!1pZ4B5nN^hIC^AAh{suq^(25fQhA_EZ_PRXb9)P9)g27U6yxE*|3LMGI=43Lnxycio%}ow7 z4l)yF^Gq|Fo1Atw_p+JUJX5oIOO>1)pUq!tFzddrl-tYQpvL$!se7k+n(b~*d7@LOZX+cEh>kwVK=nBwSgfOmY5u?Tt=X`4ZJ=BHt>3RGYzQl z`X(^**%u8zGt4(~MVKAq;}VGB!~iLl%B4FaM+Lc}3DI4dHq^_; zbdldE#GqD3p&Er)O8|X^SO?Y68QNMc*DNmwvkLS=?acrUo(4?)_EUvY#WY|7Y8UNL zV3mU}NSkCQ@0h?f-N{go@iDsr$TSe^;n)pdxYt~z@#5LpREE30@e?g;(TfWkyg((h z^BenrC|r!mLzHFK)GHXXHWq#^v+Nd&Tb^%sj_8rS&I^~u2uKje>|4}0H-T}}w^DXbTx(E=WYSa&7(2oFkffoFSb%6cv2Y1MnLxWZP|PX~fx;ATcH3Y=h4=x_Zk`on zOIZe@!6`L%v~PNIo2gr~folepnHhxY)Bv8h3ZBljg21WU#EWHUfremPlw1 zZ6-8T%T})J-lcQlBtRM@W~X{RB1|xrB$2SK9dAWWer9dn8Hzv>KXOJ>cdyWoO`(R)5(|k@FhV8JXRHnFhTf#jI~TX7lxii%K&yCp-k*Phwm&=nn9Xc7RKQN%d$$&Fx1D zf1pX>pZ<)(uTPDG9^cB%l2G&iJHeK{Q-a=KC@B~W`-#MBni8on)S&wk+bL?~y7ejJ z&|N}a7)UVdCH1BvLc$!Bj+5J-QV44~B&d+`Zy7x7#l(lLmbz~U@peEF5X-ZqWsM%= z6X0=LNk>HK z60R$l7X$5O+mC9mm1mf9K!_x}|9AE*JpMn|v&;{Wi~IhAnwEV{s_B!a*nU9R77G1S zw<7O_I3b*Vi4Yy-2C_qLc6OLwk_Kvc1UZAtSR;YFgmvIaS%VA{kJMnNLKUG^@Mmsu zd}?+_QA9u|0<}vtRE9VN?;h_>nR*H5RJruE!(%Rpl;L=>K=6FBc5+n)g+&lCV5+pc zt}{t;P@maNGpK9OmSt>$=4daK=RO((lIb|G)Kn>u6rmwmfNBw+Nk6ZL&nL6@nW7qz z-Vms>Lu#{HCOJRoKKro8B6K=lk{06VqnM(btjUG+Qna0ro9*7zphLox?ru+f#E~8L zj78T`te)iapw|pe<1kJW`mA0jv6{9ik%p54jIgoZoz*B8cOC3~X`bEwcb;kChsrWf zUO$8Q-q$0EkFL0qM_05>e0140JZhErZR_bdoobyRW|j{UFz<7j5K6o z(r4ZcZrr}^ZgYJg=w5TL9^4nsI!AIjZ3|=v`R>8r)-G~k)1aQ_aL}o{=j57k26LvI zcem@a-tJvHbln_s|8c)=wuNjtkq?u@*cR@;(eC8v1v{}5qz-cCDIJM7&Y=_;v6#DgCLMYe#A3Hhb7k(O@lD^`iw zSLv7|nthzw6b2fQ;_r6bLMAsJWaxoik^)_%xSN5YWgwLB7etK7P_J(0sNp1qe`L6q zu@EK1EuW;iJ&Q!XDZx4g~`D{ARxnYs`mX? zVKT3%h>3m?dszRa7ddo=G@lIj9AGekdhi?%S4>~l>Yvz9AyAtbs_(45BmQ;*ju|AD z`ubg9miEND4e8zc%$BV+QHh`VS-10@{fa(@`tjegHMf(_Ib+i9n3FUJFjL5)0wUF~ z=I{g&C8NlrD*8ZF7c>(&J+C80MMla6S~WvkGe*Fl<`DG*kr%_E9%IsrsSQ@glwnWlD8h6H(( zaqWKvMnZdk>(-kxo93WVxay@_oe1Uw0do!p(3yG@fx6ukK<-8W=s{P|Z2)1})$jmu z+D=-ZP&>{9f=6%EcSAVrP66dz5Niqh)@x3b>ZPm9a(Fq1gof%l+M~`q{E_08_9a47GpKi(g`j!#$9WX zf*DG?%gY}0nXqrnDKcouoB}@F&l8@enWrFt=Q*Il;mWz%NxqR~@7v6aJn3g6lQBM} zi-g@hx0-%oi0tzQ_iY329a}}R2Rkvl)S@_c5{(NMImU)yn5U2vcDL$lqrzJ2QaGXE zVR*T}=Y80-E=d%MZ$iz%FhOf5zyg!xnYFez8I7J%2|5i!-_jhh34LSWMrnqsqmTp} z(YHRy3j_cj9-JT3-IXaqn55T`e2I;9b0TdzH}p~+Y_Td=Sr8w7((p*JD0M%AW% z|B++PQ4aSuf}k>301)@Z7*RS9+oA@moR}@?(Le5sv)}>+@q>@$i_-CM1@W_yd9*k1 zWCsP)0sTkhkl#3?@iUc$5{6tjaw{68Z=Xsq3L4P35Gk z38JGLvfE~-x*sJzVd717Kk=WW%EDnP=}N;OW!Xot9t{c2=Cbt$Gs0%!5`uJ#c@kqd zQJ{fXM89JxKq*V7ngrquC>3U7*%ILw?ob%eT&^!*PEGMS5NV9+5T96>M``8}#FtE= z{v#*Z+&Sb23j%Lf96Yw3-y3+78-NF}?iVrssCoq6&jz|9{ccE7mxTF3=l6+8=)aEe zHG6p6tx3U%cG$FbV?IEV)#o_XxTKjQb&y%LZL%4$bO=h55iB^lz!N;h4a%Zye2O$- za-~~YIErPiEUJC0DM25lJ606MS%upP@({5aZyjMLGHtfNC1Zs^me;n3@JYlop$6R3 zH(v8(pxXWZ+pm`|;?p(NOC8zzuxU4a6O)}o6oBPa5xI!anGO{g<0&Ks&{XY&IOl=* z&n5sOWF`WrY(^wyuTlTAFaT1J?3fa;rKS)kWDNJ@Qsa~rKESsSbAYog%>D{ST*4WF zh!#f)IRS#mMSxAE5cmhk23%H<26?W%!b91T0Xh4JtVY#JpMn5f?e{6%d>m;)a-1lDg2!V}B)iu$u@ z2@bc$AFE<(Y1SU%Mo?rs08da1#|1^{Z&pw=uZ^HcHUwsTq(hPU`WBs@5?6*^UED9Qb^H2H3lf@3`p!hObWa$XtCxz4>B?YMC2S~vLm&&2A%XuUg zs-v0+34Clhw|<5K{PheLvID~LRjAKt|k#UT8G(&_o(Cv`CI#ghGI{T3xyHDNUE7O2_$#&uze$7>b}10jwp z7DQ92`!^LgB(zcYL*xEu!L|ywLa)KRYN?Kl&vpz7D4AZkB^U ztcOtHLxP)3O}76y z0x(_JNg0N{)zEN#eF)2MO4g&&r=64?-ZmM`WgD0^_nR9BAlf!5^fP9<7Nq83a_|FI-E>uUpK zvPQUhtT|t=;)02p5;7da3|aq3F$4!meGf@}hqQ>s$qq6cAV~*~<>m{#YR+#_}mUSZEO_anmG{C$}n6Y*_;m+0E#4gbeN@e zoeD-Vc=~iwn99e1m~5~^`NCFqFpTmA?}&1!4V{3zDpAFgmuNj)G!fmQ7`g%1NLTg& zC`P9UjW7Z;vne91Krwi+l{PI}@W>;=71Ospw>Wipz=8ZAOReSwQ^slMJCdB_$i|cg zvrjC(SQ>YdN234VoPAa>e3^Wf*tusRDW;yeT$p)|_h}c3G1HDw+TasSr=7I;w3BA0 z9p;S0X(!VV949KE0mY^rtO#OX%mcl-c(YC~Zkco(dJ)#*a@erqLhO`dxSf~Xn{oW? zURIHgKH|S!CI$-Qe(S8iYOt#@;P?3WdiKW1!gKVc+;QSrM6po z_9g+n_vQfqy`X^?&gKFap2dZ7084{mvLiM`YZ6#;+>DbF`AbSTg!?M2BP!`Jk@%xBr+oQQnA8kgb4k=_kze|z%hHv#Xt6*HUIb@B_ zshmt|R6|%+m246IEBDTuAz_Z_c~)0nX6i)GVkveM9LCi}3ds6Qd?fN%QW$r7{1mwj z2@?%_H*#K6&>%Wkz`7HSFEIq@F;MXFEidf2^wN7DJ#S4xAZv@<)x3kD>D|+>UH6ZF zZF%_A&q&1HiIcJHz4;HfdoP>)l9v{6Q$y?)&SaWH97R%}u(JvadGfSvTJl74gq8uN zkks@m-r{`*>iUEyuX2LCihoh?Yja`^7lue^-C85b(3H080lDA0wFUQHanhA%U!PQO z7Va}^o7IGxIq;9(^vBEoxare`rn1wb!y$G_?wf{rpBY?~^@*@8PJ1SY#D_-EgUM^{ zsbMA;fqiZcL|*O(qVq9Zx}6EM000!pf`Sp~!x4qM?WJzs{6O85P6aWh;E1lyQW62OYwFvb%M}}5y*@rhNa2v zXB15LU{^=^N<5R@3vViC9bqEjxIS-f2*4O?7?Y`CPhblV6QZVgyLSw(Cx}Y(2-v>D ziEZ{eGr7HEa3!_rbUD7~7+e!fp(n_MLCVU&oGItBIr&!h&V)q5F}TP9u{YUBw#cOH zk|Jvb11qgF}2mVeOxfYF z&fR-v~Ocnq*)-#V$61fR3%yW=aqn0!5%g#HAI#aqcK?B#1<*rit~dd13;PD z7z~Y26=YHgQk;}=;?5R=W{NjR@-ju*1VFp-$HR@SKjWR0V47KreK-cO<+tk)xu;rHgu`kZWV$OS<*q4E`~}mh7*hx zBX@>(jKUe~3AB&?7JCCuiHz{}(Q~NDQ86aki_zp4MlKbH0SCbv(}o!(%+1EzVviQp z83C)q9{tx1>7Qp#P}-425I zPv#S0hvi2Ev)Pa|5X3o|260rjCv_>|=%9mH)2N6>gJ+;tyQ#})Wy-QDm*Ax|!l9(j z@8ty}u=y|8U9y=Mp+)>rqg=tvRK{^6<_ei(ZxQ<=)?IQZjab&-2weNs6Q zvBp4W4j?y@wEK-BfzY6hJgmq(fgX&5ZioW@Dio4uFTiS~q`C&rWJ-&&t(z$*6fa1K zW}ulE-tSNB3Qn3rW|&e?gl5P;#)&abBAJ0`V~x{zW#=)rl=h#{e=^5}K!{I3Ml`?=NO7?Ph!-1X5xmy+7|ONv-m~B^&5U|?v{iQ+A2r8c+~tOni$1C33qdqeIH6a45eWH1&Tn8{=@%tyk57j1A7W@Nd>LTZMVjx)DYsWA#Q$pp5^Bzp{IA_yJ_ ztnrpWz>|ZR9y&UD*}?m%1-&j_@a?4TPqKRlo zcFM*b`KBSFlD*;>(9L63*x{wHgJX%3wBa&IsG0#MWM%zJh{}f6d3^TfYj6v$46Ubs-MiL3_6x%VceZOME*TR{?I$}7JyUXCrz1<5|YKS)o z13X!88H6FDh^)~O8*d@XvvlXPJxG8S(7^#(z?6K8w8~@~&1HD}1Llbz-*sPVuvJqQ zNF$RdMeSgreN;CcKL)8+CwS zlVt8_36$)wexjC-F)LmkB=*~BP$pY*(;sF_uHTro={gvpHDB`?;yjt=z(Uz3I;FAb%FiUmOg_Q* zE+NX=m%|*~u8Yk_q{||90-=4dSs0-=JF`R@g5+7cF`kt1LYDT-Xv98wEPoLTIC5 zf95yxg^GNI5tu1)KqeMX&6cTO1mo`15Xf39(?>v<;;|Gm#7ZR^qL=aKp%|)5*JuP) z5>Y^NP#+^H^QDMV35#qtjMFWf7YN}>3F-O@omCvd1IB$J5fal6;2#*vOegqVAcZ^{ zL%8f}36oG#q^)7QhUX?_on>3q5+bUJ)x3TCQF-T z?w)2ViNW9l)q>anCW;^}k}2DEqE)ZeS?X9b>G(`va()8lf|2c7*`$GM2CuY1X{2ENU9t$~=A>vR4$ZA_VfoM0v&P7r%8G6^R0*^E z7P_<%JW|2RwXp_;Ap7~NOOmT)#5Hkrh=at@!Dt}uYBJcTDS8@@)pjT9R4!$02-#;Kl| z?~omOWJBRY@d#=spbBv-yG9-GHXBGaV900{ z0?mqpH>4%P;t6}L8Ow%8%km^CPBs+v zm?YGRI1IZsvjox#5sJZVQG)1RBpbyQzDEtm1*sXrV5Ac+<5IWs_Zw+yRhF{U`~{jnZ89AB6%l3uWt9_dIjqk$vG=M}}z%sI1ifs59 zKZD)tSt*;tn7_PC@{mIyP?~x&Q%^lg!#40UDGmIK(oB4|=Y$|&0Ycgfc_moBaQI7Z z#F4l+?kG2XZ?a@)e-XnR9m`I;lEOq!_`Rk$i4Ppqkj15Cei;7gujpg=y6f+hXzVYm zZu&$AzQ6rP*g;m?y7Gl|epGEP;LE=aJ?3!UiR4Y+uvh$xq0$*QG3Q`#)0~+_=nR`nYDekwx?JtF$0AImuW!KCxp=P0~R)O4T&e zRWtaWFZk4qAkSlAv#j>AAgcITusSx#Qr9#KurG1{>6G}yQ(>Ajn)rJ4Cgw@^tCn(V@LoG4BzyH*k~OfI_y?T4yI9&>L~L$iDao|N^5$I78J5oDYjXaTPuh+-G;ei7iB#E!_}=}d zL8~>j*(d(Al~A`84O7I|;H$Fr(G=}>DW{3#aT79Or3dWBfoNzu2P3llo$1&}T(k}d z)G%zy0Z>vS`*N@fI9bk&0xGHIeFKn>e9*}5v~~?W5?(cq(PU37!#5LL8o{d5{L)S} zJp4oRVT0}4{+B1j>p}ztYLNy28okB#sQ!0CEkh{*5W&=7y3d`?>Vf27vQeqjpYFl* zgx{qh?FcG66EZjx3;LtsfFV9cr-d%m+t#0EzMTx~b<>&GRlbP8BMrX9Aw|HN6E;Oz zr<(oNf-xDU?j&u~KA_3$VY@~19GMmUWy&%JS7O@m`^jRF0(WJ?wntG&{-!Hca>ytO zMu@}EVBBlytsxfzrYr?_J4^$^13_LA#Sw^PG29plG&JjXQjj9&rzI<*vO(xqLX2@7 zmGL{uK4y_Sn`ZmZgyujH25mqHYO^Ha2UEY$ogPeQ0yTpN6eSxAG+6hBmCP(^kUGoF z)({N4tqx)~8N%1amZOf=KT_<> z3#Qy%0T_w@Edz~1tr6~03#fQoG(90q&8(s2al$hK#@OeV?GeK4f};4bv26ZJa9NdN z%0*402)nyFFK59%LnaI@V;Ya~C6Zu|*J+4D8Ao>k10KEDz;vi28O*VC0|;ZSGZ6M} z7QmsH)*Hi@BlsdQ_SU-H=`=&rwIRt^GZag2Y6($`y4LFfly!CQ{$`^P)r}lNWz-!s zb<2_(v~|k@2^F)itEdV`m2pWBdORdV0Jt=aaxS0Pz10>H3(f>bNVxkp0`w+1zI^MK z|Fv1?5F-Ktl@n>e?>mS_oAl~v02+tvwJk;uUK`c*LS;ufGTHQPD)EDGQhz)mGN}(a z(lVh7p}#oRlN(??IfnIQ59<~P6@p)-c_`Guf`T)hn}-4zkY24e#sZ^M3|g=saWmLU z5S+jbB&8{(tYQvS7}GN%BjYwhXYX5@zkLmumX)&EEzN&g85^(N_cFHs2g-Q+KTyU- zt^M39KHjtwRcwmI7#r?|s97Iy53~ziussq4;m2RoJv@g2gk8L8#_-Kf>~L@sXwJkz zUK@lRi)6;C*C=>h%OId+8%b?rj2mYm3QKcUpy2x*&kvY^T9}*-@n~uZA%`#txo-rl z@+vUAux2wkVQBYbs8fieAO^#v8&zOfFhZe;ZMJRk3c-Zb5L}~bnbvB0!(^4>$5t3F z2yVklvoLfc$WtwG}AWMLGDH?XK z+ARs%e*4^fahMbYw~n92_?CmvNs-u9Xx`ui>A|`cPB1q6PHG4Pa{%}8;l58*G3J4ttVJt=xk6SD)VUzi9(O;Fm(cv z1L2DXz^IDrQ5y|aBUNwXo_M()1m1bu5cLd(RvXQR88cMyn^U9VQ=D)ew`-=y@+j_; zrizybvwm;Hu^k~l?lWX8NDfHQm;f72KwGUbCS-Lq1g4h`i<`o<(@8=65EJ+8$YEJK zSi3EYzcG+7T!^y9X~&XSYu!gAz}P{V>MR(Cw$>t9!+7tg4oz2X#W3 zsYV5aZfH1P(_*isbe-yI*wR2`YqEzzGt>d8%(_^qq#dVodE~3vGgBaIGLTlv36e#L>)#=LT_h?IPf^S%#VfbgYdwH-SEQ$ zoo8cK6 zLAe3&1tAzg7sq}OrUikBCvagDfs?3kY)%h?U~2gZd)g6(oHmJ{aO|4FyY#;82fyEwvN=4GU~85feH^H2gj?q+*DH$ zOo2Z;;n;C8h_H5B1|8UjVY+T+K_?7MZhk$g`H? zW;pSQwMO89Mf^@^^{Q13YQMtN9&7VvlZ?FjL@3DQRKGnCdG?7=Md9L->XnP2RTh^F zsI9IVP+nP7SU#Yruxdf&fU1%OrPVc6D+g3p6%8n@C@xvizo@FPrlh)mX=T45^K3@^IdUC|ElW1s6bZWm_Q)#`y@J? ztDoLL`T)}YUyz$rKfzV$G=6pS)sh-oR6)Z|=sO&^YKv-|g2L+3q9aOb3X2PC3Z3Pp zH4B|VPDy#mVj5Y^cOO!3FRuDiIaC)&=T};>tgyVa*x~=$lHpD?+Sdu>1hdE;2#nww z=32c3R2Ef&rTO5iqKN;zn>h;$s~6T())bZ(E-Nf87X}xXRxB=DF`%lpx~6DA&fwg< z{Gr1J=MT!yEh)*#8Jbs^Uz9T}chIoB+~R?SLyPkA2j|b5H*7$8>Ab2!A-Ja4BDr!v z>Eb2j)k0a|RNxp794x61wB|aWs_3?wN@sp)dAYNEVI>_muXa8_1$L9S3wieEr@xT- zFDq8Y*QC`pzf7e&^2^|t$xnERc=s*17CNI!tCy4)u5<*CL1$r2X=Q~|RZ>%1RRI`< z6_%bLqmmV1s-~p4d?jDnKlNKne!mnUh2;>UK?xmQTCqR~xiDn$5eDdeDZ8k$s>Box z?N<$0TvD^JvRD}Zgz_f?b20=d9JJ!sj-PNN+~q*#IRkSB<>ciI&KZ)EpEHy$&B@Kp z9hf^PH!pW^?vUL4+@ZO{2IdUR9XN2{pn-V<2M-)FFn{3Cfx`yn49XoeaL}MZd4mQI z8Zsz<&`@Y0CoeZ|VBVm-yu87AL-O+ThUN_$4CxFWIC#+DyupJ94;h?4cWkHf4->-{>BubVHVg!T}M-g#=;C?sx_1~Su^IrS{LI3TfB_7{fQdLsTtYX;U zaHqdBZJ`LMs=CI|tFsu+@60Q4a-7O4CwEF}R-gyPEcLFzK+r81IcoHn!^Vy~eEftX zCQh1s!_m(=M@!~%wMpubWvIP;)=>8ODVK=+42=DkI%^+I4E!M5ayDD z2be9Oe%gP(Cfjf9cf$|))uG-;0k%L&N=`{lOV5a8wrJTZt96^U?b>(PuVW{hp>vn6 z-MaU1vZFnF?SH_5z55(=aNmCY2MC0pR_lK`*T}+(3K#@pMk!M_6lvyeJLeaOCwUo) z>88D9nL5p#HoBR7HS{GjeN9y%GDS6gT++WubxoYLaL#kyHsz2Jl>BdwabHaa|t7}Y-~+BaHWT2U4qF43oN6!0pF z3#*E&qr;CmA(kR@MahyugOoe|eQy7Od|!8L-{`#B((>Xtr4{olZ8>!!-&m7Ns~zFC zw4$`eA{WlPK%(BHit?3?T3%eTq`Yz^W6gsY4p3q8^Ompul4=&uuQB3Z&gdyq=8T&- z!<{g0)SSugl+hEX&2dMLoHTvnG`$()j+-!g)SPLP=1dvwj+$fo#WYqgj~F*~>bQxA z&6zxUin*OMakM94P$Sa^!x?GJu`{=WEao7t)*6woe}iV3SLK>WRx&hUTL}#u6O*PA z3C5N`AHM4xK6TQ>{)m=H2Tn!Fa;Lbmq`KljW~ic~k|i}lNM&_tjhDeg*IqKk>xz@6 zkZOe~kC0)rFw?|Z3u|hS&*#ji+vlj(>gqXVB`fz*hv|XJ^74`@@M6SawPKD(3rlL} zG56_nPjDV5L?+(bfiy5dcpj3O73d0$HqDjm=L*awkK|4d4fBu<_X1zjQW6FAE4;eA zauD_B_|5pqbDL{Gg0tU6PZTH}r zUo!{pUs=AaWDY!{q8gEVFJS$^2Mm)XRi(?MK$W0O2@X%gGIPqDO2*p!$}0M~8QlgP zci`vCA^UMJ`CW4AFO{+PCI^2*+Y{wrsxbU3@w$)mx{-BiD$7bLB!hT@B$zFQ6H5QF z$|Tarl9pM4g;Xs0O21}C(r}08Z<9~_bRXgRK^-=&mDOPnLIxA={d9NI8Uud12Wj<- zpYBB3Nl3p3^FKHteJt? zCOv|5T~rg+F(>q$9i2UU_Pp8iXIIRwnq4#e*nKA0QVbXa;Bia1Ru8}=u((8%6)G_h={Bh+pN@tVSvtN-n%C#py$%oRjWw$txpZ{%d?)&gN zh+m<@NL~yB7f&~Y{o{(X5v(;W)QUTluhgfof|A0;PBEqmCg?z518~fs{9lT~1Ve*W z+9+!eWsc*Ths;*w_#jEUX3H+7P1dKK-&NQYtque6Vn=letH>WO7@Gm zjbwQhRMNmmlGfJpbn#A=--~o&-)l_v<=2njf5QIJpK^X_KQ(Lr0N(MG`CqetP<|rc zN5_-BY3`H~jEObFhu2mtuPR*9yU$z)I}p;}T$JRwR(Jub_&8t-H1p@{#yO4Bxuo}z zPtV(%4dSMDKivl5=e-qpME85KK}@WyD4ANhxWu%=ZmbB&}`qlO1++Ghoh zRXq@^c-ged$_bSf3%E>OSXoswrKA`}QCLwkwPZ;l?60!QQ&~r1)|y;cRbAp*<-)Y9 z4EwEVft|}4E{12z1g6J+yYjf-$96Si$0(9qS|mNX8Uu4>S?!WJiwl>il@mH-1RD}!kS7_&bmSrXWd-KY zp8Y`j7_R=G`e3l1;HtFjW`+9*k?8lw!1=V??k45(JIhW$ErQ z;FXO;uqDDrGWO@^$>)jYL8)E7X6Sg@q!n)EY6t}CJ7$@A@=UI>y%bWWU7&-;Yh_OR93`ysuxz)Vll)XQ(P(o zIffepqEWIF-WEDWi$g7NkRs-lR3$cqb`*NrW4tX#fGlSLIwxboFa;GU|>$au~U|r3*}A8VIZJ;%4H*;4C;rz z@iA@&gdW5i<5#FRm1xXHulV1lt7>>s;er@x?cX^ou!g=@|I1clkYH3?W*JYN7FNqq zbZH(ljGBaFrF3!aVk99`nBVEcb=1M|5n8 zv;;zl3t+?+&mJH#S5IS5M$eFOLyG(Gz^X3R){MgFD~ipiET&;aRh6{UAEz>5R67Ya z0H2iOrXh4z%tMvSD~#%hr*Dpbk9i_??@7I;fdKX21-jY%f^#BHyVayN7Ed;C7;m&{xxy7A@xVcg^B{*TFvhfvmkQeNB%4ie?X zpKYIw8H~LzeY^4Z#&G<-EXSVB*k(wu9Dnbdj;$5iypP$keM`78gg0*oZ)gVJN5(a; zdhk%}3~`55%+&$LY7d+=kZf}Vm>?L)}MobSyRd5m|Xj7?n~rjoCAXNfQp^3T{TGE~!{nT2)yg zt2Y*qWng8BFB(XOi1|SY7cerD36PjqQdC%5jappdERw%!c~vD!a;Yr;zmfblXJ-YZKM-VQ_+4UJwk|*2$Lo7z(ErajI_?mq&hw(y9(6AFvOoFh^SKv& z`{|3hmtDqBZ{t2Oe+G?}-s9;Sg~bFn7-dDF7KP5DN|1x)*1BR7%K0C@Q@P%EQkUly z7M1x~u|1R)EldW-Wx4_(r}r z%_X2W@FeM9+OFnozPl+;uwDz%3Z`FLb~AR$Sft)BEi={+jpU1sy{&xF8JODvb7ES! z_R}pJy;oZA|NrO?kY4Hl@ zSI$UxvO99zw4?qj?e~JLrX6hg$OR1UbYLoM0!vBpf|C9VOG+0ktZ@!K6!TE|d_URG z$@Ra#(fi&{-@4cGh~e#z?AyDKN-M6eu?hdX0VuwjpZxTVFf{RaKYeSX^arHHH+~x2 z6>7ED7JyGEcTd=}ZF{tE6!6Pm;M2x_qz5FVui(D0aTy^!$IGArqoV}n5~D=J)4SX5fGGN+%79o~03s484e zAVv{1IGZxX`@>#8?c>~tY*Mtas^7r=`Tg^Z?YXe3XyE_`AYrX~LydvJozyvxI@6(h zwcY2F7khokBkymIR3ZL)jWCzMQT96G9D7}Vzr8N{!d&au_ICsPJ=vznT-QE-fw`7E z_L#2DoXw#Eu5T|Jo3HB?8#^!NI^xYuIahGq(EWjXp5vN#z^7%IBLnrj@>kyPjtp#m z;gp$q%SHxvPF%2f$MquvhyHf%?pd#m9C7CDE4tm-e$?a-UVm5M4`TNR|E8ZRT+feVm2c6-J9vmL{$4|CR8y#Bv-R`A-KW+4hZF&rN z>%i@!v!DOxSG#gQ8U5~=n};3s>po+8-ITWegR|z0*{>q`_S^6L-Iz@ekBPo<_0BQj zRWH1I@sr<;Iq8UpstOAR9rlK^@`*3oEIh1B>CBOL?sw^7H(%c2pl2R``mkf^c`{`=z9|I@O| zk%w>p_T^PThI!4!i5F!+%}za(Ve}dk%m6;dbj!eXZAc_nS_O-syDo_-hZH z{Ce)>4ddG$vHR#>7e6q5=G;p@JfiN)@r&TR;YmY}sQTiZHy)T*al~O?4{Le%w^tm|>G+*b z^||-?BQCpe_?VilEhZLUw)^^>XB134^r4rZyQ}~5iJ8OBJG1nwtrNG5eEIVeyS_g0 zw;P|Wz2eFalWzahxVC3Zm@uhzyO!@icjJkZI$YFx%cEWHm~_nde|z#TSG+grqQ9K- z`X5JUPhK_Q~@`C4KSx_Mc8ZVS4f%!D9|O za`E*0Tfeqq?vXnW%A3*Yf{jNWKX}LWuio?Uk>xvPJrd~SNqw^Q@byD=-BkT+DzMj!m!)VSa{g9{+FG4#SH~@)9UWuxc|0s zw@jP;$(I!!U;5{?>ZNy{-u-u7r@uYs)(#)Pc;xgeI?jFRgDLB#|F!#yXRd$i?&-g2 zdvNh1OFo?5@`b^Ne)s79Guli%`O!m195dsQtfwzKAnms^zT5cVVL6BY&x}Kd-+9zM zo4%SczgOEkKfOF>X8phRJD~cn#WQ!keaQ!{zP)JXnK$3}X`f#|IrD>K2UXv8MAEFX z!GR6gg~Mk3PeI_5(mz$sy1P&P(AS^2a@Ik4n;-ng&KG74cE_%0{dLQucJ%J|-n+9$ z9`#|>7gz0{x8kU6=PYYAz`fz9M>}0tdhgq>AN8Bf?H+jliv5nBw6oKvTh2J*=z-mG zz8t&!q@!2&T9x0W{U49MwBIqw^ZxPv(Ik zF&F&vfvJaY+HuUG&K+;h4u5vc5!bvC&0Bl$?3{6rpSO8n;p|l}x_6IVbKdM@rnGst z^Q(WIy|Q}z(@P!+96NLJD=9~Omv`*q-RF(nb?BmFAGqPzep}~nKDM^=?L%kQKYMJO z!q-z4Z%#k%`c+5t8kIESxaVG++i!Yu&2f*m`O}K)Qm#F2&CIttOdtE|aW|enx&Pp^ z+Ri!Vp4}@?S~7M{)qBTwyz0~cI8X2q?4DEe+h z!K@j({$6z1!ako5?weKo;C&z0jLaWZyyDiJDeXqDES|CJp7}?ee`E2G%ptozzxR#e zk>`wjp>|uxl6KY8CO-4R#FFNB3R$n}P zM)ttP?@cOr`1)(-FaGBn=ic36+NQ-z9zSI8*|$BlIP<>K@4GoWrQ)2beuKJScSyxW z3%+@E%Hc~Z)|~kD1#fM-s^Zncuj;asUaaU_chA2!zMfUNY*X1m!@G>G+<0=z?P>Fl zuROF(ucf2wZmN8=!{W!z-?Y1O&Fr1^_uSuU$rHoso}Au!@{*D3H;sDFS-WJ~b@#VF zpwFL{yt6Uy;>zj|mb893uw(ygdM=&O&dnWg?yRL{NB#EOyY4u9=^M`<|4QD#`vO+)?}Wo2tBTB7RejdP zQ1xTWj(IZY^&!U0+l5{e1&(&U~%rSAVHq^YWzjwUHYqzxwQzhu1Dx zd~T%V>iXL4Y0D>m_rz_rAO5x7>)(dot$psh3ENf|ILprb_2yaKr%qcoVB*eyzq#PF zWp@`Izv$H+e_7VP?#wF={`<$vj@~rjjAc*sUcThyulr34&sl!Jzk1Tt55KxAI1e`)>J{_hn`8{MW!0cYZvr&+uy(thg%Yx?9)(?vfP?jyrtG;8jnr z2!1yE(Sk0iD^D6!v!?Cqzgn5Q`I-R}T2!q(bmzH;T(;rrl}8-EJmaCfmsT#>diwlt zHn%?h%$fb_4@n<$eC4*Gb5B3xgyT!fd#)OifAjHc4(r<`>6AB*Kklf{vq%54^9e6r zFnsWPPfR}H=|fKo{WE;Z31iMW_~chd-F3o*p^q~76yguWBRS$hqedml8U#|M%!wvJdP99Kq$OWCZmz`TwmvLzJ zO)1MStebFVpV>P%K3;dz=NAq8wrhCxrrN;zU+vCc9sXV5y74bBUj6zpBMzT*-4(0< zQT1fkH>N$mdc!$MySp6JV$EHDKdIu#;RS2@Z0PydH+L>uGpJ_kuX>!Yb>v zHEG#r{P%&7wN?4)5b4DH5z+@GIUpWU8DAx0SCSlaY~K^=hC2>$`QKiPekVBn^sQbxqi;s+*|UxEyyB(lrdS?7 z*3&P?kM;D^2jV=HZ@ejj-|S!T&Hwf%^B31xyZnELFk(Ss z7ad|_#5O~RvbXx_%Src0NMA)-J`w-D(z2EM>8nZ0ujQw=k?x$3zLj)hd3TVOF6rlg zmbB>0Pd`ptelb6-ahh1)cckT$^WT3(dQd_-iE$_2y8qsff%DVDcz;O3`y)vwmS03# ze8JCOLRxg`r{BTup!Yx9C;l@(kR>fdlyMT)l@y{2(!f%~A~N8Mnc%V|e6Zo0pO)I! z?|)h?|9`Guh58>KgsmJ!hZz9)QHeBMtVKw5m>Prt)`;`^^iC)Up%6%F$D zCM|i7OX8pN`->Xql0s>$2y|!nJ!AzOnxHFWNNY)&4EFoyEgPRZ;O$8N)_+Jp z@{to4-tgQX@4EN-zrVVw%e%w3T#@&$4_}#cUh&G;)_mLk?wzN+{n?%a*K}(AZod;R zx}fzJEuI_k=i4$%?mKbWxP|xa-}QG(Um0}ah9&O?FFyG4br-MgFmlK0KD(~|IQ!!E zGv2!N#&Dbb!MUv-d;XNtgYP-*g$r(Zy6cx4j{eQ_ujXf;cK)+t#(dgxzptvtK05lJ zbKcr~{m7@EI<~6KvFlnK|EojiUzNA@={qJpd~&y&FMWPv(FNU)Jho@SxtW)5+Hc4B zl`o(4>gs>gO}e;c#%*u3S-AC>c~4zfe9-xC9=BhXGpzg6J+Gg*W!D}59(Cj`ZARSM zuj91`OnQ9E5$DcYwB_t;F1l}KTlWvEZ~Eg2lMlS^g}Q%y`s7F5^Cp*UpY!n5Q|@m2 z$PEvSxUb`etKYq7!n5zSe7M!GJ{t1-$J^Ftw7!4a)Ri~8o#syd^Jh2pSddl|I^(5& zI~E*v>($>KcXX#IoBIr|ys1~-y36i+@4NA1+r8N7-y1$Us@sN3*DO4(d#-gDJ}nRcx9&e(I#$=UcZt{ewFuwY}ixxeG?0(($A-x?XkpU%senwe`Txe_E8kE%;oA z?h`MXdtcRzKfN}0df#4;k7{#Xhx;B2cc1y`;K%Q7yZDXa-LAhr7zuaWdeFfy3|Myh zqt1fr`xA+njdIzixi=(TC3cp!=QA9)A44yQSVW^Xw5B&%F52 z_}^t!e*NKoDLY?X8u;5at3Iu4^^aNK9N6}`%=zyOx_ir4cTc#b&)IXY?%w+OwWs#^ zX3BXFUwQVlNas^Jw%q#U(|0|5&2_0Kzp$+GhD+MMv9)ve<6ip5%U3OiG7Iyr!?0=4YZ^raXe%tQ+wSkm>tvsmb zQ(L01zFb$6H6u0e%Gb_$`Kc2#pUOS|o2i{gmw)zl=jz>C@($hd$*6BzwZC-67gJyF z-EHcz7fd;J(FK3cnm6;TKZRc`e6RmUlh4cg%cq^+9{q=ho)|mvo>|BI|4=x2`nd3) ze}74bPVYQcHu{yJL-LoWmVS4`erfUtQVu z)1__B?!Dht?@xCh?~u2q@TCnqTE4KZO~qj|2G{j+NDf9SUVuoa)@bgO?i zSpFxc+w*tqxAv>PUw(YkMR(`*EIeYrtzWbm_W5DGr%s$bXWGz(?LXRjboc&!pZQa5 zq;Ac~xl>0SbNbkhvwFVt(C2^4x#)>b*A7{A$l|sKJpE+x^BTn?G&S`QYXM3SM_n>EB!bvFqoze*R*+d;aJ2;QDs| z-d1z&P5(3d%Nw)$roXcA>VK^oH|^c}%8k8m{eRed53nejtzC2yIn4}1P6MI>k~0X3 zf(l3mK?EcYK}iw>M4|~3U=A2SF=Ng-E0}Y@fEi4PIRbZ8)wGWDecylg+3tPrea>^5 zr|5pCs;j!ItE;M4t@SQV!)s51_k^8sW)E9@cq~6sWx`k;_n3mdaoOuPb&o7nfSIet6HNACcE|57h>BH$`)^4uKcLqK`{OQ=*bs78Q zm+ek$)O}pD?_8gY!TP=CWfq$T)vA|!&C8scwN7)-yb1O8JCgy&gVbM>z zb;=|?wUM=jS@yG{WqU1@e6`#`qveUl{D?1Z8rLTdmgp!k<@vlAvSITn+C#R3#N`=_ zda#Gw>p#e+KIuZM;q@Ius;+2AZaug3#`Bk=hIlF+Dwuiq=>6SggF-mt z_scaG&#zLMyJW$Pi_-hF7FgWib#qqdjos36BP-2ZwP415_wF@;UuV7FmjChKAx`DS z&MRI0wU24P+C9P`K0*7|w1k1yHe2Xw9nmT~ckY6hb3#q!v2c1r__KS}C;D(#GM%E; zSf4I599#KA^BPxY!V)u|hLn+62Wzy?c)AZ%Tk?3?jj18(A3GnZN=v2Ga8F5WIH(jd zv)y9!Tlrf#Cw0K>O;^^~n}=o?9L*eTa#@Xa!0)WlNpANIzoeO?_bVvZel5z+=^J>~ zu=rLXH+sCTZ*13B<0b`}-Bufa3@C|Lmn}OxSO410+LOHv&)A+TSI)bTA98W;;iL@t zGhkac<)BZxc7Da`!#%1mTR|YYBN97eSFUn z>&}ADdN&N;*YXcrCE9;eJ=S@8wnn~Aq^9P%-g`!V-#|Z`n#+rMGQMz=Oz<4_rUOYU zI-=N%YUiHZGVrDDhn%_nN3~jLK72No)tfQ(X{5k7U1yw;a}mQK1*yL(If7Ngpd zW9(ZkEwLHi^za?temOShE@^J`dDhzV`uPXOEBaMe-N;sXdn0giVBQ$t_8n($XXP7n z+QOdSXgkzaxFw{aYU0dXExxjTOR)96AK~|=%8#o5tWr9#Ro&gFF@BSGdS?6c*_^~t zw|YA&C`hVtyfxL_b+upWZ+vB1?>d^BlU~SOQmh*47k02iyQ|_(iq85t3n-}`!{r_?km5r-!?9S5jI~C&a+xw~M*l_L>v>a!*%Y<{yvRZ>2R=(^z%Xyc1XC6kC(G#vN6uE8NGa$h&kWqo3ZC-sMT0 zn%Pm>Zih=vpT#fi*Zgmm8!!AC&%HG1AqIBE9 zd`wIAl3`C7!DY{MQssI6(?|F;tKQeSxOVYNwP`EYty)pIa#Mcs)>ZsR2FmLs)~y&7 zeWj@Pf}JZC+b`1%xy&!GD7mvhui>+w%IsqGyfvj4BooIM`1Ck+>t4=6<+pP5C$gDl zRU1dI>^(nZgx-i7w15@ihVqBr?9|I=t7xbUT70{Vr<2+B?(?>WwN&{Pso22q1fEeGemyaS0BwIB>^!VoBI_W+`aAwJ62Z3Cef|*{o%9o7MQl* z&(^%o4$3^A7?jxXX84dT345#CHSdJi?@^r8qt}qs_q)EWp047xY1f=vm&$chdl*O0 zo8-dD-7-z@gXXf%2FJBs?b36#K8Ii5X1sapf`fA=FYGDBRy8fm`?#-XWy6BI%anCf zS96q44mao{Q#9_dS=XMX0$1&^qc-}zsqKtC7j`zLZteorlkErP!Zo{EWt3%FeeZF( z&Rc&BiinC|eRrbbtg)y zJfr^93$^7tZW<4sx^&GFoza;A5^q}6O$N8K>eME0QJeby_R^l)AB2pazSOs1*?VqI z(5JYJm*=PC53(3-?~YVFAK!v=C!PmMa+3Ol$KX?J6};uR!%c6 za2sbDqrR|t;j9Typwk;3+Kr{yrEgQ z=2rWe+q?Ssmk(hNsxcf{lhwPJ^J!YkR;Iir%S%Vy>*J&@g)eyu&)ru1(qHR@!kG4cQF#(2v^xxcgjQGIH;}WdTB&{M)#DjDmMyne4=rC2)&IF_bB_tGTf<8pzFcv^Z>x0( zH`2+`V&}25$px2-p7>1+)_H6eb2!TGM)2G^3QfhRHv8 z-@n+)@Z&y%2?j-agBou5eCkfP_PlytTXLJF#^tH`u3x$*xVL9}ybk8~=H=AQS#avy zl8bMvm~WMQ_1Hm-y*=xP#Fl7pmuM^5bXG&j?)2{GSA5T@MqYl^{dNWKcJ-BLeI+?p z?v~~rHWB6Qqpbmpl80`H4cKlXIjPSm&7{3 z9tYZ+TG@fGX^m5w)wrJPuAcH9E3egjkXD=OIrvWMl)Iy^&swRnIpMs|K}iX(Y0DqK zxwpojv(@?0xJFs&weH=H&n#AN)B0fE_T6cPQ*cW69NqU5jZ~xFy|Vbe<8 znfo~AFNQpurGML?e|O0)gR7C+??NOe4JaG8Q_$T#t8MKT)sOCu;N?5+#BOVwJCk4c z;C~IvbkLzh zX?gE8s>-aH8_vErZ`aXRJ4d>IRCro?^0kqs_x+Ldu#r#gPSoopv8KP~UEiusZz$e< zB1NY-=#umyw!y9uH3bWL)+t$7?%uwpNwaLEidSsIZr|I(-+wu#m#$JX)I+MQ$Elke zAAFo+_so#fr{QY98VT2MFWb<`2CnH^2d3UVtFo-~LE3SSMERMwD)DuXGdSv9+YM6& zIMnp5XV`g4H8vV2uJ?fzBGWB29cDx7jN zRsY7xKV|i_+VJ!1{hlk69)us)Hj{|h?WSWoz3J*sJ>N|XHAB|;=<`LP8P}BhJj3Gwan)+|TAsHn-u0N!%u9VAJg~(_qg4O!t?^44kKB70yC;{p@@&ei$8{DZ z``K&5G}_vVz2`ze^}HrG?}MlI4mA#J(>Nu!W_8{*8)>U6r!%HB@8yk_d8K=5ta0s3 z#jA&}Y?{k%xzmuaGHf8tOKnfLPVp2?jmJG+>};W*ujR%p+G^#bvT3Jw#Vnr-nZCKt zHukRk#(p$x?&_TzA8T&jpXnuEWTMrU=RWB~*z>}7aWkb{7wlJ=^3{$ts$fb}TP#s^y*c+KR>@ZdqaoL09Cycbq92HPer#YDTU75 zdY&V=%7{&fU)im?ed|G#@VMOEr~ zxV6%;!YcJVDlCcODwTfyc%r~6OkaBK&U38DDokJ76hstSh0l+5XuB#_Y!yC_NgHE` zf-8A`ZqIJz6Gd0@{MxFf^dSnbB>ki8lwFUo;ww&H+I)$bKonqc`s#|fa$TYbi=W31 zlkWzJL?ISGzu1p^Hyp0Vim~YV)kZpnoc;U^E6AesjoXJ9AKDp%6=l)$*jKw~yV>J> ztS}4D&n<`LR{dkC*!Mvu;Jswtb2B2=)Yg{SrRrEmREw+JiRa@;n1R@Dx;H%68y z+^VqeXl|FD9ipf}6mK>`a zk+cCsVOMY4jM;-cUpd!$62)ER`xc)=N38K`96=O#)o*;?@ye1DIc}>aR^-(a=)9eC zXj;LmP1RVTSNU+lYsd803)VD$z>2-UXfi9zizo(j8+WT^r{?Bv)DkKP?^|`R>hzT>3*(5Q zu=d<3FZLcdK4EzjQ5fbF7z^4q>`0K>se%=URc~e&Kf3YI)yse=5Njn$SNZnZcq;AV zLaa#4DLwP$CTpTltims{xII06a$)yKtXQmRyXjz(nuP7fXrf@uKB}>CK$K+J zLIzzWQ| zw~s$Bh_kw?^h6FTGAm!SO;F$8d0P3NA695qV-763Z``?e_}n^qltHu?rWWfDbawY;FgkDcpQ-S;30&pOlI%Uw7zvA5jI@mTSho7PcD|0H;O zz9&(DR;_4wSC)M^ZGeSP5&HTD2dlLUo>X+UVufhVnfa4kXCKsg`J)aiMynS6cy{iS z>C>L$iGsA&g($Y0rpx99Gy7phY0ki0-X*?VO{XPMm{yrRTZ8rdJl*vm2P;l%)qJm7 zv6ZhsSd}PHbIQNj$lXs~ck@msR-{(x@s(Doa(vGDAfiyMxvS<#{_F7ZM}moBHGAc; zjvL9DHCx(Bu!1$u=Y50x1fOGfAGKgbYYip!SFM*bzBav{juo!i%DSzwr_ScNJa5N} z*Sv*KW4`S^G;jLKQCI<6qf7Ve7lC&O4KjjKB)x zn)W+A!?HZa4A_&8701~V9%;U=oOeF(StwQ@=NZ<-u6_5-?b-5FtVpi;ndZ9g=90EI zkB?)8a<=V&8FLg)JbHOI2P>BI$^tXKuygP9;t>UNjkmK0)tDH2E%YIZ=Io81RR`u~ zM;y{43g^6qJD1E33V641%~`B?uF?I--682o`l4CISOHzHC2d;y5x=M1nnFeNFd4Iz znJexeemDXvq^oZn`sJ+r&>I$u$6&>DT_20W?$-9FQ8c2UuB`Vxyt{5xbncN3tf;Qm zT3}h?J!tprj#ors-O{JH%5VC%2vwrE&UI;tvN14U{!WW1u&c?1*&SK`b?}=wqR6h3 z6so^RHgd-GD5B8Lr8gKSDrCR${&);4wyV4`Tq7wU3i2vT`@FLrqa5gY z=mJ)h*Blse^Kh>Q>(}-~VV=#kKA&M3R?HMs+Mg&o)=PmzUP}@FcbH=+otXQuxW!yr~QGPXYZ-!w7d%d|n z(P<3MfTW#vSkYd2pWbe1_hFo)2114VwXILi%vnEd%u8jgc(2>UzBqEpwClaHi2}az z_iN>2-Cs}ZsA|QE`0CEndW6hfyYW>vQOMU#u%Evpa_Xz>HW#dz&+Rnoe0{q!!BETAyL@p3ZllW-{@L?^tJ<5+*dukLqSF3{3EMN zlduB6_UCG&jTT4D^j2KOiu@eAommU}T7F$UtpY3btCq)A6?>209kB5QR_xcFwN#^O z)5ffz1};|c=X_#4u+|J$N(v*2{wg+-3lGOwTy--e3jbOUn1}P0bWZSeA&UQ;TPHTn zV|Lb$7)lHPR20W*7J9h&S>4})4FNQprgofL|Mb%RX`8S?0K0F4X{n0dr1@sVFo5TM z)8RpLVy_>2Icr$b{(U03sn;edvp z$qw_%2j?!{&cX%+dYOwY?+urKpx-Ek4GEMLj*jPLC=EB+CxZM5uGcfPCt=>4H!6W)1O|F+BtF4PC0DIp!&F7_oUaOo|-Ewu|b2D?=Ty! z^o?O1J&9ohr_O}7qG@4TY6dZIQ1P-WmHp9GF=Qw)bkOqCubv#We5ZU>A7b!OXKdSM zEA{wd7BPHKk+mIQz-YQNL5UbZXih$oJghD%W!qF2YzV<#({XIQ%uc3W!&z()!Mog$ zt>UxdM6U(K#4v*ClRPuysdK(AF_2(0qmN~tUFN0wY#=t2;GOvN&Zk)NZq4#wY%rlQ zc8A3S9qFs(Q`)fMgkIAnod)jH<6A?B0fq7pkDg&+_igX58-@)j)cekFH+`*gY#5Ii zROmj{QE}PfyJ+XDN7%4Jd89ydsD54dqcwN1frZ+xt_Mp~rXIdCD+n7}=vXapU_9Cx zW?XX>8(eU^PK8Yvv2x@4vI=Z?p>}YOnW2^ZqRbWRu>pq8*f~pfEn5>kd6g_S#NdYP zaZi{$>vO9gG00F&Ssl{Zn)|VCMJYDS(5APAbZtp-S|uO`8XShf3s;>JQxr>xp@wSt z`h=N=JB_a_n}iKEv}U~+dCQ(N!hM1=Hr(LYuNqr9ah@eFff#V8Oz`7vd%Dj>qlg%C zXmPjtR9*aV(n66KbZ|oN>18vscJII3ml$?5Tx<28=(oz`lq@#z(0uu%V=FgsP4oUl zZ0N!6rJFV~tY_fmQN-Ybw?!arzcGE)q)8pv@I$k*|H%QSf+^X-!~ldnrpi7juU|?) z+jMLQ!t=8^(MzRrLc$|+Y!ISh;Fg=Ycualg;(gdKL{G)jYclQhK+q9m-%b-B!(l(#W}BfyqdH!dedfXK%%~M zR;y`J(u~iGBCsKeE@MA?eC?6l&Thn@gnRrsucmQ}z^i&UHY`!IF>F5iP5W>}4lyv% zsSP#StDP0LH<=ika6MDAT35nK)j(o!qBcUx|Dn%{g>`evu;GdJ!i3B6nSySQAC}kv zg?s3r1p8dS{-J$|A&RQGnG~-?@nWB8KG+~d+jacJRHc;Ih#MKiFvX{4)sW!hPVdf6 z#|A2@dWo5mmu)Cqc`Oi zxxIu2EOJv96t%cMZh`F6=We->A;JIAnMINNniBJNRrv)Vr_y-dNRy7{us}dv?|Py+gCFCNYdr z)_72%({VE3;R6|LAfv9Q{?ah@bG=45F_h6&e#2d`Qd4Tn?#M)}tIo8x^RN-tSe zgAHfYD(5LIS*{_+tYTmT8l8foilfYqXR(VOVnZ74%_T3kvKnIcb>GGYHEIeTg8LFT zzpO1GhBZ1B-reitC)YIj69XHriO%79Kav;+9vfjp8`YdA=KH_XnH#i;!Hss4UuTHx z!-p^4F2{y9oWd0@>t}>77POzNYJ6(mUU($4OtaF4JpH z4)7iRq0}rleo1In-{Z>c3H34QRuA)o#=F1rlii{IpVgKH9aeBnfgC+$r^I9DSDC4V z8^Q_%LrCA0!iYNs3ExC9;w_+X7#!0H zRk&X$KLW}@?Me{>g_GeJwId3Tf@5?|6wZNTBxI#<92_H|Glhr2F>1FI4iv`!;r(D9 zIB~xT6oJdy4C1#b2+BeN;(wR7;wS&k|GvS^BXh_6=Q&1>K%Sx;BW{5G z;a({&LOwFz#O@sVG}A0%Q)vc!)CT|`9e;q3R@ch|k=Ny9WbjjgcKq*SfM+=?M=T0^ z-2wJpAw4-z*9iH^#nK__+gRxG5tlq=7mC0-DVFzTbJ@)p6dXn6>uKAnnRDi)8hkyt!h z$fDA(fMe18w*W?C5*5E4j(dw?v`|IG?}B6Wd@0-v$EeSy@B=aYTnxVx!{5a)3yfGq z^HUJRs$y6JFdAd2^4VfoN(^^FTG8|$#qcXJ{8$XzLw?BSnko-rt_XG&i$@sM_y68D z9Gwj=`cm>?F5okkP0NS!(PANL2NaHnW3~uJ?GDuo6_0F~(0x&OF&v}k?v)0wN;cxT zcP8HXkb@;chH8ljpB$mrLEglOyUCPverhaGqQ)l!_oONDF^~?Ns6xwjAd!MDFq@Z0 z?5wD=&^v27;cz&%62ZQ3jOv(*cZXxqdqHyy^bY;+dIppem`iY9=}_)` z;q_2>Az);;CW_re@B%nS*H6Wxx);Su#PBjPyj%=V0c-<-$`9e5BDeyMoyBk;5j+i! zMaxHhmMESnhO5M|8(`FDQRNSWW7KDgV!jAQ(L7T$fAsw$dOfK9iN=o*!x3UQQVd6l;gMoES`5dCVKgrmy`BWIc!3yB6vIhk z7|qK??AMPZkQ`aR(4$Vf~CcYAzun(25pepj4ekJ1fo9S#B=kdziBo{p5HYQwO9m(C*}#Vk?t9@OWFl8+!c)Kn zYI+WpaBM7wIp6^q`Ax-uoJ=7o3*8sm%q?>rb8W2ui!*Sj&*I+ycWr z9D)3OVgH6nzT-tP8e=K^9^(087`5L&eINhH<3Kmcsj5rz2J zlmx<1Nv8VX_XM+k!-EDg%>-dBD)vQa0wiaf3bT2mU#q^o(?~*zEX}6qq#$zuVx#Vu4f@Xvu%(7zz3G zhkVdjA`bz*gM0|0SYP;CJ)}kBeGdqR5YRCibN(k^;_(nq<%`A_G^U_&1gaEoAn5`& zPwe0}5%Gd%f{Rq-R~)>UB?!`i2NWtMow%pMK4Y@Qeu3UG8N7vJ=R4q!H5Mk6>4KcR zjI7b3KZ#@#8wVf7f&}DISNN+S0s1!ZiUMAP(!t3KxcDLnCHd)BhRQSnh|lA)kaJ9a zW=bZwt;Ls5dAJeega4oG47dsGHI$!6937=*!~7-fN|a?|61OF4;n(IG$ajWWRb1M+miHx_vZWG0evh6j7}UXZN7 zZ4%rgX-AO1@JooWA;Z`SY0@wEo~6GZ{6*8IXtV-<0t)9hB1uX|y5DWC*An z3QuPct|8HW0L>fGMveK&1pdS+fYDrWGz2s@qdp0`P8ymYQX8r#^iA~ZnPulDg=}-Dgzy(bm$o6uU!WHI0RP+{t%)eWI!l~Fc(4{gv}66 zK)3|q4ulQ}66G*YgJ1x`4g#3F(B?pBfN&hbMF_VbJc95Jg3JU+3&9eCD}+D@;Sh2l zltY*eVJ(D%5E>!ehwu`@CkR+j3fGF};Zz@<3CC#Ojpo`E7xPcgY4F>v$!uKrRD1j- z-~Gk2`~lLSwu0(U0z&M6$sa3ZjW^U*(6_)}uL+pIpzT&nA@4{bv{m%%{+bR?U?3%p zwgu8^LK?(nXAS$m$3Cv6phRxpsLp+R==6lY2la8m;V2!=#7-X=d%{ z#Sw0Fy;0(7$5hnMJ-y#NbD2dg%uYuYC5tCHJzjmhcvbo?>qPUG^9M9aY*sUS={@&D z7xe$K(Z`!FjF@uuP}cI>x29OAa8Cu?ADx-*eNpMwyzA*>w)NVQcxt1ey^79=s{>sW zL%QRSWDh&1_U5bLoza0|pHJT{z56=-!-Y3@qdx~r{CpO_RbgUkjy24@ptD1sg_8;_ z62O%mX7u^%<47<^D_Z=1d`p_kRPfUP*PaUjx4Xaaxmo=@SUfKj`k@HaR{{RoBW z&<^bZ|I>||gIk;U(cs1{J2%cqczed?K*gR7UQ=OVh{~q`^7yBFL>2fmADA6MKIpbZ zv-z1%zAzsuU*x|BB_vQ`RwTTb4Z*^J9BFBX|=A*4R^m^!`T1sfkQvG=5>Gieivi;8>0uj znH747^WzD|EkjFUe!mg+Su1opWA3Tg5Lcjak&t)Gw`$HRJ|An58 z887BnKl@>b@oDGso@XcJ+@y7yV*Fvj;RWX}POjDJw8i*ogNfQgS=%>uoh}$xZnHD_ zp5(YKpwk26zWq;KX}Q)oadf8-#{14+)$HwY@8qP;5RB(H_1u49`RF;dosk$%ToqSj znA&h>UuOcwpPHi;h9_=VdA&0g<6du%-=Fj4(fc=@IT-IL?Owlj0B;n>AyS-~16>b1^^;%71LM&uN{7F6NKb3&I)L#mD=WdU zo?Fg;?K**RLrLMKQ;+&D;&q?HSh8;)lN0Pnpe(tD@zvScDT@pZ*L!u}#aQtSZNj^q zQ##|jpJ4n_lQTO(`ssnjqV5kEn+h}@4OiQJd3*N{jL|cP-h0V~ z?q3}1>-M58ZEi>`G$JOE7#NTYz^jy28-2t_4Z$0fmgp^J?8s~YgQ}bU$4L( zfPjx|W8(}*!Tl`<@#sUN-4Sfitdu@I;TC2qqtO=Yj2ZY4y;M`6CqyGZ(YjPum*71TWm z*^x(|i1D$LH4(EXM@*hgpMkM!)cnSi!FG)e^tl*suU+sha)-&h)AS`6KaQ?lba46L z`w!{$826mvbjS8s&8i>t28<(@FI<_m_|zv=#tw`x9C{uSeE9BeE5-qg9}O^gr}q9w zg%9Hd#;fupuhv}PpG#z%!?-0_zwrGC)rDn@YZyCQ>Mgjtv-VL9<1WVYw?B>yzI=P_ zF2)m#T|Cy*-yUD{{SxC9#%z!JH9kIL_rGL(z*uvM+pag28>UM#e_(7nF>E#ajou|b z6Rl3cT7uQA=TGa|HGP?=7o^da$}g$=Uc+u3#^jOs4}Ifq^NkuZnc5gny0~WC$e|vk z)0u`Co84<*x;@c9yozaxaaFg+NQ)&&l}DJi7!TMpW64rAn`_NX7mU|wJ>D_fW& zOb?82=e6uhKRo}X63YkUzn!l9WvorgO3BW}bC$_=Mpk?m7rwofu}J=##qvXA4x0Z{<)c0yjiD5F6T=(D&PS~Y zUH@ONM;{I1FnHoGbfi}CGtaw_=ii?roPda2I&~fQgy&HBz7WF>e`h4XzKsdr61{1( z+R1d9+dw5+>HLK>+QW|$v@?tQQs>#goJ{n7?E#D4Z>ku63>eKXsq^0e_7=hCg!q4K z55mQ%J+s+Z9)#YozrTN|vIxs4m{P^{w(L!#(jWZC^dNJ{$^JD{vIQS0!ZHpC&jFXq zW_^Ga61X8P|N4x6n`foP=EE01oJZwR0{4dI3&QVUC=5II@ zBZzg;a+Vj|WWHUB57iZZXm;q9jJp2Jm z4t;Zp^H54s2U0*tAV_fL(`YjwA0#WF;?l6ZsQ^|Vex+FpY0!6HPDV6t49Ba^r&5;cOPxe5%KWp z405&@vbNytoSUAP6`N^f9D@XFvHTdMZz0QRUa`~5_8 zhVWE~qt5YwwCLOr;W^Z~=owS>Qwnj=1>j8{{-f(24*`u~#Sr*tD}bfuIKA{}lb!Uk{J+!Da$3KeM1Kw{oKHnGKbR z`hB?PKidAbhRGQ7(`TXKB2v#K&>)a}j=~jy(Ys0d3B1N3Y_3R3jfAr#2KA>{l7oJN z_6<5C{A9=zwc&BFH~5(c67P}*-vGa(Hbupg^GO^o3Hw{XZwZ`)0qq=|gXDdWV2|Eu zp){MEDl8XVy(MG_va!4$zbmlZkqt{TMBe**Qrco7>s5h$AIL8T`V7>bsnIDnC(+Ci zH2KI%Bf2?CSPY%3@IHpaxwwvCkM1`Gma5WV!4W!faynjM`k4nF3CUf8Pck^i1kR!V zf4spZ{Ncv$rPQ?j8XXiG7)Qpg9%t*65ty?0w-k7V6@ zVGo!3vmBK9ZzBmg{pa~@kRH7k)OG!BeG2E5>PyMHE&(@S3g`SKEv%%Y#a4?<~<^kvRg!HJbBRLU;(b$LH9hxMa&ZM>iqOX=xdTtb`mxk;SHS7+eWu4v((F zP-AE)XiMlw>(LGAqgbOEo0(e~2N)L_ml@aOuglzE++;MNV%i*Gg$<8uaYf zzxCCd?vtlj{2o1f8QC~GdwTl>1P==xJ|c2tOuQg*basAG$+Y_Qo3|Xfv}tpC#-TYQ z4GJZgEHh>zlWt*NTCT&iQqpD_%IHe;k?>$Cnv|}WG-MgFjHGSl{M^eNWK?CP)%y-| zV#Z6$SgK0sGqoh>ZjP*>5*933DH$m@es7k%j6Ks?LQ{$*FBRbBV549oWiBmS)+=ae zA88X+&0g9(H5orBz(YYpN>GU{VPifiG)guiC z$;nD8C_78a+MBY}O82@X1j~EM$PON)h_j9Ntv)BC40#ZmNk-4F5eO%7|L>z z;<%wEvEYmJ#2Y3uD_YBJl;}E=iY)1}8BbgmiznP-ahM9sJXW-%Jd3U* z&vJyDGm~A3b&YCP!5*BJ$JcuI|#bG51>(_0lu6b)t)kH*GH2e?V1DS8wnT zKY!Hzi%WK%ymtL=$J>ut*;P5Y^Lv?Ftl7N#@ac;;TNcyY7A&-^(z|l)Lbsp)hzKcZ zC3bI%_BZJn4zB$N4yv9NoRr(xbm{V~+pS&QK#ycl-oh&Pkk(>Ja>^PMOE*a9$&_g^ zHKge*3zjWQib8RNikX4vNB9*rWBI_LybI3f+;6SS5%SklhTq3lVV7! z$p^69nP$*GaU_-Gomo0Pqxos9Q9Vl=CCaxjH6_bCnc-5ZGU_s@#f_4bmDH3Bm+B)i zSk{yUje}_=XUfu)lw+1QK$L}*FSE2>+J&jabdhqD?jup&%~6-O;FvM>mGqTLXRyi_ zXvnEl%$2Z^=nG9vU8eMqL5_Us4b3vPL}`oMyJbuVnX*V;=^p9Qvl6oEeVMY7j?#mr zR4sXy`bB*=!PNTP5b0Oz8<-xmU! zm;NO!T7rv9Ng|VXnEOL|T}ame;|v-r|2pSQ&miA{e~rN(g4rOHvi%z|1knV5Wv9Qr z0^uk}qjf>~=-WXK22x!9uTT7h6r^SZQ#mXRfHbD{Y`kU)E^BBLSbW+ni5OaxaxIOk z#@CbQ$LPH=t?grC$v4ed{lJv5HpWc%dyF})i*LWIJI20~{?MK-tM6c_@X%p{Vyu&e zdYzM{cC6=n-8vsP+t`4PQFVd-8Tvs>57Y(GF2)86F4qOqn)O3y4;~KN^e8s$)f4^j zOKo-Gd|G>W2fbtjEfZAW%wR&ufIqsYoTUnzE`TP?V9;4T=(<`Fa?Ua`bafV828LUS zK1>&B6LmTtXb$NtX=tiavJ4%%Gdi6m4M}7fnsf%k3C3j>16~cfE`v#zLs$Y5(0L41 z7_}ia3!i`c{tMuvWHxm67bSUG30Qr=#rpN2Ey75C%8VU6dk%JokfSt z>C*H-IzvicI*!hek(2UbXhD8-x`QGeN|cbJ8_LiVS#(LbD24`u#bmP-;82pTM2EU( z>M(TS&y7KslBP4{Wa#k1(sLOG^s!79LxwKNyaSa0S1W~bWJpWOGU%3iRxC@v5_BUO zc?KVDlFoF5NH~${EX`mnWYQJrQm8;C$&pB0E)I+-)n;A4f!l8}~WNa?cXGHDJhYiYV7T~&gv1i5l> zjuHvFL_+n8Hs9NRW55Dx?pavEnF90cCf&fe)QgU!E86fM) zN{EFu*_>F^4SIpr5m;Wtr+|VP|Cdf&HkJtz=@B|VHKQOJTO5Mc6B0^-aaIEAFi;7g z&nC>;oF4?=hM*J%({u0(2y=Q6=z!QW3zTa?+5>l5q{PD-HiLqKqW%0sq6hi;11Eg+ zfRK;@?w*4@q6ZG}8Q|wWh?c5GdZ0mY4w5+kp(f@(c-F&ev=+p_9{eX28I6Ah6=y6J zixa@dJm}c|j2$gNE7*o?9`>fa9=cK_iG(@<9bEpvSTJ3N2Z5{B27ad`KOkJD*+D=f z#vg0Bib?i5;9AfKCIMO-ND2Vr5i3h;OB+jDOFK(@O9x9wOD8K!D=RB&D;q0YD?2ND zD+en_D<^A9Yb$GOYa44@YddRuYX@sbYbP5^8!H=Y8yg#28#^0&8wVRl8z);!TPs^@ zTN_(jTRU5OTL)W5TPHh9J1aYDI~zM&J3BjjI|n;QJ12Wfdn|J*M+ZkoM<*w^L?(H5c;a5+K&SqJ3?@R@Sm`xb%uQY-FEm((+c$j#F92& znfIF|?f|Y2leNvU2hYic0Km4p*6{(ygkduA!-=t)r{QCkgZodKmWX z)!WF}q))f0nYqO;xjc@yvbM3cvv+WG8Zgk^W6+8EYftk7n1D_P!`Khu zMUpM5JkeLgNqPSl}GCPnjVk>W$E@Xo~G@5dN zXgfz>&i6=30CNY>ug(B1H(0*R!bws&4u23#p#r-gJWIjGH28+x{=p4=gLKp3FTqb0!J2v#}F#4vidsd!_ER|Fg! zG9YBofBwF~$ODWbgcjva8a%9zGaJf7a~TTHhhy}PP`Cz;jYaTAI2KKhv?S2{$DJ6B zp#^1FD8|ndmY4aXu#ab|WRZN3<|`lYAKoTWa*sv^QQ2me=C;B|Or`^TO>&P_P!4<; z(?l`)s;BUFI2Og5#PDjs=$ZcEwdM%~(Rg^p7i#zWyyYBRYdDm#3<^?$J%u%(P3VhZ zRNqv*HpHX%ox(bRdx&6tz-T<8Hgq3o-aQz?5D5Q;drC>mj0St9G#hJpwQ99^v=}G{ zU86E8@4rX-Kx1q3eq((YDl8ZEd#FxDF&cx>Z{y({AK0U@2wfjK_JcsyDv^!^u}{fM zhFKph(4j$M51gY7X;421)l0hu_}{%R%F-ew`KZV;nT#$EGoENd9ig#Z6r=Zr!ir+? z2&4G_`yGYZqyF(bDn{@3?@$hH8TB7wjnJ$7sg(gK3M;yjcY z4bSE@gx(PT8^wVIEe!fOSp`s@3!n5&NLw6zkNs6Po05$9b<>CqgElc!a6CEd9qBa5v8k$WTQ~gvq4E$&g_OCEGtu^4` zvi`gs{IX)Y26>_}hbeqce>fh)d?-FS%gox`!Q2*4Fk-XflP%B(4T(Wbjb_<{$hTym z-J^S_`pO#NGlZXnTL=0Cfz8kj?`Yvdxd874 z=g*@(I00b{ggrR_a6o%-`jG~E=bK*r~?=cN%u)G1i^d=$Djs zbb~u_-to{~=(NLwIO`bdL7a4ydJyLvJ3WX~ju#%Yurm(+AUo`YBV-T*JKvZ(h&bIi zGKe_a_%P@NcCukSm^jyn9;}9)YRnl-oM|);CQdZE1{3EQHbWj`ry0pZh_j4kLx_`% zD?^BL3@Oi5*eQmqXDfDwk>wd%``|?W$JL$%*!jg>Paop+!izY&80o0XwNM96A6yrx-DG9d=4lJyaPx zqc|~?IHCADlsKQT@F7ko;(ds-iG@B|*vZ62pIO+s1k?8;b}HfMOPooh`w}M-D}0Ib zh?~B|X@r7b0(KTL(9ab+iOBPl$Ic-d{D@PCM}9(Q5dOpogpWUQ{!r$xik&{}@+Zz7 zUivS>P9F3Fh;xTw0nym0!?Xb6%;87?apLeXpb$H6FbPbu!}1^=fzxo}q#$EBaZa#uIB`mFYq%YDMxYpe6gwes4=2tC^23SKflcAW*}$W4 zp_73T#JPa)2y5(ApnL>zCa`}+h#*b^jz$pY0G}d! zu~UFPk(SsQKy2iA>;zz5WCSMvKNDGiN&jh4VVLaSHYyF1{Evz{fyw=AqjE8+|FtMW z<}WjnkodceB;@@$BhO*d{&gcuFj;@gNFhmobOa{n_l(ZMr2NIvgp7ZC^jl2A-x~dz zknhJ3(*2+qLbg98hLG$Zj3MOu?_!Q)QvF`BA26AIWGo@kpA}2U^H0UfW77QZv4kw& zDvprk3*xR}a{QV&LW+MWj*#I?#9zcD_|EZ!{5~_@8k64F$9G|}``hu$3CVo|A-DHP z$j7Ai1qq>;%zkr%Jtnb#oFF8x7w|A?y`O-P)lU$#VUqei0zyvTE^x)9^ahE9j6N)p zkkHReB;@nQ5*;z={HMgpm~7rO=^7@Pk4>72$>rxKy~L#Q=aQ5$nLIt2kjUF56Y}`c z$%Hh%E}4+UUr*kON#bQwHe+&lw-iDOpOf+ylfkb~Atdk*QiSC1qX_A{*Qjhv_Fghd z8k4+lA0>;)-P=Y9N!>?VVlwyO(S*dkVl*LdKQx+oh{Xo|r~R*O#PaVzTwiY4Vt4T{68Y%gjc1ecyCKsy-&2kg2aq zCnV~3(oG3@dIlj)ACy7J(#K`EVv_VN8RsxL`jdxBvT?(u)S$9?eA?aRS;ETz*?-pbdQtojxFd6sYaT%C|yKtN!wa0jShpppE zFzNQwaYC}~!aJB`JD~6iCfA-+I2e;^?<@4dWZE5t(U?Tra6BQ;4j=ywlV(?sCuG?t z#-GL{*` z$uRXrq#0PlF*iHQ0x?0PTEv4{NrpuhmU$wshpc!Dtk!8BkL;kc%~LYW>=UgV60EJ` z;$p4r@OR=rtg&M0GR!Fl`40wlQpEp(Okt2dX)GU+V*JhT>HLhiQSb@)H&H^1n7@m` z%eFryvoX#wzm848lmS?pqW=0*(XXFC1qLc6KNAXu$`Q-WAcoR`CMrM_B1SjlKc$k2 zb-<|vLX{(2!Td}l>J+Y(i;(3QMdl)vb~CiI8f+{yIuWldve*X8&xFP>P5>21exu65 z*9^~>x(AdNq*FMh@Df1+j|fo&*_arBFPd8-(j^e^jgo*r25g>CjrFlG1JfsCAbthb z6Hq!pPc0i1^E0qb4&;?A$mf#^LF*VmjFJR5ng(j-KM}