From f9feea3f2972815165b357724a9764a7d32377dc Mon Sep 17 00:00:00 2001 From: Laurenz Date: Wed, 13 Sep 2023 14:04:12 +0200 Subject: [PATCH] Bump dependencies --- Cargo.lock | 755 ++++++++++------------ crates/typst-cli/Cargo.toml | 14 +- crates/typst-cli/src/compile.rs | 2 +- crates/typst-docs/Cargo.toml | 2 +- crates/typst-library/Cargo.toml | 6 +- crates/typst-library/src/math/fragment.rs | 2 +- crates/typst/Cargo.toml | 14 +- crates/typst/src/export/pdf/font.rs | 6 +- crates/typst/src/export/render.rs | 7 +- crates/typst/src/export/svg.rs | 9 +- crates/typst/src/image.rs | 26 +- tests/Cargo.toml | 8 +- tests/ref/meta/numbering.png | Bin 48098 -> 48040 bytes tests/typ/compute/data.typ | 2 +- tests/typ/meta/numbering.typ | 2 +- 15 files changed, 392 insertions(+), 463 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index bf9d10ef2..0f75c9445 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -33,13 +33,19 @@ dependencies = [ [[package]] name = "aho-corasick" -version = "1.0.1" +version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67fc08ce920c31afb70f013dcce1bfc3a3195de6a228474e45e1f145b36f8d04" +checksum = "0c378d78423fdad8089616f827526ee33c19f2fddbd5de1629152c9593ba4783" dependencies = [ "memchr", ] +[[package]] +name = "android-tzdata" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" + [[package]] name = "android_system_properties" version = "0.1.5" @@ -51,30 +57,29 @@ dependencies = [ [[package]] name = "anstream" -version = "0.3.2" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ca84f3628370c59db74ee214b3263d58f9aadd9b4fe7e711fd87dc452b7f163" +checksum = "b1f58811cfac344940f1a400b6e6231ce35171f614f26439e80f8c1465c5cc0c" dependencies = [ "anstyle", "anstyle-parse", "anstyle-query", "anstyle-wincon", "colorchoice", - "is-terminal", "utf8parse", ] [[package]] name = "anstyle" -version = "1.0.0" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41ed9a86bf92ae6580e0a31281f65a1b1d867c0cc68d5346e2ae128dddfa6a7d" +checksum = "b84bf0a05bbb2a83e5eb6fa36bb6e87baa08193c35ff52bbf6b38d8af2890e46" [[package]] name = "anstyle-parse" -version = "0.2.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e765fd216e48e067936442276d1d57399e37bce53c264d6fefbe298080cb57ee" +checksum = "938874ff5980b03a87c5524b3ae5b59cf99b1d6bc836848df7bc5ada9643c333" dependencies = [ "utf8parse", ] @@ -85,17 +90,17 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5ca11d4be1bab0c8bc8734a9aa7bf4ee8316d462a08c6ac5052f888fef5b494b" dependencies = [ - "windows-sys 0.48.0", + "windows-sys", ] [[package]] name = "anstyle-wincon" -version = "1.0.1" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "180abfa45703aebe0093f79badacc01b8fd4ea2e35118747e5811127f926e188" +checksum = "58f54d10c6dfa51283a066ceab3ec1ab78d13fae00aa49243a45e4571fb79dfd" dependencies = [ "anstyle", - "windows-sys 0.48.0", + "windows-sys", ] [[package]] @@ -106,9 +111,9 @@ checksum = "6b4930d2cb77ce62f89ee5d5289b4ac049559b1c45539271f5ed4fdc7db34545" [[package]] name = "arrayvec" -version = "0.7.2" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8da52d66c7071e2e3fa2a1e5c6d088fec47b593032b254f5e980de8ea54454d6" +checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "autocfg" @@ -124,9 +129,9 @@ checksum = "7b7e4c2464d97fe331d41de9d5db0def0a96f4d823b8b32a2efd503578988973" [[package]] name = "base64" -version = "0.21.2" +version = "0.21.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "604178f6c5c21f02dc555784810edfb88d34ac2c73b2eae109655649ee73ce3d" +checksum = "9ba43ea6f343b788c8764558649e08df62f86c6ef251fdaeb1ffd010a9ae50a2" [[package]] name = "base64ct" @@ -222,9 +227,9 @@ checksum = "a3e2c3daef883ecc1b5d58c15adae93470a91d425f3532ba1695849656af3fc1" [[package]] name = "bytemuck" -version = "1.13.1" +version = "1.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17febce684fd15d89027105661fec94afb475cb995fbc59d2865198446ba2eea" +checksum = "374d28ec25809ee0e23827c2ab573d729e293f281dfe393500e7ad618baa61c6" [[package]] name = "byteorder" @@ -255,11 +260,12 @@ dependencies = [ [[package]] name = "cc" -version = "1.0.79" +version = "1.0.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f" +checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" dependencies = [ "jobserver", + "libc", ] [[package]] @@ -270,9 +276,9 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "chinese-number" -version = "0.7.2" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb8659add27dbba7575c058a3265d81cc078dc2693848445bf3788a883ec82c8" +checksum = "d9cec9efb10b00914876c7e7b1fdaec572b888443b4046cd11ba91eb8c5a1ccb" dependencies = [ "chinese-variant", "enum-ordinalize", @@ -288,14 +294,14 @@ checksum = "aeea139b89efab957972956e5d3e4efb66a6c261f726abf6911040cc8ef700f7" [[package]] name = "chrono" -version = "0.4.24" +version = "0.4.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e3c5919066adf22df73762e50cffcde3a758f2a848b113b586d1f86728b673b" +checksum = "defd4e7873dbddba6c7c91e199c7fcb946abc4a6a4ac3195400bcfb01b5de877" dependencies = [ + "android-tzdata", "iana-time-zone", - "num-integer", "num-traits", - "winapi", + "windows-targets", ] [[package]] @@ -337,60 +343,58 @@ dependencies = [ [[package]] name = "clap" -version = "4.2.7" +version = "4.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34d21f9bf1b425d2968943631ec91202fe5e837264063503708b83013f8fc938" +checksum = "84ed82781cea27b43c9b106a979fe450a13a31aab0500595fb3fc06616de08e6" dependencies = [ "clap_builder", "clap_derive", - "once_cell", ] [[package]] name = "clap_builder" -version = "4.2.7" +version = "4.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "914c8c79fb560f238ef6429439a30023c862f7a28e688c58f7203f12b29970bd" +checksum = "2bb9faaa7c2ef94b2743a21f5a29e6f0010dff4caa69ac8e9d6cf8b6fa74da08" dependencies = [ "anstream", "anstyle", - "bitflags 1.3.2", "clap_lex", "strsim", ] [[package]] name = "clap_complete" -version = "4.2.3" +version = "4.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1594fe2312ec4abf402076e407628f5c313e54c32ade058521df4ee34ecac8a8" +checksum = "4110a1e6af615a9e6d0a36f805d5c99099f8bab9b8042f5bc1fa220a4a89e36f" dependencies = [ "clap", ] [[package]] name = "clap_derive" -version = "4.2.0" +version = "4.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9644cd56d6b87dbe899ef8b053e331c0637664e9e21a33dfcdc36093f5c5c4" +checksum = "0862016ff20d69b84ef8247369fabf5c008a7417002411897d40ee1f4532b873" dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.29", + "syn 2.0.32", ] [[package]] name = "clap_lex" -version = "0.4.1" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a2dd5a6fe8c6e3502f568a6353e5273bbb15193ad9a89e457b9970798efbea1" +checksum = "cd7cc57abe963c6d3b9d8be5b06ba7c8957a930305ca90304f24ef040aa6f961" [[package]] name = "clap_mangen" -version = "0.2.10" +version = "0.2.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4237e29de9c6949982ba87d51709204504fb8ed2fd38232fcb1e5bf7d4ba48c8" +checksum = "cf8e5f34d85d9e0bbe2491d100a7a7c1007bb2467b518080bfe311e8947197a9" dependencies = [ "clap", "roff", @@ -511,9 +515,9 @@ dependencies = [ [[package]] name = "crossbeam-utils" -version = "0.8.15" +version = "0.8.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c063cd8cc95f5c377ed0d4b49a4b21f632396ff690e8470c29b3359b346984b" +checksum = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294" dependencies = [ "cfg-if", ] @@ -536,9 +540,9 @@ dependencies = [ [[package]] name = "csv" -version = "1.2.1" +version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b015497079b9a9d69c02ad25de6c0a6edef051ea6360a327d0bd05802ef64ad" +checksum = "626ae34994d3d8d668f4269922248239db4ae42d538b14c398b74a52208e8086" dependencies = [ "csv-core", "itoa", @@ -557,12 +561,12 @@ dependencies = [ [[package]] name = "dashmap" -version = "5.4.0" +version = "5.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "907076dfda823b0b36d2a1bb5f90c96660a5bbcd7729e10727f07858f22c4edc" +checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856" dependencies = [ "cfg-if", - "hashbrown 0.12.3", + "hashbrown 0.14.0", "lock_api", "once_cell", "parking_lot_core", @@ -574,6 +578,12 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8d7439c3735f405729d52c3fbbe4de140eaf938a1fe47d227c27f8254d4302a5" +[[package]] +name = "deranged" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2696e8a945f658fd14dc3b87242e6b80cd0f36ff04ea560fa39082368847946" + [[package]] name = "digest" version = "0.10.7" @@ -603,7 +613,7 @@ dependencies = [ "libc", "option-ext", "redox_users", - "windows-sys 0.48.0", + "windows-sys", ] [[package]] @@ -614,7 +624,7 @@ checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.29", + "syn 2.0.32", ] [[package]] @@ -634,9 +644,9 @@ dependencies = [ [[package]] name = "either" -version = "1.8.1" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91" +checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" [[package]] name = "enum-ordinalize" @@ -648,7 +658,7 @@ dependencies = [ "num-traits", "proc-macro2", "quote", - "syn 2.0.29", + "syn 2.0.32", ] [[package]] @@ -678,13 +688,13 @@ checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" [[package]] name = "errno" -version = "0.3.1" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bcfec3a70f97c962c307b2d2c56e358cf1d00b558d74262b5f929ee8cc7e73a" +checksum = "136526188508e25c6fef639d7927dfb3e0e3084488bf202267829cf7fc23dbdd" dependencies = [ "errno-dragonfly", "libc", - "windows-sys 0.48.0", + "windows-sys", ] [[package]] @@ -715,9 +725,9 @@ dependencies = [ [[package]] name = "fancy-regex" -version = "0.7.1" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d6b8560a05112eb52f04b00e5d3790c0dd75d9d980eb8a122fb23b92a623ccf" +checksum = "b95f7c0680e4142284cf8b22c14a476e87d61b004a3a0861872b32ef7ead40a2" dependencies = [ "bit-set", "regex", @@ -749,21 +759,21 @@ dependencies = [ [[package]] name = "filetime" -version = "0.2.21" +version = "0.2.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cbc844cecaee9d4443931972e1289c8ff485cb4cc2767cb03ca139ed6885153" +checksum = "d4029edd3e734da6fe05b6cd7bd2960760a616bd2ddd0d59a0124746d6272af0" dependencies = [ "cfg-if", "libc", - "redox_syscall 0.2.16", - "windows-sys 0.48.0", + "redox_syscall 0.3.5", + "windows-sys", ] [[package]] name = "flate2" -version = "1.0.26" +version = "1.0.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b9429470923de8e8cbd4d2dc513535400b4b3fef0319fb5c4e1f520a7bef743" +checksum = "c6c98ee8095e9d1dcbf2fcc6d95acccb90d1c81db1e44725c6a984b1dbdfb010" dependencies = [ "crc32fast", "miniz_oxide", @@ -801,16 +811,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "237ff9f0813bbfc9de836016472e0c9ae7802f174a51594607e5f4ff334cb2f5" dependencies = [ "log", - "memmap2", "slotmap", - "ttf-parser", + "ttf-parser 0.18.1", ] [[package]] name = "form_urlencoded" -version = "1.1.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9c384f161156f5260c24a097c56119f9be8c798586aecc13afbcbe7b7e26bf8" +checksum = "a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652" dependencies = [ "percent-encoding", ] @@ -863,9 +872,9 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.9" +version = "0.2.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c85e1d9ab2eadba7e5040d4e09cbd6d072b76a557ad64e797c2cb9d4da21d7e4" +checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427" dependencies = [ "cfg-if", "js-sys", @@ -940,9 +949,9 @@ checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" [[package]] name = "hermit-abi" -version = "0.3.1" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fed44880c466736ef9a5c5b5facefb5ed0785676d0c02d612db14e54f0d84286" +checksum = "443144c8cdadd93ebf52ddb4056d257f5b52c04d3c804e657d19eb73fc33668b" [[package]] name = "hmac" @@ -962,16 +971,16 @@ checksum = "723e315d77ea8aa1aedf53ad979ff0e763cfa2a1b3403248e427ae052f403cad" [[package]] name = "iai" version = "0.1.1" -source = "git+https://github.com/reknih/iai#3f0f92736408ebce6545808b98e0cb2aea89b7dd" +source = "git+https://github.com/typst/iai#3f0f92736408ebce6545808b98e0cb2aea89b7dd" dependencies = [ "cfg-if", ] [[package]] name = "iana-time-zone" -version = "0.1.56" +version = "0.1.57" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0722cd7114b7de04316e7ea5456a0bbb20e4adb46fd27a3697adb812cff0f37c" +checksum = "2fad5b825842d2b38bd206f3e81d6957625fd7f0a361e345c30e01a0ae2dd613" dependencies = [ "android_system_properties", "core-foundation-sys", @@ -1104,9 +1113,9 @@ dependencies = [ [[package]] name = "idna" -version = "0.3.0" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6" +checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c" dependencies = [ "unicode-bidi", "unicode-normalization", @@ -1120,9 +1129,9 @@ checksum = "cb56e1aa765b4b4f3aadfab769793b7087bb03a4ea4920644a6d238e2df5b9ed" [[package]] name = "image" -version = "0.24.6" +version = "0.24.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "527909aa81e20ac3a44803521443a765550f09b5130c2c2fa1ea59c2f8f50a3a" +checksum = "6f3dfdbdd72063086ff443e297b61695500514b1e41095b6fb9a5ab48a70a711" dependencies = [ "bytemuck", "byteorder", @@ -1170,7 +1179,6 @@ checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" dependencies = [ "autocfg", "hashbrown 0.12.3", - "serde", ] [[package]] @@ -1182,6 +1190,7 @@ dependencies = [ "equivalent", "hashbrown 0.14.0", "rayon", + "serde", ] [[package]] @@ -1192,9 +1201,9 @@ checksum = "8e04e2fd2b8188ea827b32ef11de88377086d690286ab35747ef7f9bf3ccb590" [[package]] name = "inferno" -version = "0.11.15" +version = "0.11.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fb7c1b80a1dfa604bb4a649a5c5aeef3d913f7c520cb42b40e534e8a61bcdfc" +checksum = "73c0fefcb6d409a6587c07515951495d482006f89a21daa0f2f783aa4fd5e027" dependencies = [ "ahash", "clap", @@ -1202,7 +1211,7 @@ dependencies = [ "crossbeam-utils", "dashmap", "env_logger", - "indexmap 1.9.3", + "indexmap 2.0.0", "is-terminal", "itoa", "log", @@ -1251,23 +1260,6 @@ dependencies = [ "cfg-if", ] -[[package]] -name = "intx" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6f38a50a899dc47a6d0ed5508e7f601a2e34c3a85303514b5d137f3c10a0c75" - -[[package]] -name = "io-lifetimes" -version = "1.0.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c66c74d2ae7e79a5a8f7ac924adbe38ee42a859c6539ad869eb51f0b52dc220" -dependencies = [ - "hermit-abi", - "libc", - "windows-sys 0.48.0", -] - [[package]] name = "is-docker" version = "0.2.0" @@ -1279,14 +1271,13 @@ dependencies = [ [[package]] name = "is-terminal" -version = "0.4.7" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adcf93614601c8129ddf72e2d5633df827ba6551541c6d8c59520a371475be1f" +checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b" dependencies = [ "hermit-abi", - "io-lifetimes", - "rustix 0.37.19", - "windows-sys 0.48.0", + "rustix", + "windows-sys", ] [[package]] @@ -1310,9 +1301,9 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.6" +version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "453ad9f582a441959e5f0d088b02ce04cfe8d51a8eaf077f12ac6d3e94164ca6" +checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38" [[package]] name = "jobserver" @@ -1334,18 +1325,18 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.63" +version = "0.3.64" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f37a4a5928311ac501dee68b3c7613a1037d0edb30c8e5427bd832d55d1b790" +checksum = "c5f195fe497f702db0f318b07fdd68edb16955aed830df8363d837542f8f935a" dependencies = [ "wasm-bindgen", ] [[package]] name = "kqueue" -version = "1.0.7" +version = "1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c8fc60ba15bf51257aa9807a48a61013db043fcf3a78cb0d916e8e396dcad98" +checksum = "7447f1ca1b7b563588a205fe93dea8df60fd981423a768bc1c0ded35ed147d0c" dependencies = [ "kqueue-sys", "libc", @@ -1353,9 +1344,9 @@ dependencies = [ [[package]] name = "kqueue-sys" -version = "1.0.3" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8367585489f01bc55dd27404dcf56b95e6da061a256a666ab23be9ba96a2e587" +checksum = "ed9625ffda8729b85e45cf04090035ac368927b8cebc34898e7c120f52e4838b" dependencies = [ "bitflags 1.3.2", "libc", @@ -1384,9 +1375,9 @@ checksum = "03087c2bad5e1034e8cace5926dec053fb3790248370865f5117a7d0213354c8" [[package]] name = "libc" -version = "0.2.147" +version = "0.2.148" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3" +checksum = "9cdc71e17332e86d2e1d38c1f99edcb6288ee11b815fb1a4b049eaa2114d369b" [[package]] name = "libdeflate-sys" @@ -1429,15 +1420,9 @@ checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" [[package]] name = "linux-raw-sys" -version = "0.3.7" +version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ece97ea872ece730aed82664c424eb4c8291e1ff2480247ccf7409044bc6479f" - -[[package]] -name = "linux-raw-sys" -version = "0.4.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57bcfdad1b858c2db7c38303a6d2ad4dfaf5eb53dfeb0910128b2c26d6158503" +checksum = "1a9bad9f94746442c783ca431b22403b519cd7fbeed0533fdd6328b2f2212128" [[package]] name = "lipsum" @@ -1457,9 +1442,9 @@ checksum = "3a04a5b2b6f54acba899926491d0a6c59d98012938ca2ab5befb281c034e8f94" [[package]] name = "lock_api" -version = "0.4.9" +version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df" +checksum = "c1cc9717a20b1bb222f333e6a92fd32f7d8a18ddc5a3191a11af45dcbf4dcd16" dependencies = [ "autocfg", "scopeguard", @@ -1484,15 +1469,15 @@ dependencies = [ [[package]] name = "memchr" -version = "2.5.0" +version = "2.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" +checksum = "8f232d6ef707e1956a43342693d2a31e72989554d58299d7a88738cc95b0d35c" [[package]] name = "memmap2" -version = "0.5.10" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83faa42c0a078c393f6b29d5db232d8be22776a891f8f56e5284faee4a20b327" +checksum = "f49388d20533534cd19360ad3d6a7dadc885944aa802ba3995040c5ec11288c6" dependencies = [ "libc", ] @@ -1518,14 +1503,14 @@ dependencies = [ [[package]] name = "mio" -version = "0.8.6" +version = "0.8.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b9d9a46eff5b4ff64b45a9e316a6d1e0bc719ef429cbec4dc630684212bfdf9" +checksum = "927a765cd3fc26206e66b296465fa9d3e5ab003e651c1b3c060e7956d96b19d2" dependencies = [ "libc", "log", "wasi", - "windows-sys 0.45.0", + "windows-sys", ] [[package]] @@ -1539,20 +1524,21 @@ dependencies = [ [[package]] name = "notify" -version = "5.2.0" +version = "6.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "729f63e1ca555a43fe3efa4f3efdf4801c479da85b432242a7b726f353c88486" +checksum = "6205bd8bb1e454ad2e27422015fb5e4f2bcc7e08fa8f27058670d208324a4d2d" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.4.0", "crossbeam-channel", "filetime", "fsevent-sys", "inotify", "kqueue", "libc", + "log", "mio", "walkdir", - "windows-sys 0.45.0", + "windows-sys", ] [[package]] @@ -1567,9 +1553,9 @@ dependencies = [ [[package]] name = "num-bigint" -version = "0.4.3" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f93ab6289c7b344a8a9f60f88d80aa20032336fe78da341afc91c8a2341fc75f" +checksum = "608e7659b5c3d7cba262d894801b9ec9d00de989e8a82bd4bef91d08da45cdc0" dependencies = [ "autocfg", "num-integer", @@ -1609,9 +1595,9 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.15" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd" +checksum = "f30b0abd723be7e2ffca1272140fac1a2f084c77ec3e123c192b66af1ee9e6c2" dependencies = [ "autocfg", "libm", @@ -1644,18 +1630,19 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.17.1" +version = "1.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7e5500299e16ebb147ae15a00a942af264cf3688f47923b8fc2cd5858f23ad3" +checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" [[package]] name = "open" -version = "4.1.0" +version = "5.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d16814a067484415fda653868c9be0ac5f2abd2ef5d951082a5f2fe1b3662944" +checksum = "cfabf1927dce4d6fdf563d63328a0a506101ced3ec780ca2135747336c98cef8" dependencies = [ "is-wsl", - "pathdiff 0.2.1", + "libc", + "pathdiff", ] [[package]] @@ -1673,7 +1660,7 @@ checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" [[package]] name = "oxipng" version = "8.0.0" -source = "git+https://github.com/laurmaedje/oxipng?rev=b8ec65b#b8ec65b3ca42dde33c85149b6e402e891527f802" +source = "git+https://github.com/typst/oxipng?rev=b8ec65b#b8ec65b3ca42dde33c85149b6e402e891527f802" dependencies = [ "bitvec", "crossbeam-channel", @@ -1690,15 +1677,15 @@ dependencies = [ [[package]] name = "parking_lot_core" -version = "0.9.7" +version = "0.9.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9069cbb9f99e3a5083476ccb29ceb1de18b9118cafa53e90c9551235de2b9521" +checksum = "93f00c865fe7cabf650081affecd3871070f26767e7b2070a3ffae14c654b447" dependencies = [ "cfg-if", "libc", - "redox_syscall 0.2.16", + "redox_syscall 0.3.5", "smallvec", - "windows-sys 0.45.0", + "windows-targets", ] [[package]] @@ -1714,15 +1701,9 @@ dependencies = [ [[package]] name = "paste" -version = "1.0.12" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f746c4065a8fa3fe23974dd82f15431cc8d40779821001404d10d2e79ca7d79" - -[[package]] -name = "pathdiff" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3bf70094d203e07844da868b634207e71bfab254fe713171fae9a6e751ccf31" +checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c" [[package]] name = "pathdiff" @@ -1755,24 +1736,24 @@ dependencies = [ [[package]] name = "percent-encoding" -version = "2.2.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e" +checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94" [[package]] name = "phf" -version = "0.11.1" +version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "928c6535de93548188ef63bb7c4036bd415cd8f36ad25af44b9789b2ee72a48c" +checksum = "ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc" dependencies = [ "phf_shared", ] [[package]] name = "phf_shared" -version = "0.11.1" +version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1fb5f6f826b772a8d4c0394209441e7d37cbbb967ae9c7e0e8134365c9ee676" +checksum = "90fcb95eef784c2ac79119d1dd819e162b5da872ce6f3c3abe1e8ca1c082f72b" dependencies = [ "siphasher", ] @@ -1785,37 +1766,37 @@ checksum = "5be167a7af36ee22fe3115051bc51f6e6c7054c9348e28deb4f49bd6f705a315" [[package]] name = "pin-project" -version = "1.1.0" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c95a7476719eab1e366eaf73d0260af3021184f18177925b07f54b30089ceead" +checksum = "fda4ed1c6c173e3fc7a83629421152e01d7b1f9b7f65fb301e490e8cfc656422" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.1.0" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39407670928234ebc5e6e580247dd567ad73a3578460c5990f9503df207e8f07" +checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405" dependencies = [ "proc-macro2", "quote", - "syn 2.0.29", + "syn 2.0.32", ] [[package]] name = "pin-project-lite" -version = "0.2.9" +version = "0.2.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116" +checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" [[package]] name = "pixglyph" -version = "0.1.0" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9eefadd393715fe315c8cdcd587f893b818a6dfe4f6f9faeb44b764c7c38fd8b" +checksum = "f67591f21f6668e63c1cd85adab066ac8a92bc7b962668dd8042197a6e4b8f8f" dependencies = [ - "ttf-parser", + "ttf-parser 0.19.2", ] [[package]] @@ -1826,23 +1807,23 @@ checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964" [[package]] name = "plist" -version = "1.4.3" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9bd9647b268a3d3e14ff09c23201133a62589c658db02bb7388c7246aafe0590" +checksum = "bdc0001cfea3db57a2e24bc0d818e9e20e554b5f97fabb9bc231dc240269ae06" dependencies = [ "base64", "indexmap 1.9.3", "line-wrap", - "quick-xml 0.28.2", + "quick-xml 0.29.0", "serde", "time", ] [[package]] name = "png" -version = "0.17.8" +version = "0.17.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aaeebc51f9e7d2c150d3f3bfeb667f2aa985db5ef1e3d212847bdedb488beeaa" +checksum = "dd75bf2d8dd3702b9707cdbc56a5b9ef42cec752eb8b3bafc01234558442aa64" dependencies = [ "bitflags 1.3.2", "crc32fast", @@ -1853,9 +1834,9 @@ dependencies = [ [[package]] name = "postcard" -version = "1.0.4" +version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfa512cd0d087cc9f99ad30a1bf64795b67871edbead083ffc3a4dfafa59aa00" +checksum = "d534c6e61df1c7166e636ca612d9820d486fe96ddad37f7abc671517b297488e" dependencies = [ "cobs", "serde", @@ -1887,9 +1868,9 @@ dependencies = [ [[package]] name = "pulldown-cmark" -version = "0.9.2" +version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d9cc634bc78768157b5cbfe988ffcd1dcba95cd2b2f03a88316c08c6d00ed63" +checksum = "77a1a2f1f0a7ecff9c31abbe177637be0e97a0aef46cf8738ece09327985d998" dependencies = [ "bitflags 1.3.2", "getopts", @@ -1917,9 +1898,9 @@ dependencies = [ [[package]] name = "quick-xml" -version = "0.28.2" +version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ce5e73202a820a31f8a0ee32ada5e21029c81fd9e3ebf668a40832e4219d9d1" +checksum = "81b9228215d82c7b61490fec1de287136b5de6f5700f6e58ea9ad61a7964ca51" dependencies = [ "memchr", ] @@ -2023,26 +2004,32 @@ dependencies = [ [[package]] name = "regex" -version = "1.8.1" +version = "1.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af83e617f331cc6ae2da5443c602dfa5af81e517212d9d611a5b3ba1777b5370" +checksum = "697061221ea1b4a94a624f67d0ae2bfe4e22b8a17b6a192afb11046542cc8c47" dependencies = [ "aho-corasick", "memchr", - "regex-syntax 0.7.1", + "regex-automata", + "regex-syntax", +] + +[[package]] +name = "regex-automata" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2f401f4955220693b56f8ec66ee9c78abffd8d1c4f23dc41a23839eb88f0795" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", ] [[package]] name = "regex-syntax" -version = "0.6.29" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" - -[[package]] -name = "regex-syntax" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5996294f19bd3aae0453a862ad728f60e6600695733dd5df01da90c54363a3c" +checksum = "dbb5fb1acd8a1a18b3dd5be62d25485eb770e05afb408a9627d14d451bae12da" [[package]] name = "resvg" @@ -2130,40 +2117,26 @@ dependencies = [ [[package]] name = "rustix" -version = "0.37.19" +version = "0.38.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acf8729d8542766f1b2cf77eb034d52f40d375bb8b615d0b147089946e16613d" -dependencies = [ - "bitflags 1.3.2", - "errno", - "io-lifetimes", - "libc", - "linux-raw-sys 0.3.7", - "windows-sys 0.48.0", -] - -[[package]] -name = "rustix" -version = "0.38.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19ed4fa021d81c8392ce04db050a3da9a60299050b7ae1cf482d862b54a7218f" +checksum = "d7db8590df6dfcd144d22afd1b83b36c21a18d7cbc1dc4bb5295a8712e9eb662" dependencies = [ "bitflags 2.4.0", "errno", "libc", - "linux-raw-sys 0.4.5", - "windows-sys 0.48.0", + "linux-raw-sys", + "windows-sys", ] [[package]] name = "rustls" -version = "0.21.2" +version = "0.21.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e32ca28af694bc1bbf399c33a516dbdf1c90090b8ab23c2bc24f834aa2247f5f" +checksum = "cd8d6c9f025a446bc4d18ad9632e69aec8f287aa84499ee335599fabd20c3fd8" dependencies = [ "log", "ring", - "rustls-webpki", + "rustls-webpki 0.101.5", "sct", ] @@ -2178,9 +2151,19 @@ dependencies = [ [[package]] name = "rustls-webpki" -version = "0.100.2" +version = "0.100.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e98ff011474fa39949b7e5c0428f9b4937eda7da7848bbb947786b7be0b27dab" +checksum = "5f6a5fc258f1c1276dfe3016516945546e2d5383911efc0fc4f1cdc5df3a4ae3" +dependencies = [ + "ring", + "untrusted", +] + +[[package]] +name = "rustls-webpki" +version = "0.101.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "45a27e3b59326c16e23d30aeb7a36a24cc0d29e71d68ff611cdfb4a01d013bed" dependencies = [ "ring", "untrusted", @@ -2188,9 +2171,9 @@ dependencies = [ [[package]] name = "rustversion" -version = "1.0.12" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f3208ce4d8448b3f3e7d168a73f5e0c43a61e32930de3bceeccedb388b6bf06" +checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4" [[package]] name = "rustybuzz" @@ -2201,7 +2184,7 @@ dependencies = [ "bitflags 1.3.2", "bytemuck", "smallvec", - "ttf-parser", + "ttf-parser 0.18.1", "unicode-bidi-mirroring", "unicode-ccc", "unicode-general-category", @@ -2210,9 +2193,9 @@ dependencies = [ [[package]] name = "ryu" -version = "1.0.13" +version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f91339c0467de62360649f8d3e185ca8de4224ff281f66000de5eb2a77a79041" +checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741" [[package]] name = "safemem" @@ -2231,9 +2214,9 @@ dependencies = [ [[package]] name = "scopeguard" -version = "1.1.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] name = "sct" @@ -2252,40 +2235,40 @@ source = "git+https://github.com/typst/self-replace#2e6d5e4808bba73b713fd85cf561 dependencies = [ "fastrand 1.9.0", "tempfile", - "windows-sys 0.48.0", + "windows-sys", ] [[package]] name = "semver" -version = "1.0.17" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bebd363326d05ec3e2f532ab7660680f3b02130d780c299bca73469d521bc0ed" +checksum = "b0293b4b29daaf487284529cc2f5675b8e57c61f70167ba415a463651fd6a918" [[package]] name = "serde" -version = "1.0.185" +version = "1.0.188" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be9b6f69f1dfd54c3b568ffa45c310d6973a5e5148fd40cf515acaf38cf5bc31" +checksum = "cf9e0fcba69a370eed61bcf2b728575f726b50b55cba78064753d708ddc7549e" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.185" +version = "1.0.188" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc59dfdcbad1437773485e0367fea4b090a2e0a16d9ffc46af47764536a298ec" +checksum = "4eca7ac642d82aa35b60049a6eccb4be6be75e599bd2e9adb5f875a737654af2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.29", + "syn 2.0.32", ] [[package]] name = "serde_json" -version = "1.0.105" +version = "1.0.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "693151e1ac27563d6dbcec9dee9fbd5da8539b20fa14ad3752b2e6d363ace360" +checksum = "2cc66a619ed80bf7a0f6b17dd063a84b88f6dea1813737cf469aef1d081142c2" dependencies = [ "itoa", "ryu", @@ -2294,9 +2277,9 @@ dependencies = [ [[package]] name = "serde_spanned" -version = "0.6.2" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93107647184f6027e3b7dcb2e11034cf95ffa1e3a682c67951963ac69c1c007d" +checksum = "96426c9936fd7a0124915f9185ea1d20aa9445cc9821142f0a73bc9207a2e186" dependencies = [ "serde", ] @@ -2359,9 +2342,9 @@ dependencies = [ [[package]] name = "simd-adler32" -version = "0.3.5" +version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "238abfbb77c1915110ad968465608b68e869e0772622c9656714e73e5a1a522f" +checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe" [[package]] name = "simplecss" @@ -2374,9 +2357,9 @@ dependencies = [ [[package]] name = "siphasher" -version = "0.3.10" +version = "0.3.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7bd3e3206899af3f8b12af284fafc038cc1dc2b41d1b89dd17297221c5d225de" +checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" [[package]] name = "slotmap" @@ -2389,9 +2372,9 @@ dependencies = [ [[package]] name = "smallvec" -version = "1.10.0" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0" +checksum = "62bb4feee49fdd9f707ef802e22365a35de4b7b299de4763d44bfea899442ff9" [[package]] name = "spin" @@ -2435,9 +2418,9 @@ checksum = "9091b6114800a5f2141aee1d1b9d6ca3592ac062dc5decb3764ec5895a47b4eb" [[package]] name = "strict-num" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9df65f20698aeed245efdde3628a6b559ea1239bbb871af1b6e3b58c413b2bd1" +checksum = "6637bab7722d379c8b41ba849228d680cc12d0a45ba1fa2b48f2a30577a06731" dependencies = [ "float-cmp", ] @@ -2517,9 +2500,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.29" +version = "2.0.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c324c494eba9d92503e6f1ef2e6df781e78f6a7705a0202d9801b198807d518a" +checksum = "239814284fd6f1a4ffe4ca893952cdd93c224b6a1571c9a9eadd670295c0c9e2" dependencies = [ "proc-macro2", "quote", @@ -2540,21 +2523,19 @@ dependencies = [ [[package]] name = "syntect" -version = "5.0.0" +version = "5.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6c454c27d9d7d9a84c7803aaa3c50cd088d2906fe3c6e42da3209aa623576a8" +checksum = "e02b4b303bf8d08bfeb0445cba5068a3d306b6baece1d5582171a9bf49188f91" dependencies = [ "bincode", "bitflags 1.3.2", "fancy-regex", "flate2", "fnv", - "lazy_static", "once_cell", "plist", - "regex-syntax 0.6.29", + "regex-syntax", "serde", - "serde_derive", "serde_json", "thiserror", "walkdir", @@ -2569,9 +2550,9 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" [[package]] name = "tar" -version = "0.4.38" +version = "0.4.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b55807c0344e1e6c04d7c965f5289c39a8d94ae23ed5c0b57aabac549f871c6" +checksum = "b16afcea1f22891c49a00c751c7b63b2233284064f11a200fc624137c51e2ddb" dependencies = [ "filetime", "libc", @@ -2587,37 +2568,37 @@ dependencies = [ "cfg-if", "fastrand 2.0.0", "redox_syscall 0.3.5", - "rustix 0.38.8", - "windows-sys 0.48.0", + "rustix", + "windows-sys", ] [[package]] name = "termcolor" -version = "1.1.3" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755" +checksum = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6" dependencies = [ "winapi-util", ] [[package]] name = "thiserror" -version = "1.0.40" +version = "1.0.48" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "978c9a314bd8dc99be594bc3c175faaa9794be04a5a5e153caba6915336cebac" +checksum = "9d6d7a740b8a666a7e828dd00da9c0dc290dff53154ea77ac109281de90589b7" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.40" +version = "1.0.48" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9456a42c5b0d803c8cd86e73dd7cc9edd429499f37a3550d286d5e86720569f" +checksum = "49922ecae66cc8a249b77e68d1d0623c1b2c514f0060c27cdc68bd62a1219d35" dependencies = [ "proc-macro2", "quote", - "syn 2.0.29", + "syn 2.0.32", ] [[package]] @@ -2632,9 +2613,9 @@ dependencies = [ [[package]] name = "tiff" -version = "0.8.1" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7449334f9ff2baf290d55d73983a7d6fa15e01198faef72af07e2a8db851e471" +checksum = "6d172b0f4d3fba17ba89811858b9d3d97f928aece846475bbda076ca46736211" dependencies = [ "flate2", "jpeg-decoder", @@ -2643,10 +2624,11 @@ dependencies = [ [[package]] name = "time" -version = "0.3.21" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f3403384eaacbca9923fa06940178ac13e4edb725486d70e8e15881d0c836cc" +checksum = "17f6bb557fd245c28e6411aa56b6403c689ad95061f50e4be16c274e70a17e48" dependencies = [ + "deranged", "itoa", "serde", "time-core", @@ -2661,9 +2643,9 @@ checksum = "7300fbefb4dadc1af235a9cef3737cea692a9d97e1b9cbcd4ebdae6f8868e6fb" [[package]] name = "time-macros" -version = "0.2.9" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "372950940a5f07bf38dbe211d7283c9e6d7327df53794992d293e534c733d09b" +checksum = "1a942f44339478ef67935ab2bbaec2fb0322496cf3cbe84b261e06ac3814c572" dependencies = [ "time-core", ] @@ -2722,9 +2704,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "toml" -version = "0.7.4" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6135d499e69981f9ff0ef2167955a5333c35e36f6937d382974566b3d5b94ec" +checksum = "c226a7bba6d859b63c92c4b4fe69c5b6b72d0cb897dbc8e6012298e6154cb56e" dependencies = [ "serde", "serde_spanned", @@ -2734,20 +2716,20 @@ dependencies = [ [[package]] name = "toml_datetime" -version = "0.6.2" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a76a9312f5ba4c2dec6b9161fdf25d87ad8a09256ccea5a556fef03c706a10f" +checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b" dependencies = [ "serde", ] [[package]] name = "toml_edit" -version = "0.19.9" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92d964908cec0d030b812013af25a0e57fddfadb1e066ecc6681d86253129d4f" +checksum = "8ff63e60a958cefbb518ae1fd6566af80d9d4be430a33f3723dfc47d1d411d95" dependencies = [ - "indexmap 1.9.3", + "indexmap 2.0.0", "serde", "serde_spanned", "toml_datetime", @@ -2768,13 +2750,13 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.24" +version = "0.1.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f57e3ca2a01450b1a921183a9c9cbfda207fd822cef4ccb00a65402cbba7a74" +checksum = "5f4f31f56159e98206da9efd823404b79b6ef3143b4a7ab76e67b1751b25a4ab" dependencies = [ "proc-macro2", "quote", - "syn 2.0.29", + "syn 2.0.32", ] [[package]] @@ -2839,6 +2821,12 @@ version = "0.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0609f771ad9c6155384897e1df4d948e692667cc0588548b68eb44d052b27633" +[[package]] +name = "ttf-parser" +version = "0.19.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49d64318d8311fc2668e48b63969f4343e0a85c4a109aa8460d6672e364b8bd1" + [[package]] name = "typed-arena" version = "2.0.2" @@ -2864,7 +2852,7 @@ dependencies = [ "fontdb", "if_chain", "image", - "indexmap 1.9.3", + "indexmap 2.0.0", "log", "miniz_oxide", "oklab", @@ -2884,12 +2872,12 @@ dependencies = [ "tiny-skia", "toml", "tracing", - "ttf-parser", + "ttf-parser 0.19.2", "typst-macros", "typst-syntax", - "unicode-general-category", "unicode-ident", "unicode-math-class", + "unicode-properties", "unicode-segmentation", "unscanny", "usvg", @@ -2918,7 +2906,7 @@ dependencies = [ "notify", "once_cell", "open", - "pathdiff 0.1.0", + "pathdiff", "rustls", "rustls-pemfile", "same-file", @@ -2953,7 +2941,7 @@ dependencies = [ "once_cell", "pulldown-cmark", "serde", - "serde_yaml 0.8.26", + "serde_yaml 0.9.25", "syntect", "typed-arena", "typst", @@ -2987,13 +2975,13 @@ dependencies = [ "roxmltree", "rustybuzz", "serde_json", - "serde_yaml 0.8.26", + "serde_yaml 0.9.25", "smallvec", "syntect", "time", "toml", "tracing", - "ttf-parser", + "ttf-parser 0.19.2", "typed-arena", "typst", "unicode-bidi", @@ -3009,7 +2997,7 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.29", + "syn 2.0.32", ] [[package]] @@ -3039,7 +3027,7 @@ dependencies = [ "oxipng", "rayon", "tiny-skia", - "ttf-parser", + "ttf-parser 0.19.2", "typst", "typst-library", "unscanny", @@ -3066,9 +3054,9 @@ dependencies = [ [[package]] name = "unicase" -version = "2.6.0" +version = "2.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6" +checksum = "f7d2d4dafb69621809a81864c9c1b864479e1235c0dd4e199924b9742439ed89" dependencies = [ "version_check", ] @@ -3099,9 +3087,9 @@ checksum = "2281c8c1d221438e373249e065ca4989c4c36952c211ff21a0ee91c44a3869e7" [[package]] name = "unicode-ident" -version = "1.0.8" +version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5464a87b239f13a63a501f2701565754bae92d243d4bb7eb12f6d57d2269bf4" +checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" [[package]] name = "unicode-math-class" @@ -3118,6 +3106,12 @@ dependencies = [ "tinyvec", ] +[[package]] +name = "unicode-properties" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7f91c8b21fbbaa18853c3d0801c78f4fc94cdb976699bb03e832e75f7fd22f0" + [[package]] name = "unicode-script" version = "0.5.5" @@ -3183,7 +3177,7 @@ dependencies = [ "log", "once_cell", "rustls", - "rustls-webpki", + "rustls-webpki 0.100.3", "serde", "serde_json", "url", @@ -3192,9 +3186,9 @@ dependencies = [ [[package]] name = "url" -version = "2.3.1" +version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d68c799ae75762b8c3fe375feb6600ef5602c883c5d21eb51c09f22b83c4643" +checksum = "143b538f18257fac9cad154828a57c6bf5157e1aa604d4816b5995bf6de87ae5" dependencies = [ "form_urlencoded", "idna", @@ -3287,9 +3281,9 @@ checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" [[package]] name = "walkdir" -version = "2.3.3" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36df944cda56c7d8d8b7496af378e6b16de9284591917d307c9b4d313c44e698" +checksum = "d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee" dependencies = [ "same-file", "winapi-util", @@ -3303,9 +3297,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.86" +version = "0.2.87" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5bba0e8cb82ba49ff4e229459ff22a191bbe9a1cb3a341610c9c33efc27ddf73" +checksum = "7706a72ab36d8cb1f80ffbf0e071533974a60d0a308d01a5d0375bf60499a342" dependencies = [ "cfg-if", "wasm-bindgen-macro", @@ -3313,24 +3307,24 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.86" +version = "0.2.87" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19b04bc93f9d6bdee709f6bd2118f57dd6679cf1176a1af464fca3ab0d66d8fb" +checksum = "5ef2b6d3c510e9625e5fe6f509ab07d66a760f0885d858736483c32ed7809abd" dependencies = [ "bumpalo", "log", "once_cell", "proc-macro2", "quote", - "syn 2.0.29", + "syn 2.0.32", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-macro" -version = "0.2.86" +version = "0.2.87" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14d6b024f1a526bb0234f52840389927257beb670610081360e5a03c5df9c258" +checksum = "dee495e55982a3bd48105a7b947fd2a9b4a8ae3010041b9e0faab3f9cd028f1d" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -3338,30 +3332,29 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.86" +version = "0.2.87" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e128beba882dd1eb6200e1dc92ae6c5dbaa4311aa7bb211ca035779e5efc39f8" +checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.29", + "syn 2.0.32", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.86" +version = "0.2.87" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed9d5b4305409d1fc9482fee2d7f9bcbf24b3972bf59817ef757e23982242a93" +checksum = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1" [[package]] name = "wasmi" -version = "0.30.0" +version = "0.31.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e51fb5c61993e71158abf5bb863df2674ca3ec39ed6471c64f07aeaf751d67b4" +checksum = "1f341edb80021141d4ae6468cbeefc50798716a347d4085c3811900049ea8945" dependencies = [ - "intx", "smallvec", "spin 0.9.8", "wasmi_arena", @@ -3377,9 +3370,9 @@ checksum = "401c1f35e413fac1846d4843745589d9ec678977ab35a384db8ae7830525d468" [[package]] name = "wasmi_core" -version = "0.12.0" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "624e6333e861ef49095d2d678b76ebf30b06bf37effca845be7e5b87c90071b7" +checksum = "dcf1a7db34bff95b85c261002720c00c3a6168256dcb93041d3fa2054d19856a" dependencies = [ "downcast-rs", "libm", @@ -3398,9 +3391,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.63" +version = "0.3.64" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3bdd9ef4e984da1187bf8110c5cf5b845fbc87a23602cdf912386a76fcd3a7c2" +checksum = "9b85cbef8c220a6abc02aefd892dfc0fc23afb1c6a426316ec33253a3877249b" dependencies = [ "js-sys", "wasm-bindgen", @@ -3412,7 +3405,7 @@ version = "0.23.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b03058f88386e5ff5310d9111d53f48b17d732b401aeb83a8d5190f2ac459338" dependencies = [ - "rustls-webpki", + "rustls-webpki 0.100.3", ] [[package]] @@ -3458,16 +3451,7 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f" dependencies = [ - "windows-targets 0.48.0", -] - -[[package]] -name = "windows-sys" -version = "0.45.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" -dependencies = [ - "windows-targets 0.42.2", + "windows-targets", ] [[package]] @@ -3476,128 +3460,71 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" dependencies = [ - "windows-targets 0.48.0", + "windows-targets", ] [[package]] name = "windows-targets" -version = "0.42.2" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" +checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" dependencies = [ - "windows_aarch64_gnullvm 0.42.2", - "windows_aarch64_msvc 0.42.2", - "windows_i686_gnu 0.42.2", - "windows_i686_msvc 0.42.2", - "windows_x86_64_gnu 0.42.2", - "windows_x86_64_gnullvm 0.42.2", - "windows_x86_64_msvc 0.42.2", -] - -[[package]] -name = "windows-targets" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b1eb6f0cd7c80c79759c929114ef071b87354ce476d9d94271031c0497adfd5" -dependencies = [ - "windows_aarch64_gnullvm 0.48.0", - "windows_aarch64_msvc 0.48.0", - "windows_i686_gnu 0.48.0", - "windows_i686_msvc 0.48.0", - "windows_x86_64_gnu 0.48.0", - "windows_x86_64_gnullvm 0.48.0", - "windows_x86_64_msvc 0.48.0", + "windows_aarch64_gnullvm", + "windows_aarch64_msvc", + "windows_i686_gnu", + "windows_i686_msvc", + "windows_x86_64_gnu", + "windows_x86_64_gnullvm", + "windows_x86_64_msvc", ] [[package]] name = "windows_aarch64_gnullvm" -version = "0.42.2" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc" +checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" [[package]] name = "windows_aarch64_msvc" -version = "0.42.2" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3" +checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" [[package]] name = "windows_i686_gnu" -version = "0.42.2" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" - -[[package]] -name = "windows_i686_gnu" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241" +checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" [[package]] name = "windows_i686_msvc" -version = "0.42.2" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" - -[[package]] -name = "windows_i686_msvc" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00" +checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" [[package]] name = "windows_x86_64_gnu" -version = "0.42.2" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1" +checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" [[package]] name = "windows_x86_64_gnullvm" -version = "0.42.2" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953" +checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" [[package]] name = "windows_x86_64_msvc" -version = "0.42.2" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a" +checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" [[package]] name = "winnow" -version = "0.4.6" +version = "0.5.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61de7bac303dc551fe038e2b3cef0f571087a47571ea6e79a87692ac99b99699" +checksum = "7c2e3184b9c4e92ad5167ca73039d0c42476302ab603e2fec4487511f38ccefc" dependencies = [ "memchr", ] @@ -3619,9 +3546,9 @@ dependencies = [ [[package]] name = "xattr" -version = "0.2.3" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d1526bbe5aaeb5eb06885f4d987bcdfa5e23187055de9b83fe00156a821fabc" +checksum = "f4686009f71ff3e5c4dbcf1a282d0a44db3f021ba69350cd42086b3e5f1c6985" dependencies = [ "libc", ] diff --git a/crates/typst-cli/Cargo.toml b/crates/typst-cli/Cargo.toml index d24183073..0da03afcf 100644 --- a/crates/typst-cli/Cargo.toml +++ b/crates/typst-cli/Cargo.toml @@ -23,18 +23,18 @@ doc = false typst = { path = "../typst" } typst-library = { path = "../typst-library" } chrono = { version = "0.4.24", default-features = false, features = ["clock", "std"] } -clap = { version = "4.2.4", features = ["derive", "env"] } +clap = { version = "4.4", features = ["derive", "env"] } codespan-reporting = "0.11" comemo = "0.3" ecow = "0.1.1" dirs = "5" flate2 = "1" inferno = "0.11.15" -memmap2 = "0.5" -notify = "5" +memmap2 = "0.7" +notify = "6" once_cell = "1" -open = "4.0.2" -pathdiff = "0.1" +open = "5" +pathdiff = "0.2" same-file = "1" # https://github.com/mitsuhiko/self-replace/pull/16 self-replace = { git = "https://github.com/typst/self-replace", optional = true } @@ -58,10 +58,10 @@ xz2 = { version = "0.1", optional = true } zip = { version = "0.6", optional = true } [build-dependencies] -semver = "1" -clap = { version = "4.2.4", features = ["derive", "string"] } +clap = { version = "4.4", features = ["derive", "string"] } clap_complete = "4.2.1" clap_mangen = "0.2.10" +semver = "1" [features] default = ["embed-fonts"] diff --git a/crates/typst-cli/src/compile.rs b/crates/typst-cli/src/compile.rs index 8cec89536..c2d6ea01b 100644 --- a/crates/typst-cli/src/compile.rs +++ b/crates/typst-cli/src/compile.rs @@ -271,7 +271,7 @@ impl<'a> codespan_reporting::files::Files<'a> for SystemWorld { // Try to express the path relative to the working directory. vpath .resolve(self.root()) - .and_then(|abs| pathdiff::diff_paths(&abs, self.workdir())) + .and_then(|abs| pathdiff::diff_paths(abs, self.workdir())) .as_deref() .unwrap_or_else(|| vpath.as_rootless_path()) .to_string_lossy() diff --git a/crates/typst-docs/Cargo.toml b/crates/typst-docs/Cargo.toml index b9158a38f..e9d846582 100644 --- a/crates/typst-docs/Cargo.toml +++ b/crates/typst-docs/Cargo.toml @@ -20,7 +20,7 @@ include_dir = "0.7" once_cell = "1" pulldown-cmark = "0.9" serde = { version = "1.0.184", features = ["derive"] } -serde_yaml = "0.8" +serde_yaml = "0.9" syntect = { version = "5", default-features = false, features = ["parsing", "html", "regex-fancy"] } typed-arena = "2" unicode_names2 = "0.6.0" diff --git a/crates/typst-library/Cargo.toml b/crates/typst-library/Cargo.toml index 040a44058..dd7c0cc5b 100644 --- a/crates/typst-library/Cargo.toml +++ b/crates/typst-library/Cargo.toml @@ -38,13 +38,13 @@ ciborium = "0.2.1" roxmltree = "0.18" rustybuzz = "0.7" serde_json = "1" -serde_yaml = "0.8" +serde_yaml = "0.9" smallvec = "1.10" syntect = { version = "5", default-features = false, features = ["parsing", "regex-fancy", "plist-load", "yaml-load"] } time = { version = "0.3.20", features = ["formatting"] } -toml = { version = "0.7.4"} +toml = { version = "0.8" } tracing = "0.1.37" -ttf-parser = "0.18.1" +ttf-parser = "0.19.2" typed-arena = "2" unicode-bidi = "0.3.13" unicode-math-class = "0.1" diff --git a/crates/typst-library/src/math/fragment.rs b/crates/typst-library/src/math/fragment.rs index 8e0510746..4e174349c 100644 --- a/crates/typst-library/src/math/fragment.rs +++ b/crates/typst-library/src/math/fragment.rs @@ -472,7 +472,7 @@ impl<'a> GlyphwiseSubsts<'a> { pub fn new(gsub: LayoutTable<'a>, feature: Feature) -> Option { let table = gsub .features - .find(feature.tag) + .find(ttf_parser::Tag(feature.tag.0)) .and_then(|feature| feature.lookup_indices.get(0)) .and_then(|index| gsub.lookups.get(index))?; let table = table.subtables.get::(0)?; diff --git a/crates/typst/Cargo.toml b/crates/typst/Cargo.toml index e3c4c6c11..d9918b110 100644 --- a/crates/typst/Cargo.toml +++ b/crates/typst/Cargo.toml @@ -24,16 +24,16 @@ bytemuck = "1" comemo = "0.3" ecow = { version = "0.1.2", features = ["serde"] } flate2 = "1" -fontdb = "0.13" +fontdb = { version = "0.13", default-features = false } if_chain = "1" image = { version = "0.24", default-features = false, features = ["png", "jpeg", "gif"] } -indexmap = { version = "1.9.3", features = ["serde"] } +indexmap = { version = "2", features = ["serde"] } log = "0.4" miniz_oxide = "0.7" oklab = "1" once_cell = "1" pdf-writer = "0.8.1" -pixglyph = "0.1" +pixglyph = "0.2" regex = "1" resvg = { version = "0.32", default-features = false, features = ["raster-images"] } roxmltree = "0.18" @@ -43,10 +43,10 @@ siphasher = "0.3" subsetter = "0.1.1" svg2pdf = "0.6" tiny-skia = "0.9.0" -toml = { version = "0.7.4", default-features = false, features = ["parse"] } +toml = { version = "0.8", default-features = false, features = ["parse"] } tracing = "0.1.37" -ttf-parser = "0.18.1" -unicode-general-category = "0.6" +ttf-parser = "0.19.2" +unicode-properties = "0.1" unicode-ident = "1.0" unicode-math-class = "0.1" unicode-segmentation = "1" @@ -55,7 +55,7 @@ usvg = { version = "0.32", default-features = false, features = ["text"] } xmlwriter = "0.1.0" xmp-writer = "0.1" time = { version = "0.3.20", features = ["std", "formatting", "macros"] } -wasmi = "0.30.0" +wasmi = "0.31.0" xmlparser = "0.13.5" [target.'cfg(not(target_arch = "wasm32"))'.dependencies] diff --git a/crates/typst/src/export/pdf/font.rs b/crates/typst/src/export/pdf/font.rs index ceffd4cc4..4b10ead9a 100644 --- a/crates/typst/src/export/pdf/font.rs +++ b/crates/typst/src/export/pdf/font.rs @@ -4,7 +4,7 @@ use ecow::{eco_format, EcoString}; use pdf_writer::types::{CidFontType, FontFlags, SystemInfo, UnicodeCmap}; use pdf_writer::{Filter, Finish, Name, Rect, Str}; use ttf_parser::{name_id, GlyphId, Tag}; -use unicode_general_category::GeneralCategory; +use unicode_properties::{GeneralCategory, UnicodeGeneralCategory}; use super::{deflate, EmExt, PdfContext, RefExt}; use crate::eval::Bytes; @@ -215,9 +215,7 @@ fn create_cmap( subtable.codepoints(|n| { let Some(c) = std::char::from_u32(n) else { return }; - if unicode_general_category::get_general_category(c) - == GeneralCategory::PrivateUse - { + if c.general_category() == GeneralCategory::PrivateUse { return; } diff --git a/crates/typst/src/export/render.rs b/crates/typst/src/export/render.rs index fc056b753..ac2a8b3dc 100644 --- a/crates/typst/src/export/render.rs +++ b/crates/typst/src/export/render.rs @@ -17,7 +17,7 @@ use crate::geom::{ self, Abs, Color, FixedStroke, Geometry, LineCap, LineJoin, Paint, PathItem, Shape, Size, Transform, }; -use crate::image::{DecodedImage, Image}; +use crate::image::{DecodedImage, Image, RasterFormat}; /// Export a frame into a raster image. /// @@ -296,7 +296,10 @@ fn render_bitmap_glyph( let size = text.size.to_f32(); let ppem = size * ts.sy; let raster = text.font.ttf().glyph_raster_image(id, ppem as u16)?; - let image = Image::new(raster.data.into(), raster.format.into(), None).ok()?; + if raster.format != ttf_parser::RasterImageFormat::PNG { + return None; + } + let image = Image::new(raster.data.into(), RasterFormat::Png.into(), None).ok()?; // FIXME: Vertical alignment isn't quite right for Apple Color Emoji, // and maybe also for Noto Color Emoji. And: Is the size calculation diff --git a/crates/typst/src/export/svg.rs b/crates/typst/src/export/svg.rs index 186f97262..c68071776 100644 --- a/crates/typst/src/export/svg.rs +++ b/crates/typst/src/export/svg.rs @@ -420,9 +420,12 @@ fn convert_outline_glyph_to_path(font: &Font, id: GlyphId) -> Option /// Convert a bitmap glyph to an encoded image URL. #[comemo::memoize] fn convert_bitmap_glyph_to_image(font: &Font, id: GlyphId) -> Option<(Image, f64, f64)> { - let bitmap = font.ttf().glyph_raster_image(id, std::u16::MAX)?; - let image = Image::new(bitmap.data.into(), bitmap.format.into(), None).ok()?; - Some((image, bitmap.x as f64, bitmap.y as f64)) + let raster = font.ttf().glyph_raster_image(id, std::u16::MAX)?; + if raster.format != ttf_parser::RasterImageFormat::PNG { + return None; + } + let image = Image::new(raster.data.into(), RasterFormat::Png.into(), None).ok()?; + Some((image, raster.x as f64, raster.y as f64)) } /// Convert an SVG glyph to an encoded image URL. diff --git a/crates/typst/src/image.rs b/crates/typst/src/image.rs index 0ede1d7ef..182793d29 100644 --- a/crates/typst/src/image.rs +++ b/crates/typst/src/image.rs @@ -158,6 +158,18 @@ pub enum ImageFormat { Vector(VectorFormat), } +impl From for ImageFormat { + fn from(format: RasterFormat) -> Self { + Self::Raster(format) + } +} + +impl From for ImageFormat { + fn from(format: VectorFormat) -> Self { + Self::Vector(format) + } +} + cast! { ImageFormat, self => match self { @@ -216,20 +228,6 @@ impl TryFrom for RasterFormat { } } -impl From for RasterFormat { - fn from(format: ttf_parser::RasterImageFormat) -> Self { - match format { - ttf_parser::RasterImageFormat::PNG => RasterFormat::Png, - } - } -} - -impl From for ImageFormat { - fn from(format: ttf_parser::RasterImageFormat) -> Self { - Self::Raster(format.into()) - } -} - /// A decoded image. pub enum DecodedImage { /// A decoded pixel raster with its ICC profile. diff --git a/tests/Cargo.toml b/tests/Cargo.toml index 0a371d944..efacea19b 100644 --- a/tests/Cargo.toml +++ b/tests/Cargo.toml @@ -9,17 +9,17 @@ publish = false [dev-dependencies] typst = { path = "../crates/typst" } typst-library = { path = "../crates/typst-library" } +clap = { version = "4.4", features = ["derive"] } comemo = "0.3" ecow = { version = "0.1.2", features = ["serde"] } -iai = { git = "https://github.com/reknih/iai" } +iai = { git = "https://github.com/typst/iai" } once_cell = "1" -oxipng = { git = "https://github.com/laurmaedje/oxipng", rev = "b8ec65b", default-features = false, features = ["filetime", "parallel", "zopfli"] } +oxipng = { git = "https://github.com/typst/oxipng", rev = "b8ec65b", default-features = false, features = ["filetime", "parallel", "zopfli"] } rayon = "1.7.0" tiny-skia = "0.9.0" -ttf-parser = "0.18.1" +ttf-parser = "0.19.2" unscanny = "0.1" walkdir = "2" -clap = { version = "4.2.4", features = ["derive"] } [[test]] name = "tests" diff --git a/tests/ref/meta/numbering.png b/tests/ref/meta/numbering.png index ff521e2592f85df055b22bdaa8d089fb42d7b46b..72e9be1b0ba0e9772e04907fa3f8fa99f2b1045c 100644 GIT binary patch delta 30967 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

Ddwu^F8`XwEYCys7NTko$`MQN_TF0QNt zVHfwJwdVr9t4)g07_~PDi{2G@Dzc~Y<+g=Z+)JG=KXrT`HOiF2XOmN@STUlvroJsO z+X3Nl8=bm!!OwU;_Ipn9cki=7$Wj86dyb_un#;+j8f6MEz@2>{HKbEcTGc$Lt~1N% z1+^{{>9rk(Ud;uGo!#QOx?n_Glz_neCf+AaX0EQ}OZ4~+ zt{TQgSlJ{<0o2MBe+iW)Q>ZlGUb++W6Bn95l>`2^=wd$ z4F``W61n7D>2q@Tm-;!0I?9dm<1#@MnXDbSZg8K|0%ScE=b`DPUyDs?M{GpMCZ?Q% zC`E2*(64Lbj1yJ?U#BX<5(Pk<_-N&z)*)>tT?Z$3i2UCSoErUXa?09rJjdbv?((?n zh-W4CYHVqy_y}QXLjOeY^Z4D{4}C;Dw_D&P?}yf}<;z|V(X0Tr{SKThL4hOdOy}7*8T}IfhfjMIl4xK~FP29$92mILvuVN-db(+8 z!>Ad#1Ve^vE;ZG8EumJqt4nf$nRcufvaXq*oG$G@(}^d%;@g`CaAn*cm%9p+V5E7H zHTiQ4(91`Uhe#ncodWNr`?k|;Kzz22VD)>3`;|HIa&^50r|DRhFo}z)Li;OudgU&> zx=SRJdSLaGuwZ_V054OR6Q`Gs3$zJBd?&q0*Itf9n4F}!?H86bMr@cV6i*1v?$|84GLL6K5_?>#(C>eXJH=KN1)lVr>08{gi8jT0qlp@C>0VNv^YAS*3F)O8nxD0 zJdl{UjTSA_^R+A~6?mdVgj6*k;3rc30$bc#sbjquWS{ZsUzvGHDN(W37qYT=?UoUc z9G}S%yz72tTy^nPZfMyKpdKQr{w9$QN#if)ssGRGpqwi`%`gvqM2bz{oBYP7DF)wI zcKdkZLUU#&ZP^0Ut-%C(&E;vDMb>XKB<+a!%9m=24e?}T#DBlAR)u->;wJ@mE@rl} zA>=P`7@vvyOwU-|5G>g+8^SUqx6lftRP(PYwlwq1cZ4&^PLMdQf&BBi;;W=*5D9V3A&c2XxWH;gHlJ(}SzH;4jjg`x+F3`Mx+JxY9miOBfP2Fp59zRijVP znI9jdq?F;EE?{-ueP;OlXKMVN$Uqo~xZ8vkvJn2sp}*ixS$#8cpw_a=4J-b$;p<6) zymf}If+!YJm)fSmYV!>1kxF`1A1B|5a6gdi#WtWNC_w=RlV+?-pP2PxpMKQ!%5zkl z3-IOVdzlgv>jCDDFU;_!^SCsHlBFspG`k!Pus`b^N15;Ec$l!YV|glA=UB7mlV6XI zKzx>$br4~OXZN#!@{^mu+?Qu#TZnhrN;U^{074N!11YxRC9zTL$J$l%ya?L1df$c! zQLR6jUjyEP7Pa|Lm`-7@!hb0e^1SMQNm&1*{~=+Kf0aLYw6~3BXg2JYN^ ztbgyYCPAJ1k9gHXR0@hp-GAldyLaN|ULftvvhcJmZZt<+k&wrZLDVPeowugK^V<#< z6p_}{3=tj(ci zNrpkb8FDGO!UIQ>ny3gbUOSkLa%8L9>uM@T*si=*vxtbwXV-uAT~C{dhbJgzHyd2m z5R%>&PDWNaQxDK)C_X4)evW*?Z2cnF3vdM@`lxB;puz0X>Iv#Ol2-nqXqP4K#tBaMOFw5Hs79+o$rJPidsE z&EC}?ENP_@c!Q)*?1tB3k9#n^To$zziQ)^ZpxscIGnUNz#@vN-FkzIolNfnCNWjCv z7ObaA0IaSMGWhCaptr@d784!4e%9SMxu7nPMm8Aq$%+FHh&9O6^b7XAAj(jiLvniy-r4{Crbp&>zdjU)GNlaHvrD%Mz!u(NDAiTbyWCiqj) z*ZG`*>C=_RAGO8XHQXHPx#yhe6)Y(_FRW8G&Uk~A y_eq&;_~(CG9{T^ZJQRh(WB-eq4O21r^n$Ftbz-p^a1si79TMWQVr3$Fe*Xtf0_|7; delta 31022 zcmaf*bx>U0*5(^;2+|4e5G*(e5Zo;|!QFzpJDi4~!GaUq-QC?2+}(n^I}GnP-^|>5 zXR7A+-|p%@)m6RETF+k3bGqOLcH;*2CnZc_CDnm2pfZTtabo(V^H{TaHiEqZvstXt z4voQT7JX{E7IPM-xmR_nb`e|Is#jcDP%y{+IjI80b(og>8ysxEL4Av93!X;!as46h z%YFDIfp|7#qyW60u~J%mzg74f+87!TZk`J0T>o8 ziO!)sgr1!)*v4i(^6r~fgKn$pH{DK{W=$=3qp#NOnMVv??Fq&fHs+bk`v^mSc!E!~ z=V=1?&>7!=6!gmE?qn~X9K^?UqEUXH#z2IFv(8#7aEy_qndt}@(yHTgx=MXZEBZcfhfoqsT!AT|vt-YwLzsF#Af-a+9g%>kh~zt%G#V znM`a285EkUBCfI-52rldJFV%4#c9I_Rq76JR<~slE*YOIioeTI2h-$KimPBIz{O4? zOeP&8RgBJ*w}#Z3=XPH1^1(wZ$!T%A$jt-3P6uy+sQhY3B`i(ez~L_90g=QEX;}hZ zanfjOiCrt`j1F-A>4<%E_{m8~3`id!1J|Wm^)|~3wwBt5SHqa+dD8i=KJIu(EE3!F zNzV5(rCKkCaaClze{8nkN^n9O;titgbt1PwjVrukO@hXzeh^`!FV2FJ)E3S-~U2G-txltBto_#3?>&9Dpe-s zr<)*Mt7K}1g8}t@JkT?He!TL_r*S8Vfd$AJO5&9~PO|h8p-U zw~`OVHWOwshiRwHl=E$!U!y4{hpq$tQ@S?zr~*`K+Jejo$$N;obJ2J|FlM(x096B8 zTba|Jm;BPr1eO>Z9O#6f|CAOb`dLWJhQ4V@{Ae{d=29oU=CZYd+~PD$aj>SpbB}I2 zD3FfaUVyBzvatX4N8p%UzP-u?Kd99yDu+4@l#&hYr`Q^HAqv{nv}m$~Wp@da9fXh= zvkxwA?xC`1BrNSu3FYvNH1J%bEFzjZjRQ*xWwSx>PE%}qvWFq-~SZ`P()23n$`y|PS_ zdfhc*E15$~C4RJwC8!+T){^_3W|9P`t)(YvI5FmwlGjnR2ljJh%dpQl#n3|G&3p*! z{P=jKkDNIyY2H?Rg#Bdi>oRuB>$X_^3gVTV6OXS(jg#cwUuSbva~6x&c?mndM5wI{ z@JfY1m_iFX4DDrAG1c1NWE>YQPVrZfj`6^{txC=?bj0Z9XDnYN8h&+}GRr0ezJx%s zs&K>MT@A3Dos?Li?%dr=TgT9cbm)$dJJRetyqh)^UJd$t3ds-%XIgRBC5*cRo=U1Y z;%N|5>`eAb2l1l)7@5$FMPQ#Ut5!Tfc5oIIi|m_tkgu2X8J*g_6d&3=vbpyR54E02 zX8XG5WIQhg3M62-D)^EKftqWCn}T+dVZttvlMBjUVkRyhAz5WOjBe8GR4ZR7AOH!eydO^JGrAzxLENd1r7WDr` z@>r?jJzaYl$6+sRq8?g=>MJfMN~ftAGZEkRPa_Xjs6YdyiZIk?iP_n)xiwkx|Isml z|5z)KJ$gc7v#@eMh|x-Y{h=6}6`K?K$y)V4`|Q6|zYM`!)7OG0P=0eN0ad6!owRLL zKK%y92^Ue~_t&&;-=Z^>OX0N75{kbd!U_VQJe{3)^xW;)(wBQjwSbJ9n>(MrVj!ow zSuE<+*)?Vn7Gma)Hz5zW1PR`ER3e{>Xg0{9BD891G+)(Ro^#56A13GEflpdnUP0kF zJwIPiH5yI0e5z;r4c}#bAW)Vx+OkoY|n1PIX-U^4O?U3}Bs-AR=e&a?%pGc894Z)VbPgLFltbr_Bk3ol{(3W$e ze1R*O$44eKXwudn48Q3lc|ove0rJ!t9az}8d@Msk{t~j?=!~f|G)=;S*+4VcT31@5 zI~H}rwod&1iClr=M;#HyA1s4yL~`|oo45XJ=w%`oB|y+(Z_nSwI7i75kf}w}^#G-j ztKa2Mo-$B&k9n(;JbP5OCI{GTrqcA9|LdBW&Y2H+B|dasdtIYsv7McEIf%* zF~<#pWgNnA3kr3EQBz#~P8|Kwzwk^Dx(sriAB>0dy=mlIb7{)Ua2PoBYE7Un+vgc4 znEMcs3=sOqr{03Q5{KG~4U!=g>5?M5xI!{5u2O%1-O(9(p{ zQ6k(o%;TOqN~OzL>FEy}of+{5s~ z>#!i)Ubfw&mD?Yqj0uVO{ucrWLu6)f8a?p^7|(r>G-?d#%Wv}*I09vk&I_HddE#>(YcK{0+iIU^UTHkyX zxF8VRArJy>UHKBf6D8G8RYznPAb^!~5l=|bdaQIWC4R4EJq}#K{ZtUYAn(cZTMgOn zGB<6hzrCZ163KyCx2m^tauJe<(&WKD2P3$x7N++t194MI7Y}_$5M$D!44otqWVH+T z&hD-WlJ4NQOYM?X3@z$M1ZZ;5BmT%z`4{2*+J6MV29rP3UdC$m zB6u>m)SdrO`W!BtMGg}RZ{FL#zFaO%kRs1`vBFWdR~EuF@7+8vygML(C{!&@l(5w_ zqRhTD{SUQfx@u}_vt?9LE4OdSdA0fU!-@R32{s%UI`(|eQpZq(m*3+Cgj+3LPej73 z>)K{cmhu5UfciP19+m&N-T1)ctO(i}K*lj#?(R};8eJ4Z`Bw<)~ zZMN;iVcvDQ$MMLj1E*bV*4J0>Q+3`2@$x=oKD`w+Z0#FK&fw!-V&EbdEqiI$e}gkH zYJ`YCoH%9%*YW)kn*?Mpi#{;4^6A0Z`nU6!meB#=t}!PQbXfi#`z{UguBA3t(c1Qv zle(-Ii5JJ9alJR|DK|YZKCfJ`mj6jIdBad_ELd^Wf%;pr$&*~Cz30KJqF){r>5KYP ziB;u^2MrNx;M$Ql&h~J8LR<8dB+~Z$CHcX7^8M3W3hg9*#cHk1zkf3w!^zl|YCLSl zfFIcOswL|7XR79;@fvQT4`#prJoo@g zXBbx+kz#r={le1mInn90;VoJ(*pQ?#znv?atokbhh2N3mcquDW>+Uak*6^?ssT(IJ zp+@^ERyvkIe~&-8EQ^E2@q`dsly<)N6F8;}lhrabaITzSAfwbAa)yd@A$^Hkhh=y- zYalMfe!EAuG?e0=gM~6%JEVM5yzp`(*izS!9^-7r1!=IbCssDDY7M$p-8>8Dumy8` zU&~U*$Z>?d4&5x6L}&RlaOv);gA#CM9)w2t`Bh4yQn9nSX*fjWR*IqxwQJ@mNpY6~oLddj#tv12_g9;Fy1JIcW%RcTMeGpSiyRfK z(DJzK3BjbfFDYk84^c-4Y43Kc8gI-H#^ zyEM~i^6!LunmZz1?=w7Fy^^+sCJ=@dH;5@5Y7&1AS}6|*y)H1ssrLP;K;^8L@XP$7 z{=%9V|Ag5eizCyG*>1cgdo0gUq$53PB_jJ6{ zc19B1)^x%T@qD@lQjPO447;~-s$o1mcBTfD5v5d zS4>^y$vifwlazyx{d2Iu``ql10Yv!c z3G?`=Y>CD%-=!B*a&(!&BcS&% z;|R6v!^miit^hjbHUz)IEcSilLfnq#J3fYfs?(m;SK8})Re^ta5pm%@U_{V)cQRS7 zD`Ji(7~Tdk__+Td^aYP!MhQ5_{pZH0FhCC=q)GgM6E3jNwsR&f{0&SaL2TC0Jv=;I z+BBRJF@dK#lE&xhqOxdTZ8~~9=YD-SU!Aav75*7cwkd8)PL519476*HAj}X?`LGH3 zTTZXVa8FRs6Miz*wT`u98-I3_VbiE659_v2C|mmJlh$9vL8>`fQXoVy_v!q1bsBlr z36(a$f#-FjjLlW#67Zqkg#E`bk_UDP!4z9|C$eO@LqFBaqEV2Ys>#n(OSgwBGjPl& z|DSf^Y`ab$r^fdgc}H$>|I7*n>uT|bV|l2Z+~H?F@wD%X=*AD%X_UH@dG$a$9mpVh z1`I^CM;N10JBL-d_W*(txQNgBV)bLPZ{?Fr0~s;g#B&NrD<^a;rh!KrR||QUhe4ZW z5q{S~{B8t2CVp@ko`TVbbs^nO#nN@a{bZ%p^X7Q#gamF;0ub0ds;JVMa@(O>lh7aK zCU*dbJHT4Sd=^q`zLggQ@yAx8v0#G7F^5K%Y4F_#bTE(87Yg5VwE6S?UB2BWRQ5-$ zAtsT7rNrYy7ej$diOZw53H*LGA#?%FDAFP)0KS2rvrcx%K*@TY&Gz$60#IizBaXVh z5H=N5JE4VG0L#B{q87mQ8#!L5kPT{{ct_@}rr%zZ?$6+^VkZ|S^$s@WK(C(y^?15+ z*JEYVNYu0CH2$KE-+c^4+*7I^;*0*D#|Qc zN$3}%?PRtRQQjts5V_~JD>S>jVrxqQjnOv6Qn%n@;OFo3*Z_;t) zX{#EZUoCLo5|i!i_x7`v#cPTlN4?=vQ5uNLmFnfxRA-9R4lvXe_jdNquuaVBjYu@O zB!57!%-MHLSmxgAjnL|v?_1xoW6YGQ<*%y*<15ul9(;$4704|wgkDY`S;uBt0E_Gpnx6TTGALCT5WM2>I;k_R7?U z!%W&_0oTT{H=#EGeCB|<=DtdgY;yZzoA-mu;`3s??P}XHWQoI|_TbiZ8(BzczsYBB zYlQu0-T=9q%a3oe@pdk=vrNDJtmHucU-HA`!-}g9h0?ONQOP%d0L*$^QjRrESMD8LAqWkWzY;TWA5jxjsTYpO!^aIXzR~v&9mQby4Xu^kf8puy zmi$;H7^2W&OxH0fW8DpHNNE&?naOA6DtA!KjK)x#ZGy)kSjo3sJzB-^yKk(UvN?Oa zyVx0(P~T_g(F&Vh1@z$7rw5&_H#asnBV*O$>0S`jO^eUe@V;3*2!JnmS-55 zQ@TgRsz`Xq1#T+YiK$ zuR+BZiPUdb@iAvSJv_E8{}F_HhBTq_ZiRnmo_clGUBt`}34%rnrC?=BYpq3u;QTL! zd-iw`#mGBZx=n39uDE-6m>eIz%E*j5xnU;0QpGQlCVg``kN-^^zWXjV)%_q!v>B2VT@WPmx zl@jha$QY*7(Zk3fwS`(rn}Tu7GFi^lW-I8_E=Xwp;rMr0{zGCQbg4HnRf1e0G%v95 z`4OZdoEl~uo-t;rfONLN)sII?|M6OW4DJGDw7MY@#YIpeWM-?#oQt@TEsu$~<&sk8b&-E0t#E;Lk>tsY zAErp8t$l$7&(Hi441UW8eS;(78@08O8D9Iy<1gtAdcK67UfR5LC05X7Ya*@3rq1Bt z$8hv_A$wcXp?h#^4mF{zA}Xd{Xpg3u0#z5<^anFdtlnZDN=7%f{vl2pkzDY6Qm~;) zVRB+scBt}^ok5cQ@$%0n*V_u-Y&Gl5)Nx7fj=JgSZMcC(3+<@V0ONu-MFH zTT}d`OlU>T5V**ShnW??(yw7t7V-3zjL4Pgvm`qCA%9DyK!>30(ux`yLA%M2d7_q# zx9#tOq11?dLOq-9M1!wVP>AEUV?wAdO3sob6}(XC$ybVG{tsw=hKAIpUk8JnoRwml-RxciC|W~BR>bbfHA z3E-(mt27%tlp`95ytJ^Xuu{YC-h6i|#;^~$U%mhA3}-j#^>j3dxE>{)gX(vmIU7qZ zA`X}QhN0Y3LiEw?^v`#5 zfsZUUhjS$l-fmn~`x6cLS9B#v!6{>Ps#^H|F^W$T?K)wTR*oUTcn}1(Y0*W#bk)~^ zos@v;+ssf`^nF^*V5a*XS%}gZG+BKI@w>4R)BH{ zaq5hAf&L4LFbbo@QC^VU;JkQCv%&u4V%3L^iRT-U@87$xn0pIm zRj4i+yT~)@Q%;uyS%p{&LefGDJYZ@b&MRC6Biw9k0w;tfB;6xLrsKMnaY{YokvN`M zA!g}1R=7kM)Jg3sTc|Lw{7UPO&MyXB5VJG{{nR-G9qaISFuUX}Rlp6iNHF`M-I8+s zjo0Qt3P%oYdib9^a?V%WpuO_!p4u4buRQC+XR3dM#-tBW7X+~YjlJ!B8r;RBPWP7U zrg`gyKOmS@Xb>fLAv2<&entp-s1~- z%sDuMZe@^-vS$;YzUf7ehqL@*`@kQvCy73NU;9(F2nRnIn} z_?Du$6tGH&2_7ACNeyVjzWMv->%;pd<+?$bb&5GsRXJh-pGVOf4MJ3o3T~9(Pu`|I ze$OswItBR%Nr%f_<6pB1S|Gkp*rw%9Ja`Wr|qrZHmQzrqg%ar)wjt!*<`w0{s9vE=vai; zneXrNo8yK~S1HrblBv+VBE>P_LOQ_@FGe=NqULKw_nSAL#gaby)A8{)w@k)) z_vQ?q^Q<@U5Y=Jmi(xF^z9)f=EkE2}(6u1bQobUo;}B7)_J?e*zY47aTihBw5ms-G6md^?5P-zCueHfgHPQECdNC)S?BI0Y~P+ykB7_&RoUVjCF z`Xh?GAN~8tct^${?W#^Q_z5XEq2={s)IVl8(_`2TeUpbxLkULNA@?U}gU^Tq_Gg;D368Q9Xg%SU*B&-`u}<=M2Z!8Le9r(eU0DM;rBA=K8VEjy9 zT?Vo#8-!xUG(msk@sKmrcaiIE3!u}PW#rN31=XLz-`(@Q;j|+r+KIP8yftYoax=BF@7Y<*^kl(;Z?7e=Cm4Vc?oRW9H)!Ly1v8WB@aflc!ijPJM(Vo> zaJ`kvtY{1FqhhiCr7%zbjvGhP%m&3Erxpc|mPtfyujrA-jEtzt&I7kvu0+}gTwcm_ z5%RIKzcr*1f$mEf2LYal>>>K`xjU>Hqszo?DzZNT0sy-Hu{Ab5$Ea!P+q9;buLoz( zb4PwT@u+{+ML5Q{enY(Qz|R(Fr$X?8VA4Qic;Z(HyiK(I5Jq4OoB2f-`rFV$amB7T zB^u~+tN435Qv7Pq}meZlYZDSU5^*-5A$7S?mC4Mx{SyZRQo6q~8rxT9UjcaH2%B z3>f=043I z?6{{}uz8vI!8e096Y;i;QsQpbISl#nLF{V{-M@!H{>`L%b+(lLZ)Xem|5#i9*kf(< z{%^~pi^5NgYXSiGX2josAUH-~Gro02?7Gvrz@nz%x?70z=3=L6j9n{3pyj>pyL#HU zClLe3!^CyDU%<$@0)&`1PKe$Ozi2;)a45}^jvO$o(7x^Zd@u?iPJP{(2=dxZqc}5p zU=Y#QuZ;y~Hd34Y&F=kff&}s*!Q^6nF0@bX)C}rR+}dJwbAuNeNFqO;^~F6v5?xMr z6H+=*Cz@lp%i{&Vo#_UBPT=#(b}d?FVU^BfWM{}D;LxOHd(r6W8^Y(X3Ew`+B0L_h zO9Jr#@h&r!wncz>Tq%y7_CowQ*{!4_w7*UQdS9sLo4ngSY_=(mbcr9ixC6U^B9GV? zN>L%H{KNAe2dX}f((ry*3Lo;$q_Mf#Qk$KN(i%1}6s%vYjzocWUt9njZ9<+ zsu1Bur@Gn|5}8l$(5x&u|JK+fk9*3fZ`gayoLAXqPG4ilK5c+ z=23YT&rgI;Ki}zfBCaq*DTm z6yN)g{b`0V^uAtF{Jt=IaxDwQP`j2ok5iScwgKLoTp4ZcHx{UNH`}Sn9B628Hv&?b zZwh)N(k(w4!PDk>QNTMVhf8uasBd>;VE87g+QujsvAJLAjWLK(@+FF$>OnJh@v#3- z2#ST#_kx5LqW-OZ)#&;5^7UZ;Y4GskZyL9l@U7DQ^sb|DvZ%_oQjix`MClWNHXkGr z(R~qzBIygU$+aQ2rQBuZ8n3etmr5QfPyZba>cL$exeE*F$Gl=!0~_@26If!&I^zr`c2ANm## zk=xmws4J-~aD@RK*IMZmZJRgDGHj-_`!JPhN!v0rSuT{S6Ls(s%GxcC5onYY&$yuy z60p-wU7(ee8(w%RZj;|%r~Y}@mBLnSXRFUZul}Zk=E>NunqRmJd3*qHc9GQ?iMI|n zl9iX@0l5V8Y5F>{Y0JlIk%Fgv=g@kbAS&SXv&@W2h zAV;0l<*|k!k^3j`h=yZ6n7 zkU0GL*3E1Z23&s$Vz##UU~O($7DFYKC|aWzyU%y(y5KTSB<+fOER7v*68kZG0*#Ho zySC<_{P`>o=7>xJQ?oraS&|GAhG@hA z!qu0Vr)o!)3MwlX6h*Tn%8_?JW?02v61n?+2eogA-|Bp=d1m1j|F?wJi(umwmRmz! z&?*M{`bHEbU8HK#6sKcn)O?lYwLozmfH$2+ynd}F+>j0&fxp=h|V9GfXXk zl}LG`)tzK=;)4h@*82W+(}z#f%^0awZkwH5(F_>Ne@)U`|BQ!K$@EJ&?41-g0`Kiv zP4ria;kR7Bu&{#RF2$?gU!hHmDH95~#=V)BCp3@0>=u3r3rT0AmgNnTL?2x!_p2a_ zJN{7m2d}+L?wiBKYSle;$7Fb03MZ4m$w~T%_!6h_!0mp~FkUIY5_5M5=G&ik=Dl_L zWa}qXm85lMF~>)QFf#A*hf%xuGl5nPiXNNqHF8{_Y4!f2i%(7wTdMBnitRP;2gcSs z;&st1!?ea)OGeDK^R3ZI^(K5CbM#>?BChvi`Y@mWFr^lKFmlBYpOi?#_jgom*zQn^ z&NcqC0I&b`7{gAA0Hrei*G*d#7q{++8Q(3jpddo&%;nD-DXsiUG44y4dksL_KRnB7 zKx6**M&J>hBO#vcUW-><{^z;HZ=&+hl2p);G2)^0kUV#EUF?VxFvqR^+s==u%f1q~ zff=#G$KbEw{rV2R35SM9Q8P^5lOY80iwHEqkgcP9gKF-#D;se=UGYt^4>Ma{oJ1dF z+rrEIsJPpQ{DwHPfNS>ABn*hm=}qR%3*VjoY|GTGbFb?Je{6}V40>Tmk&1lO0sk8z+; zy9$S`^QDh{F`MW<`H4PAZiVXz`t)c4oB5=mzbeW49b$e%`&+U65kvv>YA9f*g6Kl! zOo0rj=Bjl@C1nLZw{933SXx?| z<0rpYjVe;aWS76s62k?cT3W8hbLSIoQFmIaa;Z4FlZ+g?S{C_=<617qOCIQM?KhFm zqrTr4U9DG(cz%2C94|M!9?OwS?_~#U#MtONy!^3vq1eZ~Zw6!!Xb@n1M8S0Vgs(%> z+|kHFjUQ((=XLu*kBJa0vEu)Z=>DV1^t4cQiEMqGz(7clG+v%k80xT|;HDhD#iwQE z7cvMUsdNn;_Y=&~IHNt0;Iv|!6WGx_y;0{f5@g_ULPnpT9ccqHuW5_`6YmlR0 z+ScTj^D-VC2JQzxOR!h&Z%IBnMi|b&l|Cva%Mf+R6TvAy%MH_+3qQ_gg z4(MaxxV0P8FdT1-v+->IsiD!ditA$COe?{`2{2asMkbr*p0C#A1FGxLx5c`nZw+(9 zmD?$JoHNm-Uha_uIw z1cw9nIM$DqcGAoES~b)-&iV&`d~FRx+IE%(zS2i{%1smqVK*Ht@DU{S&mJO*t0WgS zkprg%c)2kP^>DiiaNycv@!LqZ38K*QMS|T^5RQ4xOs)PPT5zQkf|)rc()FkQ!G3hBNsVGF=VY(rHxvmS zXdCbl^L6+KSwkm89Jz;u5;A`dQtISsUZ6s|;3+Md-cF0)%^LOc$Iso%g|fqTYmZCh z*-Cr5r9K-NT>c>&h=MZ{r0(6F@Rj{3WV~kXE4vqlN7-rmlSFP*&MBO1*alC)>|rIY_cwnLvlcSHg(29=x^a*zn>&yA&uZ!^BcyLA*&{*)s5!w=*S zbGt2JcDNY09|*wk_F`LG_y6f&Uq|VgmkHpD9>g2#XX;s6K~HCB&ksdF*NA|6UYnAs zPsL3)1v^5tHzM|X1w-rYDN2NW-`+XbPM7e5nCf;6Orp%x-{UKivAF~txcruU3n5WI zhT+t$v)WmpF)%GWoF_sp_ANGKtNG>oD_1j5>5EHE4} z6s2|YuA#)q(KJYe));0wKjzvQ@1}5JD=86^Jg`*)_fy+lRjr#$6+`+nKG@cQ|F-Cw z@#XPt99{ka5N>GX?Rgam_SNxhZz(O3PsuWSVy4sl7pbT~2K>hv>A#n-ZfxO!#m;5I zMloA2DqvZLG{2xzs00q#(H4TakJ?Xf* z3@-W7B6l69j9^dBDU-A)4;f%x#mf&t6dOo-e z=`PM%14fhX_t_OEgs%I3KscG^bL7)kOnz#FBlkNCWwTL{zmQ6Xk+frz+Ogo_8G@;9 zM#R$(&5iac%bh5j!2#H%o6t|Q!^px$zR}_$^9GsW@9}e;L+>F%ErWr>w@M?EXz5A& zwgDsDwhj767uX*ng9sINT;HNBp1|PJCrvLJ016(P1{Kn8K}<78hYChCOGRc^{Sk*6 z;jn*J?%nk}p93R98Q96`uaM78W{)&8_9#vVXdZQ}n|2L!(kYzMrkSLNk-K=6f>OMk zVMcNq;glHaI(61r48I{|qwR+u+s$8>K5sHf?$8t6Xz30{KyjL&v-wb1mtV53%(y{j8Wq!__g3<+BJx2s8JayI zI!A-QRF=(k+q%Ujim1^bnDEYy)uyJv%7&47#bb6+8L4@S&i z^a3w4dM4Pg$2MBb*94%K;d2u}zNZFi!Pl%`4%VNWUTIX~*_^`@+C)i?79qZW`q^#ABBH-&Ft*@;%)YRsb>&g91yQ#)6E~-QxFnOMgIuZtyMU>AYd75iit>hre&J#~p8uRn}A#^=*M!MHj zRnt#Kq=#s)S10q15b#YJ+gCy@>e|CzH zV1d>oHCh?<8-HNB@EXwl%vLChgG5POdEuP8N<+t!Dw)n{7B3d<>tZ-0eFF7J)z{pv zFoIUhd93aj+m^UckN5It>Uk9N-~b7UGO5y}@ssRI(W`~Px3?&^y`N9t;2A);ikXJ)7d*I}CiX40U%!J9Rs}GMT8j~wQ;?zCsr(i5^kaH6gNM#c4 zI?ia?mKDyY39lWYnTEQVHatdz^8+y`O|q;)4@k;Bv6co>y*KQuolAShPEgi0V;DhU z$3JUO!9NjU=ztB@urx%_`kI74gV!WmR-QFI#tAhzK= zY^}vp-(UTij~w27Rq=_3iV==K7`?-L978|M?R8LFggJY;4&KC!ON~+;BA1DhgTX2Q zOyJ2YY+j>17e7#l6Qkacc_#l&q;Wcabl1q-htkQ?LRau*Vz$pdJ8u5)mT9{6w@UuY z7*wH_g!r?L`7ov>Tyx}Y=2$+tV72NXOlJJWjxn4AoDB8@`R5bu;CeGl-lV)34{x@8 zAIjuk;`Pq?g~SPRWivE7>}?T*uzFA;}OKq9g|8sqp7IR3n$lq&ZAw=!8&-A;ZW2JpyVNq%cbO19eRS=gb>0A&yj>kX zmo7O`&NWtP`vhi)tB4VwE-XmmM@pq?TM(ahE|?qsDyVQoTQSoeWPHOXe(PKx zArV+(IXx_LLpdy!TS*@{Gh}$AaPjfb@>tzL6z|aK4+N;l`1#!DdX`2J(B-y=t&qKR z6Ij7Lj92UF-T0STr?1{rI8TgL8*@!AzFnbtE|uJ)erm#4o0iz$`jZ-2i!)PT(Q(#5 zqS8m+^q)7Gb*U>D;+xzJ6{nuMSaiga8O6JI&6{@CTQF+dUou%lxY5`~uD!|OT^U|D zWIm$^+|&aje>}7Y&V%wCVC_mUyuN6?{Sv2n?eox#`ZL2BP|ls1Ti968a+;Ov@|k^3 zG|k0#0GBJ4!`Dey8$^!fr%=`?HXyz}bwN${L2t8JcuvQ_9hPN$!2k5iMA1aTb_{Jm zPN!gw7yzwP9oJ_TpkiI1SFyl==q?JkKRp4BV^)stW{2Djs@!NjnsotBhRtpD z$GT=@70rSndW*p@tC(Hu?n$Q3>Jp8YAx?x-2J&91#rP>HdeW^Rf#DYx^(JeJK+6W- zhAwWAr}!sOHUr<)^o{@aZJ<%CqJ2vr&aYOiLynxVi{ES8+p0SItT<%v9ZI)W2S3X1 zni~PuP0ZNC>789&OdFS9g;?0vRvTo z89}`tKg7A#cV&)Qo`mf`qG~Cyc-B31f?2GY`mmcng_V8PL>Kc9Mhy5^mvMZ3)0*J#uP5n0UIW;U7cpc`>jJR8|$1c;AN;#IkNdi zQ=Lfsas_9rQ)Ska-~%_Ux6SZ6Mu+|$n*Qn&kBFOMZXX{t2YWPe?QCNbDrS>J>R|+k zzB-^w$ec(N(D=J@Df-fKXbs9({(CCQ0QUtmvRNF$sC?fqexqP+6?N4NyIkUBkgEJV z4P(9Zx7%IQX;^!Wy5_CD;E3ibZddwUJX}n8N?2LWY-IoXyc1JaB~Cl+UkBI^ztAcY z2(!|6V0CwEOdEB4GYol2^03u+ueol6UlZk~JvM9c03Q4U)n+T+=tQiF(j*C)>#q~! zb&Uhbb-~;gnhGX7{0=M(Cha5grD%3%eLblkJK=UDG3b~vGfsV7kR5F=DGetg$N7RGBtV;1&uM^7Me3a=l= zIjT&HGWFT!pXy~%A?8uSS~igkI7}lNmKMWY)~h88pVkvD)Fhu37HY}+-Y$$nW!i(O zJ3-AoK3x98hHnM?j?-9b4V9b;VB^ zto^tgOuKACJFQzcW2Pt&L(MoBs8$M2bc>Pr4F@B0*XKcfn1xClLq`{Xe=k-8u?UP; z1-6Epxb6~)B&hzqMeE6fBW!zKnRc=lP;IfM4!B3_~m)?kugl?_{EM@_T7*Ug&^;TB+tX8hj~X>nT%(@meomQE&T9K}1=3Q5L`)NSUCuT0viZL`P&uLgOf$PN<1LiJ0#|eDKc=D3Y zSHmMA6(rb``f}nGSDt02QZxK-X_w*6oo%oX?cOASDJUmlhdrW?z^S|GC`zK+$ zTW9>X9mPN^-K}A9i>c>&rSN|ZPyS!?m-O!$p>gik2BOiQpb1a=wbyrV$^YO1igL>dwmrP$3VzWStB#vEwfv44b2|;K~MsYoj}x_ z8ZzrbJ^kM@MD+SS?II;I7CPxR?ZQd(|54Ug2GtQY+a4rv@ROjyA-KD{gx~~scXx+5 zxCKaX*Wm8%0fH0UC0KBGdwlQSy7grKOx66Es+qmJS9h4Ycs+Jj{tzi)YDc9>zVjWvSY067k zg`!v7FMtj);Vv7@$p@*?Qwc<~`+#92%jbOcamWinkL7TrOb!8_#byl>Czx_ubW3EW z(xEzM!&U>K?#B2li843#*^MqKUgDlwKc}LE5@Y-o3Imjy07$pz5F&m-M8f>UljI|y zKav}Jqr3j_UZJ%R} zWuN12R~O<~_@o+?zxcU^ne}5g94l6{^&dpbJ9;JBsN8&I!PAu%_A=IQw61&Ona{ji zn#*TItRZ|NV!3mWIP0z!F;Dh^-?#g}MkGu@gM<==fGD$}VqsELnn&!0m7;7($oLOF zB`{eq9xQeUL<}p?g_lTu?jIq-3d2r)`N0*5F)h*6*?GPXt4R4o4T$t$?bGXHYYNiW zTM}Wfi)|wofivJ@JK~icnvU4;<5&$B9f9rvUa}*>@wWQ(+)?Mk;NU}d1*CQI<#cYCd9Dao{5p#l1^F*ME>ZKH@Mnwe zhPO*vbTh^*PE`eu-u6_R;;tPm@M9-?70kL8?8$1L2;!Hkt{LD`X8^#fP)(uN$6>s&9`pm&p z(~wvJ?b4@Jv=2y2A`(dZ)Nn14fhv?av7Vs*h7yvABRH`-zc=~VVC|JF-KBgjXW~x* zHAK-b$w{+Oo+7&Gwv10@1@m!{u)Pf0qGAF{BTU3oWkPuF%nS#BoeI22!(yLhnR6M1Xk9@m?EQU}Mz7$ix;LDpsP@^V7 z8bL4}QI~XM$ydxlDh$$#rh~CerXC`x!2z^68~SW6+o^i1>Ca`kvRiMQM6MIKuhR!j z))h#<=Bt6kMaGJT2w_U*!HG4uK^=i+cF580$x^`~JD}i@A2*t{chYfmFcc zjJ<&}Tk6PwxL15N+vACa)14@(T+>?iPg|!5xL2D~hOPWBSqLj#F%Z&!WW2iQ^BZKE zj%fBU=rM3Heb?XnR#!K900sz$r6YB7+dD9XlqcA;cH+^N3c&&E!%hA1**E(OQE(k@*Ap z-mHVtZMd1}LW-%KKyBWQnT;zEo7sM0kk>Vm&lROq(*iSJzB;@O@JrZ{cZA({ngc=G z?cZ|AAfe%xP12S4wMGhXSzLL9;@l@|13+J`wp;1&eT_Z`xtalKB4+(4O7qaX(o5t; zZl5E#R^M6_Qb^%}hm&pVt}M>DlR~p;g7IhWkYc0BXxEP00G%8ze5-;B;stsdektA9eR( z*ILa^6i1Ej(@7+Z45PstL1CTMY*P>_&n1tJy=KK~(%b(umc?4?@5|#v0zS%saZ^`vcx0PVw}(%{b%0K~66{4VLj9ZZr6@UxUU z39wb7^iz)Z>06-paPo_gIAK~#?zB!}R4%@GfGGN}6^Hjm7WtwFtcEqk+kIky?Tv0l z>4OQa57$A64Q3N&sUh4aGpz!jRcYFsP&L(|5}2GNL{_PIsRe@-6QZeC zbp{!O9*vg(;pwnzOC9FAK3^B`ek9D%hq5u!Bl;Wx!IyXK-;_OSP?^hcMfwAAI2A1q zak7sJi*IyJjW7!*(gj}(T)=8aYcOTM%v8YKZ0qo?;+p#*-L{lEe>t2Y7gJ#ncIs)s zO!ntPfyXAuB-x*F@ZJ(L>@AH@?q)$~hs8 z3jE$C*UeF~fSk(#WsA5@H8rm}o2$c^>9 z6fm6&Qmk6*a`Tp==+5->$3Y+)E&08CXA0;D259IPMwd1POm=Gyq<-$h#j1M3!J9F1 zDzhC75DtNmqns5g$I^Ovf7bpGywMu+w3T>|T}FW9$DjTU#_D0ve>M$nqh{8Dr46Li zD~fpSzSiY>h&@@1El`tbDGGtrwXO6IEze(gcQsNl-0&hA6LDSo-u)RW_b$gsKL@C5 z#*oBj|E1T0Q>-%MOu9m=TcF)?XO>)UBL#akg1<9WT^Ty6amoxPS+2Kz4uZUR?8G<# z%=vif4)4UP?HJE);jEVtM71S#8uX9gUcQ*KLb!?^*nL%JJQkGmV>NTS(9SRb}F@?ge~5!H(RaWs&!}Gt}Vs+3a}}5F~@(cIZc-kV(#U zGQ1u9Y=%64%Dy{~FQ3uiAMm25kHw+2v_fKTHBx?aMFOjd+SG#{XXfW0yWTZcp7B+f zKI<4f5>nBkgRv%LJyZeHb@hpQNc4z<3VU(D;9T?;@~{m)CB(CE%DT6 zgu=BTU)fq1{2?bjBF@c5x^lp7I}|9y|FCu@bsY>pkUtbAOuWZixA6RrxpG zn*nNX{znRj%Z_R8@1?1Ee~07v5$8#uLy&-cS!G~4w(~ZPy(7{U`%oJFThnE6K)gSr zwO-q-2?CHL0W9&jGpBYY3-3_CaT@0x~s|{4Gt}EjUfwg^vDQE0_l-c{KW9a;l zJ*QUBCVSbcdhl8YS-oC!7U{gmx55JDU=;dTZ^E7Ni zEVh3|^&V!@<#gFtp-rX%8g^3y-jrfcBWH}}ktw6ttIn(3+V_s?a?*ql^1^S#g4#%u z$CN7pFKnQ*@AO7F=U(V|+}>CJIJ+fzWzdZB7clN3g^lWj_?fzO&gmUxzR40o*0@~V z+|)kcm17bF@Rh(+{(fOmlIUPPZGF4O5h|mQtik#H@=((qqdI`2a9VC2i-%za)4*ea zeiy`9(F>)%aKHqAHS5x>2xSq=0{zyWeM8rrhVeY9ccks#g93UkK#rpJP#E%7sau&` z3i%=}bHlQiA5DigZ@<#pQ1>9`7h*shBj|NT?USM75cnTOUKPdXXVWv3swCLS#LqltEmNCFpXYCNyUcEtb2S>ALC z2~-)x<%e~-`292x;3(eX#rXJ{>NEIs$_@tH(R|&C?wVY=+I(O#x1Ch+;gS65BAP&h z7_OCnc{~KvRJqn(8YzG6JLvc28ze=CzZ1s~!T0t79?*;DbmHbwJDR?&Qbn@5VpAxP zS+($eg@D6-SWq^kpgH?^oc|TqMFo*O3q%cdBQvTRPO4=Do@>b35e52Pre~-2)+cZC z_h&AaqJF_|u0Jpm%$Mnxl-ng+LU3a5p9q8;)xxrM^xDF%p}(#u2(?}IU#9nh`bAy9 z`heNr-#d7B?@7t;`bNsUiI!H91~57RPn%6_4w+~-qkPQfUo%rb$P{f*PO3AcYi=LleCUaT96eHe@=Q~S0?U)0cGeZVV0 zMqHfbYk_zdnAF4jJ(CQaXEvL7eUr$uxH?BVbA?2oWX=4FzCZWlWd=o z&^9Ne2Mnaqa-&fZN-5CZwf8SAkbOHYQ(ZZd8wkFj?G5$j^YA48f18A9G8V@JKx! zTUw(%dZ*LWbm=A{4!4Q86cd1{0_()IWKv7RMek^jAcrwJrbJwc1{>9uQrR(=B$Q3f zkJksJ_hHPfX3IkBVahvGfWtw4CEzziRJHwdCrGE=cbIV>IDoBqDJVv2_^{U`==A** zvp2THa`t}!j@7;23=>-KCEwrNIik@qM`6_9vjsBWr@)U}=g(BQdUI~SrX}EwbR)A* z2T;kH4@xGwj3j2G27RPH3XZTJy|e(tTAX@QFkG8C{m=E<%U*Lh(5XA~3IUSuLLE|egJ_L7ShkEuszZP@ zorDjq{Tk42Hb88@UFv;yi+ugkl__#!n}llA`1p|d@SuAR>Mq+3g@-?B!7@8BB2{W*Ma4iVbWHs{f^PBoxJpqR2@&JGpUO*=44V00Zzyrk(5+wjm1%Z zj?ww}k%zQdi+;fS4d%xjv)+9#FyxtOJjLFu#0QLC#?NMYNi!zJ!8}}LdiqwuO3aKR z$v;6R{a-CDN}XfTbGvc_h_-rY4wHV{8u&expp{bR z+HyhJykOjidH*mdVdshBnIZSouyo_JfVIt)nl8tE#x4rS*bhBY|9Uabl=IJ2!_j>I zxB-->;Gp$7Xcft2@z{?RcSZ8hD>wqfiq_y37m()&ueo`%OV^45hfSE!U(U(VVcZ4! zTM-=zMMLsGYNImPSr2D8SFXY z-z_reXqiEgRVT~AUCz5r(*2$n@1Gvu2jGC3yU}_IooC;)1>#Q0J}0gc^Df1P`)na0 zkNdu!qT-*6P-T3!w%x48iCer@a!24t_n=sL2LCXqWJy1$kAQ}uB|0-R)7Gp7g1)Op z^rVLe%1(@L3hjLhjND$o_OJQb!)gT&cOS+G=I>!{)#cW35Kiaby7NXXW4>1lK)cyU z5*jWeZlH(SHU9qIrGc|l=2qjWc*%ut)Pto*OE`1$)+mlI31oCQ5-EHAMxo=Hr+7q6@e0mf0sf)B%#ra)Yg+kO*+^Y-FSOpj>L3>$SWK7#F#p75nBK4ISm> zYV){E_D~VTqS@f~?0%rZ!30?@!HB)n*7d+MCvouzcU{38MEguFtij2t zUCddEm-kO8Q*e8fS<4AWsbbn%#Jk?345zi8Mc;jarLPvny9aoOR)B-QHU`SJ+DPbz z1s<9U+5;Q7X-8drmdai5Ao?kwnu)k7;MD@0h%8&eUE_oDd=mVQk*@g!rjW~$m~Haj z_y|HXssB1(7BMB(m@IkHF*w-bY!uHSVW^-&+?bwFHCdOpFUA2AX zEb2n~Cyn{d{iZ>fTp-I>59~|VCV&B&M<;7dRd?y3x9Mc+oBl}nmpmrH?qMj9%vL=b z$n5Y{M6en)u6Wy%ALv4=~2I@wZ9_my>ErP8^INq04Z- zJarqlaV=^PItv)f@5F{7E2zguuv>(fcx07jWHZC4)v8C(Bw#3LjLIyU5w*9gR=LF1 zy|Dn{=%Lu3pQixvcQ(m}BPvsXTWN>){mSW3K8kD;U0t7OC=a1GxFr(y2wP>eV-u=N z%ZMuW>*~ejb|sbtkmQOtf~p`BIeun}Mc9-$RyG?>^r+NaEGT6AbT><-jFxMv4c#)9 zM}-WV%Msdy0kplicnlb@hZPP1I=)@{XhB_$%|~cgn1cbcT(>!1eA7ukXwx;Bf-9zq zxw|OcVNTg`A0>)igmdC%mw6QD%pR6m3X;YGxX~$tz)b9TjWZ_FC#x6*(qIr5U9v*GfPbUai>21Pib=F z!`*pPAdz(oyE#psP$p8a*Bma&!uUcnx z*h8k5uVga~-td<@zReCh5BXwX?_jd{zCJ@cxk-f2Z^iWgQCkN$NA5LPwx~=HK3)Zh zYNq{J^PM=ivN*&R*7VS1ej1hBbUulNBV*u5`ki6iIkb5{S@obVC6D27;$!q4f-qw@ z-|6*SnhKb97291ocCYBuoGrYHJ9E5*(h7@F>kU6gX7tFn? zbpZdvyG{2$rq3_z5sq?ciMS`_q;Dp_ZRo^le#>abT%fu z^;KFdb$AU33PUI0^$s)=-`4!&{qOA07PVq_Vo`nP*V1D2vl(lbjMqM+!-gDL<3u{Q zgYEk-j$rYtJigg6Qo@=@7nKXwbj!T>sSO%U(V+xYvf-#JD9`)(*{3KZjI*&5MAWp5 z90>3)ko%qZhIstzD(~>uOxJ9% z8%Mw}bm!V!9=d62CcTrOl%QWVc)g9$Ed#2avZS!wv@ya;>lsxRP{y&E^sgLRZ4oSj zO4uu9#RZn#(4_B9s?~$xREg}Dh+?7uP%D4m;8dzXJ^|B#?QsVU6ZpkBOxZ=1jTvEB zA<{Il8GIzOgYs(`X~a9C5>;WtRBtt=1NVSpau9w7pytCJ%u$8HNC0Okmw zdd3X4IIDj@V!{>_DbpK66H5b;f_=MSvy~G=lu|z(wEw1S3J-LgCi|-+j+e=?z4aWQ z6`!_8tDzXM!I+Ubl0ajuF^<*C;Y6ImJPxy|9&H$P7KsR}9y)gVj+-V?fN}=nyYmIw zD*XwpLYB#e@F_S;uyP=ItYlM2cc6M zMhX1voZ`DbeQ-M|Q)hT?IAjfCkjxha(EcqSdvN=RYwle&%tB&@&Ow(e1kaPM~K`w9m^#+aiAw%QV;8-($XbdfDz{Xn(j2DCVg{?bJ7pWC`f%QjFBZL+2 z7yaQ-cfM&fbkCWnJlUt~F8zMkOU5ph2Q5Jw6O>>N7tniE)5UbPn)`baKBRh;>H%z; zA33Tqgl*V3do{UHI7U_u6g?eA^^I55sTIx`5&fERY(7)zn`iiagX|trTcwKjX*Zme zZv)z%lmodji)NB_n$t8ex+UHaX)CQrhUw60ZLqy9STE1*nXne2Z%XQdiS<#pV%>%- zx89s9O{J^xSx>TOM1%w8YC&AKXyN! zUzfkJDgzN@Yy%P={w)@LtYk?bBX#exr~VPOl2uE2tl&jjm4Bc}_ir~8SI-Re;jCQy zHHY3h35qWQS)kkDGUujK`g`9ZLYw!iWC)3mnjNdTniiMTM(HZ1N4L5LKfU`N-oSo^ z?f_jxk0~#mmx`pMaRJ5{d!OYWvhDS>B!0NVm|X?zN@IR!8O4J;KifEmNh}f(BNF-p3CZXp+?jKoMW^*G zp4PirRAxb4)3rJxYa?=85kW#;Fy;p^Y%ox~hz1bR`w6f3QYu9;@7zuH89v$(J1W3%-&J1XIp=gM;MS`s_DhByfn~uad)z zqG{f{Zhg&wSU0g9qW_qS#)?=&<<8NhAjE;&=#cX|@7Sa^5a=}wXw8sD|MrCj47})@ z(9u9%X47}0#@IuuB?#X&MhZe>|Do$_m){KpKZH``sUzr^7AjkVMcoBK$mU@zT7m~0 z>$SOWrvF)epBH)j?gk)*3!_;JP4d^}Eqs+(MIxFeYO4jx?~1nF?@$ zn?}cC-9L*Zw)=6;P;%)tIke4hc(7+hPlm9$CX2OZQNspwclrq$0R}3-XR4>fhS@)!`p1mv+FP= zJCVfAP3WuDdw91m!sGdWmCo$Rrel;Vs?^(l%Mcj4&uNvVb3dgxLeO_&nPmN@HM`7w z-jN=S4*QWn*$3NWi5{mM)F-PmFISLGO$K4?eQeL)ose7$`D}2DcqzktEVjk#l?3UG_n@ zlW6Nfjra5(1zm5|M}*j)(*GVllsdDw%5R>Rk)ZX8_()xLKWFhe+rIX+_OYG+(!Ek2 zz3(9{)`d+5CN%g0Q$LO?-m0ySjLv*`;F%&Pl{*kNnhFnCrQgo7gzc%Su83_>e&?zB zcvv{LwW5Y-O1#=RG=*0^kiz5z~cxowoY`H$Hgb=9fZYw14H@wP1yqNz}{{{ zU0qU2`Kv`{WNB!!+G5;8(~f-M#~OpPQ9 zy2j}}bA5Oc%0jcoeK~|HuS(qAsb9(83aU0RZz=OmLw#||y!dTAPOzar5*m_j5O!Em zSIMK>TH0e;Q@QT84>P#qY?yKNX2R_O+Xn)eD9`_{f14lG|54O$47Iu!KBq}GVVUqx z?our0r6C4)eq1^lH=3FA{~jv%mwv}U$o2wHU>R?rlsq_2<0~Cd zwk_FR^6_lAk}vr8)#qoEX%p`@anDXUf0kc#8_QyNKL|a2e3rvo@1qV82PTK}L3e#G z5vklOyoMz_Nbo~RZ&a=U#LXbtc$N*T^CN@~S9>YW;5}m+k!vizURC!nH$60_0B(9S z=SR*l=5^1v6C3VpDSo6LD0bzjP|0=ybnhj|`AOKk_~kIApgj+!(EYqNc%~*kzw3(- z7YhZs3_H�XJn-XA&DTB`%2FHfYoi-v3mKU5vNm^qd$A1{h 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 diff --git a/tests/typ/compute/data.typ b/tests/typ/compute/data.typ index a8c79da15..c0a6ce50a 100644 --- a/tests/typ/compute/data.typ +++ b/tests/typ/compute/data.typ @@ -98,7 +98,7 @@ #test(data.at("1"), "ok") --- -// Error: 7-24 failed to parse YAML (while parsing a flow sequence, expected ',' or ']' at line 2 column 1) +// Error: 7-24 failed to parse YAML (did not find expected ',' or ']' at line 2 column 1, while parsing a flow sequence at line 1 column 18) #yaml("/files/bad.yaml") --- diff --git a/tests/typ/meta/numbering.typ b/tests/typ/meta/numbering.typ index 9bb3c5d9f..445290c5c 100644 --- a/tests/typ/meta/numbering.typ +++ b/tests/typ/meta/numbering.typ @@ -33,7 +33,7 @@ --- #set text(lang: "zh", font: ("Linux Libertine", "Noto Serif CJK SC")) -#for i in range(9,21, step: 2){ +#for i in range(9, 21, step: 2){ numbering("一", i) [ and ] numbering("壹", i)