nodejs20-docs-20.15.1-150500.11.12.2<>,Zfp9|JIpȑ׎ޱqʛ?:.`H1@bq,\,aNB8b\"'%s8RXـ>e95%'M_I7.lH)?*,S /}"CFOEn *瑿jhD60D]ÐQauCps騬Bܟ25g8/Ram ։P,ҺΡ/8Dn=?ejt=z9>;?|d ' A|  @  h   = =A DHIL@LPL`L(L8L9M`:OF~gG~|HIXY\]^b:cdfekfnlpuvz,06xCnodejs20-docs20.15.1150500.11.12.2Node.js API documentationThe API documentation for the Node.js JavaScript runtime.fh01-ch2c ٭SUSE Linux Enterprise 15SUSE LLC MIThttps://www.suse.com/Documentation/Otherhttps://nodejs.orglinuxnoarch0{hdi  97DR$`c^z}bT: =Wl+s`eA_#YAPzv -JMBBj| nVh*(ëX-<h kq')]Kj{ R {JG-HZی!Q3Co46Ѯq\6*>O-sD{ex#!}Nw5bu>kmsQ:[{j##s37RqS^K`\M]:MVSh_ M pMD?:LdJ:"Y#jWDY+.@A8x}:+ bq'Aq1AA큤A큤ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa900cd3ed1c13680011d99441adbb1a9c7e9795b65744cac278c51431b85bc85979aaa1f84da83039584335821cdd0e7fbc0416d3671fde606cf22daa5835a08c03e3ae1c2b1eb230311e100a92ef77c35686ef23d05f5bcd8ea9097b6f429dc88e78b9ffecad3a2070e6b4188845589d108c27baa05d3263ddda654e93b14744215dc7699264ee4e2164c7b3c8a8638eda0e6f8c368a75ea35179e72568d5f9fe282c0ea8e4231f1a78939ab0dd9189fc580e6fbaf6e52b5171446f358fbaf279a89d168e1f03825a27923cbe89b18e86c94c5780fb94b7147e6d727552213356622f1421703294481f284a5f128ef39b1e1fadeec589a28e848ee80948dcee21b64d5f1ef6467111f6a51463d7975f91268d1c8da21e72b29ff68b20d95a669f3f37cf6f3eb2ad140c69bf79d9dd66d24fb52fc6d360570479f9d3044a6e504e35cb18c97866ff100aee980af208eab0bf806865eb19d51afc338ae207009711ca10c73b0bfaacc1561063fac4cb54c89b5bb6dad8ea3cc2e3d9871fd0fdc195e93d8962cdc9ab486765756c3a8800a1412e31ce0eae76aef9435968ec93b9339d45740142a145b83c6d5abb37e33434204c252429d7a4db111e83c36e8b98b79d54a0773d77c4be32afa0fa9e55ef98e5590e0007a1696ca0d074a875a8ae6a6cf9b8221de0475e5527a29b135638d0a1b92993b09c0e89db700d663574e99f6a952079e2777cc173a3cc356c640579f8a0f557c9b696665a095b69653e2ad682701c937d9509102dc4af55063b29563a26f1521f5b614f3f69f7f72df241a0f00169d4c5cad546979f7ee3200226d603ff46ceefd661403a6859df8b253a76054a63c278d382d05f579a0d2c726294689bf8c35dc4168bc0bf54b587b59ac770505868e62d817f8fafa9be380fed47d4f9a9c2f5d9c626fc6be8d91bccf7a20c987eac2cc038487523a912cc2746ea3531838982336ecca0102eb9a2aa5dd4134cdbc2869221aa3be7102030c9111b5ca86174af3fd3562b9b14af2f65ee68149f9e566d02aacb402cc71c43fea8837d67e6bab306f076048d0a168a41088d157061274715ae39d46d0bf0e1f5f7df5b11c70bc661a165034be27e2978d378f741f8638475f49c02c794297d29720a6cd6d88206f63f19dc355111ada66d838da675d8339fa81f49f0e28a4a98ea5e04126570232196119a977cdf4b2a128e852098ce2ccec7301a7dd899f07803a39bcd3d702ce3bd09ed6cd64bf7d3202f6bfada2e005d85393176925cb0cc425ed625ab1ba3ceb12d44d2ebd6daf5d40762d70f9c1c3dbf124e437951db03a10e2ea8522aad1d5ed3aadc07999a23c7c92892eb6e161e8f98537626ea0035a721313487348b2a633b918a18d903fafecdf68d61fab0675d17bbf83ced8c3b90aa990f9d066fa051e7eae7c63fa1f6edbd313d322564d4eb69a54837fd33a9b39cea1fd9006d451636e6a7310d91a1eac44c6de3176e25454bd8852ee27f53ce120ba2483b038ac2f6c33b2b654f97d0c9f7fa1db14ad0be74164da1e18fdc4c24c844a0dbcbe7d1555ae8d0b2e65e58a588ef0c393f3bef2926e7d28ea1b3d38f8c42caf40a0fa77d28ec938a12e8d140864a8164eb315ce4aa3d12bdf17168738bedec52118ac197930cd17b8a7310d29f951a4a506878f02ed207756e3bce2605ddb383c31be505acfb787dc46dfad400f5fe87f07e9d20358591446cdcd390b51e36371ea7f4be99f8d6f42e41c293707e3bb5c074a776ae57e8e0b2713df53ae463fae0679c505691f037e21c4d6f821a93247348a90768644c37d11b655d980caaa13bbe4739a026db1311b6f73a16fda677e6742e1e90e2f0db1269aea6f5e8cce3819c11b2dd1c049991f926cd75abf69930f08757676193cf320672b5ccb39a52dc38c6745d9ca3c9a1e425872efcfd31ca2bff4ac36fa86e7712db242e7a06664c3294660b62b0eefdd7d42a6f0e0eefb6d5845af4f2eabe25782ea0e76ef85bcdd65f31419fd5d3fbfbd79ee7eee75c54151887a67061d8fdefb39fc957d12f6b61f5ad9c1389d8bb77bfa338fd4e13b3ad4de9f2bec72773f27d104025fa1c5d9c8aa8d1a85d32c8df98eaad894d53872777047820a03831a18828ca695c72db8e4fe1d1fc93fce9263d16667d230261825409a603c436ad2693b33ac337140cc5642b422af9689bb5258f77b1e046d8cc65a4304f1c566fc638d90532a0a47003aa4411b5812ee9affb0209cbaa2deafe15733eae4d9cc00e6cd20ff975e61ed5290de209bf321471928797dc7738eba6004e36deea4173982deef8883ef048d3262d16cd0287a564ec3e470b103a5babf4020e6fa49c03ec74d2f18cf1cefc7b6a8e7f2732d8e5b0bf269b2fc94b1a497a5a22b8ce2d17e3c0dfdfc80c2ae6f642c586be0b8800c95e6ad4021c06b1ae51d829530059fe348165612a7456424bb5fa2e583d62a7637dd88a97929be62d994264dea8fc03cf3274e1afaa53db2238726ba82d8115a2b39405699b1bbde60d940d1e069f50a29f7815c0bd8639718061fc92af62523b491f3028cd21800a81455133abab90f8a77868aaae007e21415a7509575b24f531e1cdd2ed9fad9319eff481acaa52dfeda5dcd6b11cafb4a2f4f607deed9f6d5b93819c25d043f95664ce7e1a8c8b6a0e8c80c6465fc4efb69e650ed85e9489b9ddfee2f734a5ba60dc0dedfbb2ea2efb5c14e64aef173afc0198e4b8281be28a6bc1401e6a6da5ce9f83dffa370b0d3d72d30cfae9b60e6a79a5389ed7117086f98175b0a05b8d0fff3d16f6d210566b1616932c429b6fc8314aa91c4472fe31c6f5eabb92c4ed5362e4b5504813aecdc1b3ef6c57365266392e4b2d795fd2940dc6d37aa35fce84f08394ae164dad8f29e75e88b4651e930fdf9bdf7288f5eb8331481c8027d70e5781f9ed3ce2305ac0f515d344ea72da51049983416a43317185a52a1ca302b971dc653beedd1c8c70dc24757fc2f530c4b51368408913114aca51f90268178efa678ca46f8d146fa585a54e9fa4b9ff68e6335f642f3b06c8912ce119d7512d22ea131590612e2dbfaaacf02ad33a170db3e3c2b0b0ed19f0eafdbeb676b4b90bb2777f9c578c0bcb2fd696cd8ac977499c59bbdf6b08e92af3a98e884ba60fca5264477ea6cde32baa257eb81cf161864d636a5fc8c24cfbda299eb1294029505a162df97ded11795a063d3fd93e2d1fa5a1578030567015747de9ee00860523d3e111d2266715464e3c6f56c93bdeabd5de69197d0af759de4143b93ad66c9747a89bf349ff8f2c9b7b6378140d56417197b70baaa94f48fe012c760ba72a7a0d2734b1c8e0d8d1405cc8e4f9d3adb381d703104344bc6bdff4c2f5125df95d715c19a4cd0525f039c176659462011a5266dfb88acf5922f0ddcb102b35bd180d800ac5d2afb823a7ec64de5235cb9194797746641b9b98c01cd228c8fb762a14a7d7df8aa64ee9c877582a2ed3b6008bc110d62c1e9c38dc0f6560700884725a69dd98134f816ac9e387dd2a7138ff89b23acf380c5aecd9746cf73945655f11257281f16e3866914a0cfbc32464a945a3da2a8803397ecd6656a1c1d58597db16fd8142b6dc2d5f4b2a0335d8248287ba8738905b8db14eaaaef70e12d30301b8e8d2b7e26393365c0483a063220d9dac9a37e4dbec21e715eeedaefc2c15cf1ba4439f34e3b930d0821ec0f315daacccc86cc6694fa119dfdc26c93ae2a81b1d07eb5214c8b9efa37d3f12dfca6498985c351e90eb9fc704f3aa3b4dcc2b4ce40308a14712dd6ed28cef32da6cb6a399f99479d50e178152dc14dbf51d2bef11919ec9cab2401e78bc8bd2739a26e05d07b46b472638236dfed34a30eb27819d97365f4b31c815180779b34b77f34ea1d7162b341cfe508240ce2540ef3bfa5b85031ab4eca4156b597f444fe822411525c234da74b351500e2b643235ca40a06dd96eb0b98021bb9b50200f1fd39c255a9b87f12a1742f53038b12fbcd3c6687b17a9017d13f840a201675704c90e9c0a99ada348f75702bafdb859c2f146697f302d2b9c452ccca4f996a461839bd4f64f4c59434d3a54bd2c8e0d2f06bfd242fd751395602733ccbdb9569e9eab79f6001a2b81d7f6397de26d44385a5bc4c18998d44c9fc1f132240fa94a1637fcf3ea907bf71112e6cbc1e1277ab7d88c7af294836626f526899ab4635a67dccd5225bd7fe140459173275dba9c99c0b66725b6b3b7f5d795603ae9a62becd8584a9bf5e875e455fee5b5fdc0e0816804fcde03757f62a582c7aaf968301a5f7ed70ff248723c3049df8a5cd626bbcabca5791936574ab4c6a0184273c197481d1758f773c1469b79e6e0df18da96e634200c5786c93f551c36d04ef659e7c04839d46303f2a1431de62b1f91b57be67b30a6f23b3f34cc4ed1d1475a2baf2d8de04adb12c11a3ddc6a5bef8e9e24e4fde853b6b70d6b00553947597a9333d7e928401030bba774e766ae95794f25e57580e8caa123df37050417838896312959bea16d0777e987b31152fc14ae57d634c5e1a6ea531046959622baf68a5474b2d9dd8219456cbdbc86fcec5338e2a0710ee455a012acae097a9010477eaa1b8fc4cc1391b002af78d078cc9c2db192f1aaef2c84a0ef5bb1469f2f697aaa9849b59171286304522775c72d4270c3f146f267a7cd6b16d961960aae4b6a35fd7ccf7cf25c8d971565b9dca68aab0ca27985847c15580571dd7f2a64fe679e19180ca892f72649085f25cb78c82b6c1c2ecd840426a2f8b115a56344b5132d5adf64a5792653447eb6d9c9d438aad8ceb4a54d7f443ed09acf01e3a1e6e5913bf71da1b6e3ea953a5f6100ac6b7dafe7d706a030aa2e0af5cd2917a2a855a64a6c2500a48a3152409c6e346a28c579679bf1ababdee59804bd54e809affe74b031c141de7583ccd487d18ed907a3716aba259d61e0d257ace5f222328cc932519e7c5401bb78a62bf8a6cb000d596c79c1101f1b8f77f0e44cb0f4e74e050fd921f8af256ee8e2b1c024ef64c9fc1035ebcce75f0cfb59197c2a7b6844ecd178ded1b9bf9fb7467d8b7fcd020ebd8417befc4d660b19bab8682f3e2d057df3c3e46a6d410bc2ee7b6767b65327e180c21400502a285335eb34fbe27bdbed95f9ab08840a1905cb762b262e02b1eed2ec4d9b434bb1408f4edd1cad2501a1cd675ab7f7d94a9e47fdb7a51a38cf45dc6039928eb882e163c07597131f12b709905d0a5716a4d691b3490839798ba57cabda2cdc7f6134ac9072fb5fc6dda381ef5a9a5401c385e128b189e9896d867ef4f8dcf1a540bec5dc4c0bc0952046222f920d3082a5cd81c134685700a99979ab0557152601cb3c294c2fbbe8356a899b88a5afd57c165c3d532bd9fb926637ba70e04870fa600640b1ccea1e2c36f1999466558d1b0cae18b5de805a583888dcd74b1d5332f620fef03fde28fa69de334b027eed596e5f4a9abc058fa0e7fcc907d79a556551a19a3a7f46dab715b428f42c8f0acc8dfd1c3eae50b36045fd01ab01d8c18e60a03e6f1a84df0dda664da368f67ffbb6ffa398c377fe57e96fa33be410936dd74376e84acfead296276b7b2e9028e96bf5902c1af1fe7420ac4fff44de997c6109b10dae645f393f5f557929cf70249736166a4b3d8727a9b3af0ff93419fef66706d494c3553f084ee6ef6978f2dfc48571ad947f3c53b0117b8fd06b5536880344d9e015d2c56285691551454fefc3f180202a0e87c9997f2b79813417a967fe6c255ac664d8f143b5cd5dda6e1195a3ed1d0317ee8deb1579f3061ed2fedb73b981c352f3e93071acab3345e6b67d799ac83479869f14ccc98eb6624cc511bb6a2c75f6caadbfa0be3312c4bd2730e06e17f56ea8e775add43f1ac7d23cf52879242dd4214128783d9f0312d3b968e80f85b38447f21005eb5ab340500f6c25c733cdc1ee9319461c0627453fa9cdbad70131e90646f6701f013b5827a5654ea642003bc28e6341d171d693b2084cf3407c2ec7014b7965be4348107cad36dab60848d26d8e9364e134cb3b6a4cc4be244b22c9801710b1b5be4a79366a5c69e0d486a32d0cc7291892623f483382ba49ad794fe0c039c09d872531120c68bffdd74826f47a0d0a4d17ee460d2e4ed4f7880f21cce5dcb8f84a13a4b6674ae20d3e6dfe653610f09a456ba54bbafc5f242039c137e51e6d3d67a70b6c6a20d7cb1d8f0556cc26b1e80c40f92b8738588e87e8105e23fb1405da393bf3adf679736ad6fae74b381043fa456cc1c0a1e1c2920b599a9ea91026fd8167bbffb688fad641648dfd622601add945d98587f80e96f870d59e52fa412390af4d8fda4b6c7c5f6556dcca53cd06d54411016b2223720aa1d3267579c5f907058cdf724c3ecc6e64eda004fb5d2a74566c3f948a06fcdba5362ae399849fe6b6c9b998acff605b40a3b1f5f95f6c1e550113b19e5400766cd1c16ee965950c840400aee2fe8a517a0384d4283b6092d43baa3c2660db097aeebc268e819352c5639f08786d898faa451a087fe3b535afaf9890ba2e4a88aa3f606cc96d6939f36ed1dafff466b9777e3cc0615b24201fc196d1ee27e4ebe31160793604c49f82b4cd94550af3a56e14239c0400998ef5f55e45650cf1da5b26688f53f2e4284c791216db7314589a4ea8ece111f45d7f5829ddc42b8da5d2faf788d4d3393b1d42593ead1e6798bf9ddf31a1a2ce4e5a311a9e1032602d8d02393455633154d3fcb81d6787d985f9f23a71a90cdb1246d8231eac6b89b20a9268239603aa58402a2a8e600302683439a59b7333d0f52cf67ac61f7187618cacfe4c62d2bea4ee5a38dfa589a62a50cea64ed2bcfec1afd3c728ed51ed96be58146ff7598c235a560f6630fedfa8000974ec59bae47336b8fa75a8bbe45cbb109180b8d4fcdb5a1b2ed5c3e8fa78509d305f20932d447f8cbeb7de2b0802fcd411818191be50d18a0aa4e251b5edb710e28d19b418692cc0c70a3eab2449061a633f773db6556e1cbc42a815b14f4cd100e641fd4121a46ba85a144d3baccd268a2927810b26b71e5bedfd5fd920b8584a03ab9f26c98a035dadfdc6e8d511bd2203ff8173c82e98b5803662453a2aed5f21a0670e14c7020697b776c49b0e48cf079aacd3bef723f697476cedfb8813f56a908bf624b98d1fdefe5e6a48b58e4ec2be61d5f86ae3559e33122eff3f256874c63e8a55bc8f6750279f2cfcf3c9acc5da99a0bd37f8a7ecfc45e34d5d60bbdb57974dba31738c58b368bfdb5e46c95193e28f4b5dc7c5cd7cc99070fc5e359ee3b46ed83aa3034203bd85e17d0c4ebb0ebd0c488fb65687eb04c4be78b657f3abb6869deddca82e58d1f2825b2f119853e06fc2339dd92fc838e02023ceb51f36d88261e792135777b080cc0bcb9813ec4073394a1d1533ef6a5b6e89af53649e4483d351975461ed03973128d9323b76d9973c8a6911701247068a01bd7f87a86eb32bb51f47b549851973cced6d575b6b074189660b27c6985d68a732f63f3bd21ae1ce9af57915552b6b597399bd52f04397aef7108baf5bf2ce93c9039f610f853711a3e7fd5e18c20595a3ac12963b6d6c182cd0e3eb221323cdd47e2b5ac834277c73118a50766bf1e01030eb3c74b334443d339140f5f8613deadcc3928b2d342ef8a4687d80f5fe9dec768311920a83fc3d18116a809ff056e45d3f00c19c27d10380080be8faeb4c39cc1396b2f23ac7dee8b3443dbed2d7303c17b714431e51e013df715bd56e563186327e7794a3bea9a98df6de2aebe4e72e0359841208381c1ab2d20578132b9b8d162e3c7a3776b4b0e61fd62eb54986456404bdbbab5ccf04b68e170ec68e35961126c893d09c21d477aefb236e67f95609656a0d06f4f1ab12773206c8f381801aa8ad22b7c57c43c148a5d7e751c7d1ad8deaaa130ae7f34e3ac6d9e8c611bc91cdfce18e334eedc6efcb649e714b70819fb0440b41b57c69f0868e9d453ab418a99dbe1e7fc153b7cc8efdfb5791abd40ba087297940811a79d646a43e4246b7f8a7520201f85b9e13ee5873e1d9930e042e274900744308218efe5ba04b3e2a3729a28c93ce145e6a88b0d0a062132229e31e24079e4a422a57a2d828ffd752c73ac10d7a702be0a71861ab0064cc9826ef9eebebc45d2c4cb4c6cbdbc0421274f580b8b3e24b30f7753261a2f10fbd09e480667797636837fcb2d16edc5415de7f7d8a24a71f21532bdef06129c23e5f4416b0ca3363c3eb1a581303d62534ecf0b887420e5cbb82261c3cdef65886a98185bb8886232b3618d32d7b665d9c91563bae5df3880fcbe976ccaefdad84c8216805a576923bc697dd41d858284761d67ecb0aab33981f36800e63e43cc21c22bd170c4f771ca6e2509df7a93bc5667fa44e0ce94264a8c552295f05293cce5e28f9035008070a5f70e464386847dfa9763cbc2ef194aa96375a3808e3511906e504d64c150224799c66cc6eee4bf3bb4cfc2e4a1a2395c40ec6c71d7f689ca60daced9d9f3535b690fbf8782f778feaa17225c41cc05b283878f22550399009f007159e15efe2ad3cd78429207f90452dbcdf0dcce59874af0271decdd1628770b012b276a1e692d3e9c641c721325f5cf1c98286ec852cb769a8d48b2982f231e4a311308c329f5e974c73298e2d0568af4014c3fd133f945cdb0f20628244f6e64ab7c9397bd295d3c322dadae9a44c985277f164e52e22092f8de43270423f577c203b458413b210b263c3c63fd280cd16d33af30d55e5bdfbb042947d80a16de0e3790e25d80e93c1775e3cefd8d4e12e73d56e7801450ae95de0dbe309b376902f9c45e218167a24f880c2272e92bf93b370dc96e146798b4fdac08daba83198b56f31f9448f2256a2687ffcf4e7e759d200f7cceb4555b44bf81d71cd3a8e1fd34383rootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootnodejs20-20.15.1-150500.11.12.2.src.rpmnodejs20-docs    rpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)3.0.4-14.6.0-14.0-15.2-14.14.3ffU@f-f @eN@e@e@eee_>eLe;@e7e-%e@e @e;d d@dd@d@d@dkY@dgddbd^*@d[@dS@d?adam.majer@suse.deadam.majer@suse.deadam.majer@suse.deadam.majer@suse.deadam.majer@suse.deadam.majer@suse.deadam.majer@suse.deadam.majer@suse.deadam.majer@suse.deadam.majer@suse.deadam.majer@suse.deadam.majer@suse.dedimstar@opensuse.orgadam.majer@suse.deadam.majer@suse.deadam.majer@suse.deadam.majer@suse.deadam.majer@suse.deadam.majer@suse.deadam.majer@suse.deadam.majer@suse.deadam.majer@suse.deadam.majer@suse.deadam.majer@suse.deadam.majer@suse.deadam.majer@suse.deadam.majer@suse.deotto.hollmann@suse.comadam.majer@suse.deadam.majer@suse.de- Update to 20.15.1: * Bypass incomplete fix of CVE-2024-27980 (bsc#1227560, CVE-2024-36138) * Bypass network import restriction via data URL (bsc#1227554, CVE-2024-22020) * fs.lstat bypasses permission model (bsc#1227562, CVE-2024-22018) * fs.fchown/fchmod bypasses permission model (bsc#1227561, CVE-2024-36137) * Permission model improperly processes UNC paths (bsc#1227563, CVE-2024-37372) - Changes in 20.15.0: * test_runner: support test plans * inspector: introduce the --inspect-wait flag * zlib: expose zlib.crc32() * cli: allow running wasm in limited vmem with --disable-wasm-trap-handler - Changes in 20.14.0 * src,permission: throw async errors on async APIs * test_runner: support forced exit - fix_ci_tests.patch, npm_search_paths.patch: refreshed - skip_no_console.patch: dropped, upstreamed- Update to 20.13.1: * buffer: improve base64 and base64url performance * crypto: deprecate implicitly shortened GCM tags * events,doc: mark CustomEvent as stable * fs: add stacktrace to fs/promises * report: add --report-exclude-network option * src: add uv_get_available_memory to report and process * stream: support typed arrays * util: support array of formats in util.styleText * v8: implement v8.queryObjects() for memory leak regression testing * watch: mark as stable - versioned.patch: refreshed - cares_sle12_capabilities.patch: SLES12 compatibility- Update to 20.12.1: * CVE-2024-27983 - Assertion failed in node::http2::Http2Session::~Http2Session() leads to HTTP/2 server crash- (High) (bsc#1222244) * CVE-2024-27982 - HTTP Request Smuggling via Content Length Obfuscation- (Medium) (bsc#1222384) * updated dependencies: + llhttp version 9.2.1 + undici version 5.28.4 (bsc#1222530, bsc#1222603, CVE-2024-30260, CVE-2024-30261) - node-gyp-addon-gypi.patch: adapted for new unit test layouts - fix_ci_tests.patch: add benchmark fix- Update to 20.12.0: * crypto: implement crypto.hash() * util: add loading and parsing environment variables * new connection attempt events: connectionAttempt, connectionAttemptFailed, connectionAttemptTimeout * sea: support embedding assets * support configurable snapshot through --build-snapshot-config flag * util.styleText(format, text): This function returns a formatted text considering the format passed. * vm: support using the default loader to handle dynamic import() - c-ares-fixes.patch: removed, upstreamed - nodejs-libpath.patch, versioned.patch: refreshed- Update to 20.11.1: (security updates) * (CVE-2024-21892, bsc#1219992) - Code injection and privilege escalation through Linux capabilities- (High) * (CVE-2024-22019, bsc#1219993) - http: Reading unprocessed HTTP request with unbounded chunk extension allows DoS attacks- (High) * (CVE-2024-21896, bsc#1219994) - Path traversal by monkey-patching Buffer internals- (High) * (CVE-2024-22017, bsc#1219995) - setuid() does not drop all privileges due to io_uring - (High) * (CVE-2023-46809, bsc#1219997) - Node.js is vulnerable to the Marvin Attack (timing variant of the Bleichenbacher attack against PKCS#1 v1.5 padding) - (Medium) * (CVE-2024-21891, bsc#1219998) - Multiple permission model bypasses due to improper path traversal sequence sanitization - (Medium) * (CVE-2024-21890, bsc#1219999) - Improper handling of wildcards in --allow-fs-read and --allow-fs-write (Medium) * (CVE-2024-22025, bsc#1220014) - Denial of Service by resource exhaustion in fetch() brotli decoding - (Medium) * undici version 5.28.3 (CVE-2024-24758, bsc#1220017) * libuv version 1.48.0 (CVE-2024-24806, bsc#1220053)- update to 20.11.0: * esm: add import.meta.dirname and import.meta.filename * fs: add c++ fast path for writeFileSync utf8 * module: remove useCustomLoadersIfPresent flag * module: bootstrap module loaders in shadow realm * src: add --disable-warning option * src: create per isolate proxy env template * src: make process binding data weak * stream: use Array for Readable buffer * stream: optimize creation * test_runner: adds built in lcov reporter * test_runner: add Date to the supported mock APIs * test_runner, cli: add --test-timeout flag - c-ares-fixes.patch, fix_ci_tests.patch: refreshed- fix_ci_tests.patch: disable test_crypto_fips for openssl 3.x, to be fixed soon (bsc#1219152)- c-ares-fixes.patch: add additional backports for unit test fixes- c-ares-fixes.patch: fixes unit tests for new c-ares- Update to 20.10.0: * --experimental-default-type flag to flip module defaults * The new flag --experimental-detect-module can be used to automatically run ES modules when their syntax can be detected. * Added flush option in file system functions for fs.writeFile functions * Added experimental WebSocket client * vm: fix V8 compilation cache support for vm.Script. This fixes performance regression since v16.x when support for importModuleDynamically was added to vm.Script For details, see https://github.com/nodejs/node/blob/main/doc/changelogs/CHANGELOG_V20.md#20.10.0 - nodejs20-zlib-1.3.patch: upstreamed, removed - fix_ci_tests.patch, node-gyp-addon-gypi.patch: refreshed- Update to 20.9.0: * No changes, just LTS transition- fix_ci_tests.patch: adapt for openssl 3.1.4- Add nodejs20-zlib-1.3.patch: Support zlib version with only major.minor versions, like zlib 1.3.- Security fixes relase 20.8.1 * (CVE-2023-44487, bsc#1216190): nghttp2 Security Release * (CVE-2023-45143, bsc#1216205): undici Security Release * (CVE-2023-39332, bsc#1216271): Path traversal through path stored in Uint8Array * (CVE-2023-39331, bsc#1216270): Permission model improperly protects against path traversal * (CVE-2023-38552, bsc#1216272): Integrity checks according to policies can be circumvented * (CVE-2023-39333, bsc#1216273): Code injection via WebAssembly export names - fix_ci_tests.patch: refreshed- Update to 20.8.0: * Stream performance improvements * Rework of memory management in vm APIs with the importModuleDynamically option * test_runner: + accept testOnly in run + add junit reporter - fix_ci_tests.patch: refreshed- Update to 20.7.0: * src: support multiple --env-file declarations * deps: upgrade npm to 10.1.0 * doc: move and rename loaders section * lib: add api to detect whether source-maps are enabled * src,permission: add multiple allow-fs-* flags * test_runner: expose location of tests - z13.patch: upstreamed- Update to 20.6.1: * f0ff63fbc32ea55f3d92c5c89fdb91ec47786859.patch: removed, upstreamed- f0ff63fbc32ea55f3d92c5c89fdb91ec47786859.patch: fixes issues with Angular and other software that tries to load ECM modules in somewhat circular fashion ending up with multiple executions.- Update to 20.6.0: * add support for .env files to configure envrionment variables * import.meta.resolve unflagged * deps: npm updated to 9.8.1 - nodejs.keyring: updated to include current upstream releasers- Temporarily bundle ICU for SLE15 SP6 (jsc#PED-4819)- Update to version 20.5.1: * (CVE-2023-32002, bsc#1214150): Policies can be bypassed via Module._load (High) * (CVE-2023-32558, bsc#1214155): process.binding() can bypass the permission model through path traversal (High) * (CVE-2023-32004, bsc#1214152): Permission model can be bypassed by specifying a path traversal sequence in a Buffer (High) * (CVE-2023-32006, bsc#1214156): Policies can be bypassed by module.constructor.createRequire (Medium) * (CVE-2023-32559, bsc#1214154): Policies can be bypassed via process.binding (Medium) * (CVE-2023-32005, bsc#1214153): fs.statfs can bypass the permission model (Low) * (CVE-2023-32003, bsc#1214151): fs.mkdtemp() and fs.mkdtempSync() can bypass the permission model (Low) - Changes in 20.5.0: * events: allow safely adding listener to abortSignal * fs: add a fast-path for readFileSync utf-8 * test_runner: add shards support - Changes in 20.4.0: * tls: add ALPNCallback server option for dynamic ALPN negotiation * adds support for ECMAScript Explicit Resource Management * adds Mock Timer support to test module For details see, https://github.com/nodejs/node/blob/main/doc/changelogs/CHANGELOG_V20.md#20.5.1 versioned.patch: refreshed- Update to version 20.3.1 (security fixes only). The following CVEs are fixed in this release: * (CVE-2023-30581, bsc#1212574): mainModule.__proto__ Bypass Experimental Policy Mechanism (High) * (CVE-2023-30584, bsc#1212575): Path Traversal Bypass in Experimental Permission Model (High) * (CVE-2023-30587, bsc#1212576): Bypass of Experimental Permission Model via Node.js Inspector (High) * (CVE-2023-30582, bsc#1212577): Inadequate Permission Model Allows Unauthorized File Watching (Medium) * (CVE-2023-30583, bsc#1212578): Bypass of Experimental Permission Model via fs.openAsBlob() (Medium) * (CVE-2023-30585, bsc#1212579): Privilege escalation via Malicious Registry Key manipulation during Node.js installer repair process (Medium) * (CVE-2023-30586, bsc#1212580): Bypass of Experimental Permission Model via Arbitrary OpenSSL Engines (Medium) * (CVE-2023-30588, bsc#1212581): Process interuption due to invalid Public Key information in x509 certificates (Medium) * (CVE-2023-30589, bsc#1212582): HTTP Request Smuggling via Empty headers separated by CR (Medium) * (CVE-2023-30590, bsc#1212583): DiffieHellman does not generate keys after setting a private key (Medium)- Update to version 20.3.0: * deps: upgrade to libuv 1.45.0, including significant performance improvements to file system operations on Linux * module: change default resolver to not throw on unknown scheme * stream: deprecate asIndexedPairs - versioned.patch, fix_ci_tests.patch: refreshed - openssl3_1-adapt_tests.patch: upstreamed and removed For details see, https://github.com/nodejs/node/blob/main/doc/changelogs/CHANGELOG_V20.md#20.3.0- Fix build on SLE12SP5- Update to version 20.2.0: * http: prevent writing to the body when not allowed by HTTP spec * sea: add option to disable the experimental SEA warning * test_runner: add skip, todo, and only shorthands to test * url: add value argument to URLSearchParams has and delete methods For details see, https://github.com/nodejs/node/blob/main/doc/changelogs/CHANGELOG_V20.md#20.2.0- fix_ci_tests.patch: increase default timeout on unit tests to 20min from 2min. This seems to have lead to build failures on some platforms, like s390x in Factory. (bsc#1211407)- z13.patch: fixes illegal instruction error on z13 and older s390- Adapt tests for OpenSSL 3.1 [bsc#1209430] * Add openssl3_1-adapt_tests.patch- Update to version 20.1.0 assert: deprecate CallTracker dns: expose getDefaultResultOrder doc: add KhafraDev to collaborators fs: add recursive option to readdir and opendir fs: add support for mode flag to specify the copy behavior of the cp methods http: add highWaterMark option http.createServer stream: preserve object mode in compose test_runner: add testNamePatterns to run API test_runner: execute before hook on test test_runner: support combining coverage reports wasi: make returnOnExit true by default- Package new version 20.0.0 For overview of changes and details since 19.x and earlier see https://github.com/nodejs/node/blob/main/doc/changelogs/CHANGELOG_V20.md#20.0.0 - imported the following patches from prior patches: + cares_public_headers.patch + fix_ci_tests.patch + flaky_test_rerun.patch + legacy_python.patch + linker_lto_jobs.patch + manual_configure.patch + node-gyp-addon-gypi.patch + node-gyp-config.patch + nodejs-libpath.patch + npm_search_paths.patch + openssl_binary_detection.patch + qemu_timeouts_arches.patch + skip_no_console.patch + sle12_python3_compat.patch + test-skip-y2038-on-32bit-time_t.patch + versioned.patchh01-ch2c 1721041033  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~20.15.1-150500.11.12.2nodejs20-docsapiaddons.htmladdons.jsonaddons.mdall.htmlall.jsonassert.htmlassert.jsonassert.mdassetsapi.jshljs.cssjs-flavor-cjs.svgjs-flavor-esm.svgstyle.cssasync_context.htmlasync_context.jsonasync_context.mdasync_hooks.htmlasync_hooks.jsonasync_hooks.mdbuffer.htmlbuffer.jsonbuffer.mdchild_process.htmlchild_process.jsonchild_process.mdcli.htmlcli.jsoncli.mdcluster.htmlcluster.jsoncluster.mdconsole.htmlconsole.jsonconsole.mdcorepack.htmlcorepack.jsoncorepack.mdcrypto.htmlcrypto.jsoncrypto.mddebugger.htmldebugger.jsondebugger.mddeprecations.htmldeprecations.jsondeprecations.mddgram.htmldgram.jsondgram.mddiagnostics_channel.htmldiagnostics_channel.jsondiagnostics_channel.mddns.htmldns.jsondns.mddocumentation.htmldocumentation.jsondocumentation.mddomain.htmldomain.jsondomain.mdembedding.htmlembedding.jsonembedding.mderrors.htmlerrors.jsonerrors.mdesm.htmlesm.jsonesm.mdevents.htmlevents.jsonevents.mdfs.htmlfs.jsonfs.mdglobals.htmlglobals.jsonglobals.mdhttp.htmlhttp.jsonhttp.mdhttp2.htmlhttp2.jsonhttp2.mdhttps.htmlhttps.jsonhttps.mdindex.htmlindex.jsonindex.mdinspector.htmlinspector.jsoninspector.mdintl.htmlintl.jsonintl.mdmodule.htmlmodule.jsonmodule.mdmodules.htmlmodules.jsonmodules.mdn-api.htmln-api.jsonn-api.mdnet.htmlnet.jsonnet.mdos.htmlos.jsonos.mdpackages.htmlpackages.jsonpackages.mdpath.htmlpath.jsonpath.mdperf_hooks.htmlperf_hooks.jsonperf_hooks.mdpermissions.htmlpermissions.jsonpermissions.mdpolicy.htmlpolicy.jsonpolicy.mdprocess.htmlprocess.jsonprocess.mdpunycode.htmlpunycode.jsonpunycode.mdquerystring.htmlquerystring.jsonquerystring.mdreadline.htmlreadline.jsonreadline.mdrepl.htmlrepl.jsonrepl.mdreport.htmlreport.jsonreport.mdsingle-executable-applications.htmlsingle-executable-applications.jsonsingle-executable-applications.mdstream.htmlstream.jsonstream.mdstring_decoder.htmlstring_decoder.jsonstring_decoder.mdsynopsis.htmlsynopsis.jsonsynopsis.mdtest.htmltest.jsontest.mdtimers.htmltimers.jsontimers.mdtls.htmltls.jsontls.mdtracing.htmltracing.jsontracing.mdtty.htmltty.jsontty.mdurl.htmlurl.jsonurl.mdutil.htmlutil.jsonutil.mdv8.htmlv8.jsonv8.mdvm.htmlvm.jsonvm.mdwasi.htmlwasi.jsonwasi.mdwebcrypto.htmlwebcrypto.jsonwebcrypto.mdwebstreams.htmlwebstreams.jsonwebstreams.mdworker_threads.htmlworker_threads.jsonworker_threads.mdzlib.htmlzlib.jsonzlib.md/usr/share/doc/packages//usr/share/doc/packages/nodejs20-docs//usr/share/doc/packages/nodejs20-docs/api//usr/share/doc/packages/nodejs20-docs/api/assets/-fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -gobs://build.suse.de/SUSE:Maintenance:34775/SUSE_SLE-15-SP5_Update/5e6cd36223febeebcc13d3b9f47ddc3e-nodejs20.SUSE_SLE-15-SP5_Updatedrpmxz5x86_64-suse-linux                                                 directoryHTML document, UTF-8 Unicode text, with very long linesC++ source, UTF-8 Unicode textHTML document, ASCII text, with very long linesJava source, ASCII textASCII textexported SGML document, ASCII text, with very long linesUTF-8 Unicode textC++ source, ASCII textJava source, UTF-8 Unicode textexported SGML document, UTF-8 Unicode textexported SGML document, ASCII textC source, UTF-8 Unicode textASCII text, with very long linesJava source, ASCII text, with very long linesUTF-8 Unicode text, with very long linesHTML document, ASCII textC source, ASCII textAlgol 68 source, UTF-8 Unicode text>_8h~\Бutf-827d3fda7c150a17bc054c3649feecd683158c958e1450ec1133be08842780ca4?P7zXZ !t/5KM]"k%0 bka^Q0G[2PCS*Ul*aPψXv:lC;~% jJ䂽*}  ם3ۏO+ߩduhVx5<*Ra^¥> }̀ű௲({4p)ޛXFQggeh50W)QUhP!tx284GYC#H{n+[<'[]?{١ w) ]txHhxV/E~3LU CO )Ir1I"* m8cJJǚ]CZ%\˻z˘eكy72^/j~b3jct\9voP]",Qܡp +bRu/"Nҕ74:4@$x SWq5PPSim8?Y~Zm?7:o+4`OnD6oVҊ0乞ưZMôKwFkh+V,^ b/jC"'ۦdk:ˤ+ؕZ4 =In2]~ES7~}n2>"fK _{ 귃Z9XRT_R^h6T=]qӆ)OQϼ9hSȊne@/I dp4ɹZs ͭXIh~4L'Ny &5Cf-{`R^)g呛(?r,L*s qN?4 ȉ) `WCIF(P9;eQuyZڐ;)&D+hH ޓp|beB~4^F'w K52ϡA37mZ@ʲQȊ3,t>Wq],ŅwTu/a9D #@SvBlVk AY!,Af”||G9ID3*b[O @jGwsK%?)DfۄMúIG5D|TjU@JOcr21֚&0We\rBtlAg~_[sL vlK(l!n@1yUʘ3ذHs=(]w;Ѻ3]H"\ k@+ؘI<1$r-E=E1Y^'=_7cf;Kn9LK$ Ғh Zmv/g },YMF*qKe9Ǽ]Yh׹jI5Yj ן qOIϝ*( '!目[o joMj~寐'thqI]Ii9 }Ih i1aOSMxfŸŗ (E$<ZnKwQ()+q#-uʔE.=*3_gE\BGʔHJ1xqhn*pj@Jە[xo[S-NX* RsZR!-J7>gLR(90j,]股iǟZP^8zEo@|BRX1 넦58 Fx (94H,a܉V-Pr li~s9LGnW(Nndf #Μ꟮uA_@rc!1 f_>'5]P婆y-*J/3|] fdYƱ Y05WHiKwu9NLLaVxs@(J Vc8E|27Uc%݌ p=:#rf O"'|8n\Sygίݼ^LY !CleR `]Wh{99$5u!jw B2/f飰 [l܅g}cdE"Cډ,ugv_'( 02Ґ/T-)P̺}gb4s썀QWikۓҍ 3jFzUlAiz?r b_15s|[3v9N!P!", R*1X{S뢁Xg$@jUp2 i d..BdI#gYRQqZ@4h}jv9W2ǗNuĎ7D }?=&O5g(@0?`[gK–iRhfn5Qڮ0 lb >IygjAm,; aG5&Hd bC& wn9Vl2$[}<]0P^cH #pL}$h[.J[0$f JUJ.tY˕[/z]0R Mnʎ`XM4 1mtD|Ј]&qHk5ʜ;P>UZ 3щlhVˆb>+U|6oih͞ n1F5])&F< @KDE|n~ Nlf酳ҚI+<nfpۨ@{QCo͍51K|İߔf'և8g2'7LGZ\f$>kst[o;Et .=Dx# tj{I,s =:Y]鮎,! ge fT3*ɅH$LWjoë M9^&6UDRp _;~K+UQVwRmyӖ'|[Q]c9+eAx:5fo fVz6%lĿA/ûRŭ|0*;K3DzmgY!HڔK'(bhޞ粕C5YriRe)xY U^%5$BYx NJbxBXn̩m3xTV72!N*c xG B8th.entD/6g+G|走0gaJpc{.!U0s؋.ZKRR΁ {$qӥpX1D?,d3͑ 'Ӆ@T!z,L云Roh1bFHu% Ml9: ##b NisrDӄ:@L803دW*Dn wW.O byŊzHU/ڥ 욕ܿx2& Ll] b: S 3\ҘҢX ;,"5bv0e gB񨋿O]BHlK:#gl0}!hiMB2=O.C,&ފ_bM$mx CJC$m cw_- :~7h0qQe7cܼuvrv4"6RL&xNi9u{]ad[FvRAOv.W1w>\wG"*(\ ޠs m okPJýʳ_Ѩ-Ǧ _H,C؟I21/ ѕ [W'wSC:ۆ;@%ՙ/ѵB1vAoG6sM7GFd)#KuAKԽUC^' ~| _p]=aӄy% ufbc`Yq' [$𜒙Û<9TUc9AoGÚ $)v {&@&ʽ,t GݮNE rٮM@Mjq>SKUU@ي0fr.<5F~j<;L@2NDC܍LELO;TkۡIq\^+ʜ"~n~y_&?z{CS`Z҄F md$e\wT6& 뫻+xYY)uۡzf2.`=2 ژ_ x'$t51UyRXD;T呷~D?_ tB$(zPG=\/2rN#2|vT{\sL^.HHi֙77 !IxSqnfR/5oA9dfKlb?{Vl>%8)i| k0уv]SI)(Ib$6 %2\I ӤSM39bmžķau9rlK!sHg BPcq;7_dMH]pZi4']--D3FV(QP3 o #Ál Xb4j89qPDɨT_9Ճ+;ݎd7>vkϏ%tܰy|\g:pSv[y5 , ē0,a" } #ē:gm^6x$^"q tlC cp8<6X%- _WJkʼnmnW4 ΃lhBݠUS"^dDS/vt\ f <YclIESۤ`bf:\I}n!IJ>3$R׆|Eclwn#|@ۖа/@{:0#bU>j|8Γ{|3##֘r{'LE^N/s@qrnzc4cAI1ՎÅ/_quT9Z)4x0_]"iICVCܰr1$T^W.8UL:LBPѫJgSHU@8oC|[Rps`]@ h=>54˶x܍zw?v- 7A{Xby,]0G^4"69R,c cs 'i0\q\YCdG"&K1:SUȁp6N{;nTމ>':A(DH&x/M&f9;P5P(d}\ݣ)4"bAfKPo SFp/a8: %G"1{fsK%('Zӈ~/__mÁe3ˣω*nyY1v^M=. pDHV&ju}ow  N\CO-/q/DB3%JXȥ2FVc*/WX$y|\_+QMŋjQWL‰D]KiqUay\~|[U [O8~ٔ8_g,bP J@ꬿ~t@\q)9Fi@DLBIialZ RgV[)kLWY[{EB9&z2^cKyUbh*LKǡc '.xY^HCJȧp6/:0ڱ xd{wU*pa23d*~5|iNBfy,>Z"^A1,ΖqS 6)tЉsU 2x4K#g)N"C9I8%gLی FꛙAU0=9lM6jqk墅B-Z n#+g.)=ĈޤO˰)%FB|)jjLZ;Ul_j_VYަ\n_Sėc%/4i!EWď, qH2Zeq{sy>c |ӹv(¥5\[ ED4f>iR]Yԣu2<> Kl7w|t\g[:P [Ir}/DٵZ?U۫>]6 6ya )Ne,,~ԁ_cjT?!Rz@Da$TiG.Q44?og6;~="M3L]%kY߆['/TsNe|j##3'KcɫL= K7CDVUD.$\5̙]2P66)zVkk# Oآ o&*NMtMTeYxW"?QBpZg$ԥIFm,gR_)#@VV0063^] @ZY}ב5ƶt#H3((Au{[mC~[ ,пT:-gRo,)t/u5ė0(:.v~CYy$: ȥBl'RYU?Zkpi!Y!,͂hTŲR;HS9Siם'g؅`4rbƺ>&^wdq{dUk>GOauB _ރClӢ@a͋%71غ$P@>_68]1HUCr`6^"ٯW_?2E]nݭ! duaaMkvx,iPE!}:TZ)]^!GBK 3]9NOo>9 gV])F|Ėݭ3<-΍?/=#j KNPīٳ=?n૜x#L.v75YJ$oϒ5 iOLoj:7 >Tn;m睊Vx< > ׶ͻ @q=h"^?ʝt>3_+d8aҔXHΗD^u&v{xJsO C\ũV#;TsMVowM`w?-b~|{jՈ/ڗFO;O_׈4-70.ssJ1+С UG|ө|$1#] M`OFNHcy$l.]="jD8(ۨr&m= YjwZ<`%MSn3s8 @N56(inEN- ][%a]~ 4djH+oTaIiDaRNG?{tI',vL]ۻ#Ԓs6R 9Cr-ChԐ΅U]|>ۅ6m'^T8#Kre`"E "Ÿ $h`#G淲 .LU wȖ2O{hA4inpPaoZ&ȸݫMpsDB1aӉI3%?=,[1vz5"_JlZ:$}뿢A@lmt!Qd|5>UZD?x ~S ^\[4bϓ81>!m|lծԽ\o'ϨsK s0t" Od3K;_C! S ]9nb!@d!nqF1D ECVr%BnNBy: 3LrxUٚ0l\\@o*i9XK*X4_ks*//L:*s-\~P&%e}{O!|aX{ `LcnG'fS=. uyоpEդCo23)N% /0n[@M0L>9ε+ʂrܓd4GV\ǩ] M)p_ylJYg!xHoWʸJКMj0\:9.Y`HhXPO[ONrnȖlq տm}m Q4bX@BwוCZӐ*]Ej{ob1^Ĭ@Y݄=Mb RB~k80rϏ:k*E#eICS %A J8k o9+H0d*>zvU)sЖKi*i"+#Z?[DʮC3\ !~͓δLΖ=&}|hʒac*Pbwl1uDQj[65~o Is"Y.A UqBlA΃vS[O\Mmo$9娈ݵt?z"Ï~w譕 *Tdȋ3BЏ4qpt e$S# \!#<-5(" 4[BT$M-BKl;eTd oqQǨ}yEQweyIw~Б./G];_lypL% ?cN֮</@RXp} Z X̀iH@Sg:d"Huf1oB/BDN +l2h HH+`z*@^w جejZξpat3SvOQW/Obfk%M{4*KGtzi\.sje~I$p9^q6F}WVV[|<4mv^`߭<IaiFe$ ,aooN`d'^=%oa~7%@#nHu9:߳I"ﳥ2yzdK Z#rOȢT5<ﬢ/[bX(\ i6\*i}xd9 О^Rs}0͓T SS7,>wH;ΑH6WDw>c [uP3ƭj a~!;ʑew,Q[&s%Ҭ\ \ЍDJ^?Y$B%Ȭ'gHNuݹd̛Kv!c`+hBsCh1%QɝVF9VGEDS5#2.:<}~I[eT=A_n8H@L"FTޱz_GRSRсQ.v^BB8,XUj`X陲ƽ(P x`Ǜ5we"ܟw6a|߈22t=i6oQRl`dvft&IhysiH#,rG׎DXbv3&5n7ƾ[jafb|>Z˾HY6/cRۺ#K,}~_ڙNd+veaס[A dܫw@^]_)= Ӱʺ|_G佖kJo*x&wImQ 6ESK=֑@EY~Ft 53DH%gf*҉-tn/ばiI}][IW^!a: gǶW]LcW~C8;tP52a H-G:?UNQnJe:VbG, S(7xJG.Z?] ^Q&%CE<c/ze1IthhW|81%}0Xr]..=PN'G|sԨ->nR07ܨQvT㊘~>Y]WHg8 y7b ZSʅR18cH}o ع2-$I9Y*jlqG}IR=j[([cS(ˢ; )UtǨ34.B9gx fhP/pt= q &ucibc!ҠĤ0˴ݞ0ʩWƝJ(Kmfq/R C56r|{WGj% ֨Ļ%BsV!sʢQx|^&(IQIG̦cGS`5'b)eel80W /#a۝K\ξan*v8AbqAlrHƥ(ĭ r6ߜ3vʔy{(;5LJuZkP{cN.& &;`q {^'4BE,2 TLeLco{ ؒu>>$pgVP8`P zm#͊moE\~,YZd7 QCb+<;6|BC:5{}Ux-lU{oL\*+oL%DB#ѼP7Qt{g_8LFq{n懚vy>DH^~ bU XnN CTkK|kӨfmN۟]Mb%58`kT)|> sOxk+VP:o5|Pw%4./iIݷ('b]>Z%A6 j?L?i1`6!v[>v/4%7ec"B2{7]+zB=ll Ҙb%ЧZ⡾$̔8] C|'BOX#f6[NmOs\{M;;QGnTݡWUbPi~#vO(R(p-\0ǭ8o5ߎ/q'W(#F&X asܭF@Rѓ2JnHKSu'ЏݍIś Qt~*c|U7G ?{Dz"X+xp'*;qG6&fn̦'&^Z074w f鶛,RԯtEUӣبhP^oQzB[ x>-w*tB :jۇdS3F\kB]o]0šon6ֹ+.FweS=ƒ E SjQwRWw؋Qj*fΣgG[efFlJ$>l%~2(| %Z{Rͱr" }%(;*~J<#<T>`9rLI׳d%!Ь_U#h`籾CGs%}KT;::@W恓>ܵ&{|Ϲ+ q~׏鉵aF~ sC]u%:s ʬPL4;3ĨƒGP="*[~O?ߙXøRwK!bo%cHY3UMӿKRټ wZ8R@>L-\I2&SF ݟOnTDa~ǤPT6)MMN3k}FҪ2?96*>0,0{WLL!bV).[}Ūbmo0a<|ZA>A˸ e38V36%{c]Вp*  R.W,*K]R͙ @zubL˻0}[:-|niܹ!c3@ucA52vxK4V^93ָxH^XM`C:"1o_o%M$GS%-`"gM7:v_quf^Q$8`8@,#+tj3 zormPjQ14rJ c1_58Qc`0(dᴵgQm+GGbqzA \!Utz_$Q =ݠǺ{F?ړ#]Es3"uV_>M胖2%۟?,iQ:w2~O Xo0DO,issDS^DEJ-Cq x4~w8cDa+ - ӝwb8giЉIe]> q`$oq٩rfYs,o\n E6kj Gr!N`ق0C 2AmCzG}ـ31Ba:fQIL,}ݳj2=9?!)RDJr*|fGi8*oXK:/JOOU Rmj ~XzH`=a,{q ~-{ysAxثoLY"!GtphH P"H8:]4r?tvqlLD-zfBK9'i;V/z'Lx] ɤ`\;..;' ṠSu6%+g껮#W mkY% &[0@FƏF <gx D)Y(e#?][?y1lF11lblC'GE{uΩVv<4zH39Kc^z[7YIWZKqE+CؙHj1q.'+yjͲ7=&v#f8M'UE1+f0kEM9|, ł$"O:UIoB\9UeCS 2:]q]k52+MQEZ(߈N{L[=l##@Y,)WLq>;37(iWy, c>' ĞEQOUˌ{ٽ mSY><~R=O-ZzZ\1Q{zf7t{87mv!4fhĝ=S?{2m~PN!Ƒl髼S\IbBI$\i`dc+t"-j+<`bazm+a~5_֊kmS {@^@2U{|[3RbU&6vhrwIGJL( _ 䪯\sA A2&ـ{ONd\,&N-s_T8);lWlI4j RP42Eִ * F Tσ3(=)+nWWr|Z}|vM˕g EG%yR}H=JQv[L< VZ/A0f;l0K=`ɽ }8~U-8%C"1luԬչ*U3uVJ#e_ZLY)*H:F#s+5P/N浐q5wzǡT{tիQtKsQ;֢צЕ[%u[U&%1ka@iLқ Ƀ+X8h"ڨw)sQ{uû}pBwcx#bgaY q +Rh1;VG ߑ-G^unۑNgdvm[\R7blę[@L"};NJ&߮yPjkr8oWٸ-P ۬2O =qG߫hSaI{:y0G4NkaeĆp7֍VӉ-EcbOmc)U*A|6v=Q`.gd1P6iOP39o-NX']F-ޏiA)6IG9KEvFk*^v)bWZSz:~5iy3 IIVDs~FԄdx͖#oOvr@[Q"Uʏc' !#V a(h5c_*bGP#YX\u}4gt;sm1ױIsCX>9`_ 472(~s]*y•S.E0G$~֧Gt/رr z?B9WjWNIv8o6JWҋMDT\@IVof:+{,L&GCO-aaFdTXTT< h1@OKٍ^t-'xSSZz,es5ӈɆҀ1A}|#hej}."sI)t,ZLh5dz0h8zuC#Mhq&"~*Z y!ƒ)\8ʹVUĈI$Va]#PۂY*,i`m 6^XٟhG;Ӟ}-Lx3 :_fg@@]oer 4ԝfh4ƺh2cVҿ!:"R2j([;L1\ $%mZTrjm[ ϊTG)/͹/*tG1K \ 8Ф~D`$XJ]؜dzZ"إ]Nj6^a Q {,hz;res3 oB߅4dC?YsvE k"crA@m۽ 4vIV{"˙ʣ '\A]>ynP;vEGǘtKerIKV@#:t*•uQ?&s R"%VFBIGI^,.zGb6L;yf 4(!&CƒX>#ar$ۮO'AxSȇ!!8|}sփ],۾sh0տM}q=3IVA&&Q(qD3f~GirY%BYyajNݧP!Tou ^#4m cPXY8SKw⢧S$MIÌ 0:U5FMmjDuYP]zApK:k -?]"49_bb~>LFNq#E].V@0#6khm[_6@h%GFV'd`'I[jo9$XPı5C)7I#OBJV Nw݈3 4fDOy>(ƁQl^i1f_S{=vvg:88%؋_I J΍Bz6d߄ 8<ONeDqN)ڷB|ʰNv_PRA\0|q\XC[+;cD\]=j꾴gϚFx*C/Lk>?ufKl+חlhX߆4{] _bEXX$oxW} ܃gX C5 a<'sTיM:$"3G3d l}fML oo]sM/%/-Ȉ39C׍]F RK/C{BK +RaEMZՠa#OɄ(oޤH5ؖV)ABb+<5mXIF9'.ww fӂ` %3}ݦc[\CvǗ0]f̱8_!vOqH!kT#S.7NuJYu'_ˢ[dnUxiRO|ԝ:L:Tiev/B0SRh o3'+"X ڦĤqYPP', yeӫ+|VyvY$qR r8ńO~k*цK)q7i#/:y?a/,ECfI@3YiWk4,l/la=B/G!':bPN8x$KEzR:%ĕ82[#ـt dr)yk36Cl-~~CFXe> 9}tK_`55ɝX[#(j}“fq%cj4Zu|E7B(eUy%v}&7CT bs>?9ס=nL\S ˗[Yp1/&r2of\6ڌk3rD!e*r\qanF,[vQ-:quZʭq PeE2=&Q!˙ zT䤌j`obD=XB0mϙDūc8}#umK2>h8l ױ^BmٿFҌ0WQ6u|q8gzj:ɪW֓aPl+@4/QTwHlb梄"?( 5^;~sw/I}|i?E0PNC4ijh+CQ{<)b~6O|}?@@wp:l5r6cPZv^ 1j6-x5_"/?*ރVӶ~7":vת1$H͠!/%rA 5La;^ ڧݴaf;I,,!]6!V&92- $}'O+ѐ9JwgP^iDAW"꯻:=m-"=KJ\ -a:#s-hHmnd/Mm6A0\ڜ&(?[=Z/YSka,Mҫ-\QYYW$pll!d|Q/-0)gG8odc>ƆT#v4X+;CoO/$,[\ x$y,3kM̦#-IMQIH|a|:aiY B:K~S7m.L/t0lIiG]Wk=jg8xQ v' #/Ѭ w/ \,oM Zzh3A١(G66K(B[.?Y:v55zaŚ.}t%"\\J%<M9#mf)zj>02ª&_ dfI|y}䜀_fAfc聥86g$.!<} "@6h ]Փv0OMG1 -ZlKlue_]oŊ>eL>F}VZ 4G:)w?k9y/ U}+:)[G^P. #ڼ#N8Z? br`hvEMt U5 s9՟e!81FN3,/D0f캙$TԎu9y'`& Yi?ёqcQ.Jf/\ZWQJi WwfL PvQ~],`FP,ę7u1/_XR ^wHlPM%)Fa/,uFȷ%t+<;mTwRa UIԭt1oC@w,)>b?emCS:퐛1+.ٖµU2/0Zs5RL ceOT5W0--U!&U F"(p p-[H2_Vm% :]d8ôJjiha{^l/*kuq* b6R:M9 HlC._}A)]fSD3s P/+/d\TkNMnXKȧnB_r yL 1~Ք~4֍uqS/#eH.^S5ܖZAO9N"{k$iTj&:?:U>wlM:e5~GR7Y¯Ye1^!s;_cHـ+J"E2!=?RD;eO*^.*8wtyuuWxG0:ɦy%B!~bFh qiSD)cfB[lɠO?-/㎬xL7rHAz~A0[U4Iw5/)'+s|8.7,%8_Ss!&i7Ihַ!iƠ7r 7 S>猈5Zh>(>z t* s] ~(TOhӕ)Wj-?v Մҏ?4۶j+VO0S[g| q9qt3YZfPƮD&\[vx2/wRy+Z )6HWmnK@۵C= j|Y,4:m>kc~g~ @ܝVnark?^|+#_w8bs)2?..mCCܕѴޅזЫZJʞ1cA4<_ 'TM/wTiu Տd%eHyrBԚxj :3@VE0rffCM({uEB>d0p2Phʡ'yϳhb/gج?AH;ECҔT:#섗ݳ:9G .<2UUOƬg8T~jg K]d%elY?<-0jӕܥ"6EEm Se!kU%)Lb!Bh/ץue``z(qvj9sp"τkFq!6OZHp&o*_N(%@\*LKN|yAMAv%il5!M}FȫBRۚGH Sb;Xł 3XjBQY[X\ۏˠ##71nwNvꙛq[/ sYb`9f(ET@:?j%ʽ7ۼnُ"\'7K/8~T_@"Xp'y:-3hʺ#<~r*d9.je= mF790y^w&pG|.[DCxԫUN~᜽q&¡K:)xJ8@:P& 2q>bB I~P}o4:x czÜriMeӋRje?o(HW( W땲Whpt69ogi|wڙX {3)ED*%Ј|g̏.:AVZ",4K +6ݖ=Y,h**#F^uD[^4>u/6(^Q_cŸП)(`yt%hҮ '9u bqrI/*M9)hauz94[ZdQ!tx`uծ贎>'ч' {@z1QPIm@;Nm̄ۋӊ;enV"1ALѐ~ʏ̎V7}(&bZKr!$kUN&N-<.&H"h$M.~?Ymrn9Jf6)"_DDLc8Fq5%BBy&'8҉l|}VG|~\` 1%vZ 07ف5`՝ 6aHt\yc(:dTذt:7ۗV0%uђQjldt7L%#mFNRsQ춲fT?dԦ嗂` ][n"HW8Wr^\EB%Ÿ*8#h_=.$OVs dr%~&k8Eق@_i GC^ȝZrȜIw8?)*IRI>T$#XɽrjʻPrKz N@%TugF=WG0HLW`GI`=z|x߈1.K`혹Oc9ܩTNj*vbZ"\*8zw4Q#-tz]z逶K%-ʁ{P[a.u|T0EP+2ϊ4n]TGi)ft/vOdlnu֋'M{q`^cJ U $?\7P #o*QXHK=JkZH^m)'4n қq8%"* %#Pm3`&J]٪u@̟[m|\|vv}ўs%QW]:IA&,YB")K8x1:E[wD[qXLʞ/H>/#H7&88CWjazbRu9__ 抰;K̃c|̖Jcm6ik 3 DeD0PH5v!)6=H&imrVmtBbyf$@vw8d9#271׬%6J!Ei͟h69EZsWۙlil]mX=n?3﬎V_X Fuq? XWY+{MR DST K|iXjl.&s4Y)ځew"l`N>R3b|ͮI7n >H{Qz { Iw*2= #w $o)84/'wWF 8-&^=Ih8D|ӆBcQWǹt/֡n744B~$OF@ĕ|.,SRϘ|\i:m-A2U yn5B<ЍyJ;7"aA#̿w3n2rJ_:*G"rO6|X BЀzpDnsYn:Cq8 ظ#!Tu%젶K+}⻻`)t+5ܵY~;PH ;{zBkms.A}'oېf!J[8e"\2kxp]s$H_%qio[29(e8sNT+)-\ج0zAܔN#Dɖ$ L~'Gi! =@AZ c7f`2ĤHLjp\@ʪ  |[Ӏ,FMFȭrhuKaE񮛛p$],ڦ wCfsC;*O.jl<|܅9_F;Z}=)`=bPw |1`z9F$KGbͲkMB6(0vI6YGNhֈ@M5c:tOMN> j?qGִC`no75<[>21^XZH7ԇid)IimNw3D10GN*uPt..}8r<=rMLxZ/o}"-n,FY-b;"O-qUĊ _x \QR Gv }{rV 12N|$O(HJHTX.dhHzwS/ۢD]+yy0Ԏ'JVyVmB&m)AM!o$) x݀sux<><,/pLā sZGpStd#MeBRŕv]?q3pșJ/_پDE>7]md%fH7?<7 }ZLC/l}C5'-qo{} =zɷ3?5 &Ͷ^lz+7v9g>a-ޤ6+a5geńƒ#A9[c$vt .۱dռ-lHj)Ns;vC9YqK +=<hL#{Gkh`vl4+A1qY>F&Kʸ;ܲe.2yⴼuEnn f8LXP${IN$& ] }f-#Zk^7Oșj1lMDmZ*쀷g( fIģn%!B\y1LRG5Wri/ NH˒KZh0?|b:|ebOH] ZfĴ=Bc1+Wf ڗ^*DT7N_wX̨Q|B {#13}gq]K;<;#$ن0J>;LFVThR?d]+,:Ϗ@ſcV+XޱA|I^igK,] NgIcu~זK0~eOX{ͧtoބqxP7ۿfb~ 2he[d,äV#_0^q$߁ԕ~𬠧aI' #W?:!l+5#)Ƽa?\;'}ϝPmE'@oE]\^ПnAٖx, GT_(<7yJܴ[`Rزud$2QwOq/5z$USMM%;]F xupێ9s̶c-\糭vخU+p2WpUWQ+>Xmp{MXHg[IrF H{QޛzJiW\U%& S?0iqbd#T`G-g}\\#(Ez1Px,R0K>KIA6Qh͝k󅿮^vUO窫nW cB )L [uf} > E.U[2 'C'U: `}jbo|3|'8nl=^bhvL#̡>زZds| .Xry3N/AM1IZ=(Q( D#>>꿌 \mdtd|joZqbr\4Xs i (<ݵ$kKeHJb܈],S30B &̙n,pLs9ߥZʦ*Jl\T&{K H G3ԹӘcvk0W,kU,.&bXoRCK* ) ZO  Qmy#ĻD$_58zTG\%%<7[X3b';XSx듇w'Es rz˲"CXZR봺*lA@wf$ϢXo\m ~eܕ,LGW=J Ѥ  xR=A-2OӸsCGr@v3=@ڱic`?콴8DL6f=/bt%q$@_Rb1fWDL-Fp3yJփ5ߛĿ bev4J0jyJ^=PNS6WJ4#tn!mL^NFP>h9N%!]Wey8xHdɼl)*-2 scyȤsEYXͺm $(oNCzuGx= HF8Xٴ@bI]lXW"=DmhKЧCi9Lپ6N{`3$+o}&"G^*F87?$Mof)szn#.F$,쳑QwFN׾ bV}7[}u GH`(a#swJreCM̶o(?%YQa L)yaE6Tz0܌,UǕhG`k gmV+X'*keU=s1yg%Ԁ¹UJdc568% ܽvnY5Ӑ Ρ TQni>ϤMbY8KC,.TZ$zc٫cl1? osشnZ*[l/*~ɕ9˫ZKc,F)L[S]hWm"<248k-Iu&}qUߋe3~$\G2 s5|KFGd|Ҹ4+F QM\t$9F:7*} .ӧ\P]CK3Pm%WƘSgcR<]n^13 Dȸ5o2Uo_%rtl[6J_>6>+5o2[Mюfƣw2`Z ܮݕ?3'S ݳ`)БXDt~3-I:Tjst ?Uv ]k"+4}-$`*CG4(-E}ds):v:)=1xӶQn&+FP\E nzn50sS.A -GRnebeP~7i N3_bE5fBNl~ɫ!B mT g3Lz>@}^⪤5DdʲRɆSK.M.;j+ccX;桊 KB j{xX:חl#ԕ.]rfC *sk ᪆幰'6ou9:Zm-[-HT^>% V5Zwzi+f&+*u=5Ҁ 9,pӬ)jM0\(^C)7I1=A@R>ÛxbjtyPdYЁG|nڽ(%Ǘ<[WCz5CO'rK̻#JC!Y62דexJ\L*T.NmɕjCAivkf3 PA`%i$dg0t}+'=lj,-j*J#X`GubЧ{9M9,L5wcYѧTTc0rr)~w)0Jp+hca^:4]ygIF0bǔ#'1xXОBhp(6-V@%a4ז A*볋Nov[*'Y>Cd2'Mmو %{maKĪH){#qIEҚ ^ Dݼ?BzG*7 t;I,S3c< Ec^yw3Hz{M5ڋ<Bƫ)~QMCWd&0O _;PXE :n}1=̑_{P0Xy'm)ԇ!m?x}qpe)㠟s"3fuلT}ai]yѕ0M-bӬwhh~L, fֈGʂ 8\$ޏT?\22Qig^17^A