python311-doc-devhelp-3.11.9-150400.9.26.1<>, df3p9|U) 7p -@P|SP L39ȅVZu8ZwP|d,tB'v̻pfj:m1quU&cǽ?t-:ߖm)Y[#_!r?A՛r+'f_5a ^Yv_롲5.;:\?:Ld - m8<HLe K K K 0K \K gK KKWKK0dt(89ݸ:FGKHKIKXLYT\K]K^'b+Oc+d,e,f,l,u,Kv5z99:::HCpython311-doc-devhelp3.11.9150400.9.26.1Additional Package Documentation for Python 3 in devhelp formatTutorial, Global Module Index, Language Reference, Library Reference, Extending and Embedding Reference, Python/C API Reference, Documenting Python, and Macintosh Module Reference in format for devhelp.f3h03-ch2cE[SUSE Linux Enterprise 15SUSE LLC Python-2.0https://www.suse.com/Unspecifiedhttps://www.python.org/linuxx86_64C+>U:I9.}6 4%gFc]*fTZ8Z)A] DLJ&b8//,I<'59RRw>Vl:LgkO0D{@`OyUf6890+Rcj aB<~j{U_ KS^).DLD-kb9l 1Nx9')A2LL O- 1225FBrjWcu)#&iL2]HSH90P35 N8Q#,C:HOzDDQ[! T-]}?Dߡ0% {F;N/#.6( 8wV6$y#nvg )6(Y;Ë$ik+^,u\^Vem}@if12oaYH'eC<ivpKn/3pp5kA4Yks@,qԏ1Yn1nk0J;MO?F'm)*r\lm94}g8U|V$23ukG[<z.2 ;?^M 'r3BDˏ*mq2<?oFqj{lK#QX?q%0"R<qh ;HF!DdZAbWmmB5y3`i=)X~P{]1Ic7=8Qdڼ ?wT rva5l9_c7Q\$; ~h1:ULn1Ιo$JE!><†3::=h_^pŷ.M?,zANW@}:`5y||)Cy[WkCTsqOw+&'EwoДNvA0w@t1ZQC-xl;e II~3 t&_Tv$/UuvyM\Q3v#hOUT9C)p {(HNRu+OnOy"c=x %AAA큤AA큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f39656e22de87d5f19c12192415746376f8e3f1550c557e944a8ac247a2ed9f0c2d488b23208c21fe601bd6b2d4ba6c44d334bb075babbf7f0f751318903b6c5d4382828d64e88644e47e695d717ea8432ec1ef79a17f2d209b11aef4fdbfa4bf570d752f336a9ee7af4a56b8e5b3696b962b69793b274f76439165823c69cf5e04bd5db0b21f178fd8b16f7d999d0da20a00ca8d271cd556cfb1d26dea91aac88b21a9ea9ad785299a282cccc4b9a93cf9b1f028f65b0e90c0c41deea019953beb5528a56a8b0f2e5da3d6f20f47057cc0325273ff152816c202f8a114cd07138ba9abf87cadffa7027ca298ba11ceb6418f3a9abb32ac988c8d342e7c2b3fb2e277bdba99ffd0fc3356293aff094e234837aaf9fa301c6498c50bd7a525646ce97e48f22946a092e28d4306491653c06183fa76151614d10b8fb7b51dbcca7ad4763d9d7b2bd7a02af9f67cd759f61d68c7b7dba839e676b368b07bea632198b583d4a896c950c9633854df40de1d2805f768279e280b4d14dadeb4a90c80fd0f1af795443875f7184331d307aa28dba3fed73126d1d27baceedcf376de52a30f3d74d09f9a0d5c08e9ef211afed3397ace994a39748325ae53bea62124348b15a001934886bdedcbabf89f6a81e8253c0c1bb47ac18e9c7b859f0fcb1d92406f9d03fa1e02720b65ad7859212f2b1fdabcc6037f4d52f21dc92ac982580d7735c4bc9a16aebf38c4b950f59b8e501ca36495328cb9eb622218bce9064a35e3e89be12e44677affebb194222edf1f9198c334fc201b890ce88083c7e241d9b63416a3b2c3bf16d64f6b5b6d0f7b079df2267614dd6847fc2f3271b4409233c37f7f6a5894f1d19ddad6fa392b2ece2c5e578cbf7da4ea805b6885eb6985b6e3d004ad6ad7e772d6f3c61c65a7fb255e2b36d8bf583044c08ab97e7e5e6b8442dd0fbeb27b75fd2c9163de2f25926bdd72f8cda9e2ed8a97c3002675f0847c9d647e7fc50db3699f1ca41ce9a2ffa202c00c5d1d5180c55f62ba859b1bd6cc008aacc80a7392c51d971a98ef3dae6c908d9a14229615c83a5db97521dc4102c1ef7a993938fae1bcc10656cd09f11f19d973e03fa4f081d1ee806984f46d87c7c54115199b96a130cba02147c47c0deb43dcc9b9f08b5162bba8642b34980ac63ae173dc4842351fc1c8a551afbdb58cb2b295490782130daa4f359a6a80d72565865be8bcc0af888594903ea0112f6c8d923c5726c4081e8c856110cc7339cef0e2d097ec6582b8a0e035a7630ad3052bbb189f3abec9cb29822cd92d9ed86ab7029cabd6297c2a33d33024ab77167f9d7b2dafd5445ee24ca6e13a366426d46c7278fef0b7d6748faf50278bba7f6d78a85a9bce97f75700c9e434209491709d23c599fc95a194340402cec351ecc78b946ea27cff1da0ecc2b1f8b1a648b1dcc10f799cd0f6b65f95c4012445497e5ba3cb9f51964a9468940b27bde98b487218fb1c1fc72e9af6b866f430be2a67fa376392b4db2f4dbf32772671b6ae55c5b9f02c8683037a0fe5509c43421120a1bae3a3212262e04371d9f34e640276410fcd02653321fb121dcd5e5412b71b085a31b5062830273a8fce879ae5a1fd64ca33d69cfff99aebec95eb01541795a3d1fc544743b71bb988dab24fdcd0ad7da3ae4ee3faed6f83e3f2a29036493ed1341eb655554155b67fbf3a4a307c6f17e5190109890b8400564cbcd8834b055597927a720989689fb4bbb89d3cdc6ef4f08296b766de360cdbf090cfd1553c37b4149b0be0eaaf8af856237d176ef4ea5cbd118b80a46e5fa3254863cbe40503140469d7a1137108146d0003a5b70d512373d74a097b82f2d534f9777f03a470bfe25196b0a82e8b2bb3a118c438083ada87e84b04cd509d9dc837292b57f1560bd5607e90b330fe2095d9888d22bdc329e2af350ebe70f884c6a589ed05bba2c8d408f89e5ffbf29ed09f2e3e6670468555295b0f3b279d311b26dba837ef67aaed4aae3fe6b9cb6cc70226ef8c739176e2a6349a8da48d8b6213da1548db3f35a3ae4af811011c015afb49b80c9c1d0843f0cc8e7ad7fa657e49e383a4ee1319f3b4f2efcfb60a579675ed944e9655108e73dc8cbddf6d79487e95b24a77f4c72fa96944fb2127d3904418277a6aebcc84bf8f626a41dd4eba6f8fcc434e545fbfb224e57ca5bb616a89368dee57eecc9109b5593b224c6f543dd52819f00835402c364e3b16ac0812a769f861f6d4b5112ada1ba1a5cd4c03626f7eaf5467c97408208c718413f8c7f3914dcf0e80c253df7c37edd75a8557d35387a394302d5173fef3c762ef59002b30d3dd2a8d03b233b5441e976cc14ab3070c0a598541ea7c6d3c268bfad277d018dfcf1e7c898fe21799cd3a2d4b0e50254ea4655bc7cd26bc16f8d8eb04120e6015a7de78c82895bd7c2ba7a40897f00878ac324db1a701bc341ea785a62824c8268be7b85c8ec5be1b9001e4c5f244f6af0d221e784bee21706259e9eb0d78562559bddf4c478facefa6bd271272077f6f7fc0c11ef6321b4df1f960a305839598556c16d53ced5aa193bc82d051f32b02296568235459407c6b6688466455c519ad1890d93d150290e053a6354795cf037581e9319be1316c3d3eb13cac32360ff5a543239c2d6b4a77bc7f86307c258792ce1491f424d3601ff48c2aa1ebb19096209100fa45395a31b3e55973267e6c09638315708d8c2b7d59fa7cbf6e35b4dad6e04a282a22df5e0574d0dff34b32e43ba09ec13131439d5b85a1130f1a176221c3a74d9c2a691f2c6b9f6e1444fdfc8c70af842bf6d83171b41bb0986ea048cdb65c734fcd30773b38e9497cb7f261ed15c7a745ffd36d68a4bdf06cc3c21e6ded77de42ce0ac4d7a52fccc89e52a85ab4a086d0b5b997ceda4538568bbaa901b69b39a6e1833a06530c4cee26a58ec71d0fbbb0a3623cb89ab842b878fb7ee1bc7a771ab0ccd0348f7c80de0c03fc1951e6c05e29760ac4f7d25b2e83137930aaf7db3b1ff9d0b6d3331f1b47fe94cda4b033ba708253eb44d7d9f43175646d465ae3266b0ab00d58534769642375dae816cb293ed84ef5d0d20675011b6e684e5b8edbc2c6ea71221d62e00dd6fd02e17e627e9f2f07cbab62c70e0982b74994a82dda210bbf3f63973c599754e5787d7065f24e213d571e6841645db5351d85c8c093acb39b946583fe49631089bf7d4664968088906f17c4d0c67eea9fe5eeb549dbc1c0e4cf6db990f43751c1f94d6a97a72619e66b5044ee093bcfeea33d3124acc6b8d9f53034b846870152aa9dc9fca76302d5479015259bb259f15de60d191bead0f4b27b35b2ed03400b567aefb4151d9c0a4cdbfe147156a455478ef055c13e729cd7d9f4f3dcad952d3ece8e7401b8c6e28315565dade028889f33dabb83ce6268c807c6e5d8ade81f18f889c72d06c5f6ef4fb28163f8e11a7144bf6f91cbfda2aa1d122d64f166f6781fb8c9a4952c79fb6aac6ab72f101d7dffb9754117d0fa8ee32d525982bd0f654e72b829ad61b413af26e3c0235e600cae2efefec2253da6548de328699ce8574739654c0b8ea5ae292a64cdaa1407e04cde6cb440dac24762e6dc93a2768d2609829f3b9970e4f74c4e13a7a9bd23c678ad6a67b292e86b7a1c46970eca919a9898c714acfdc5b40d2cb323a78a89cb1e1db0983b2e51e8485a208938952d35975ef0508a8d7d7625694d46feff4cba0de85ffc666ff2d63f759a90b9b213fac2366b8e6b0041c4c53a78b3481ad4fd39876a9871805d063e7b2a149a3797026dcb1e3a0f08ab72a51647967c844319de1d6ad1dbbfb4cd3c6acb4cebfe3e18da74e16e9110ea5371781a862f759a177d92bffea5b3bc8576942f3f4418a121454327507614f56453ae2df442e9ad849f5a76ae453e87f2450758b8633ef1c18b738bd63d365bbe2fbe813a551d6a4039b4c72eb34252a59d9a0357676611461dfdce08863ac02339e35820c268a8e94026f9467cd2e74d52b0c414eda34c51d33c8a8695c4a65d1da900c7814779a2a0e09c680394d876c13cd1842d840a8dddc5f54b84f9e925ec6f60bfa3766e3dd8ac36adc0e5dc5ae4dd35fb127db9d43b14057ed33ff43b8505d28b2867d5fb9c21c5c0fcb3ec349c05a22022eab89d43f893d4174eafbb46c6d42b1349631090b6d01080bc5eb3aba5cb0b34ecae52ea2858de77f311586e0abbbbb4d8833b2131435061e1259848ffec08ec9ff31cf5c2828ec5a324b562e0e3b1a4f8028f30f4ccb52e69d583aef35972660b4099e6251f8daabcb5ede0bfc5695cadff98f4af3ea27a73bbe65c0c7089c2387ab351f53b22af6cf4569e62cda30b149cfcfd1e05d2b87ea7f843d0e561b9bd2864b86b5113f41a03a30f94d2d4ed950e539bea3279fa4445f5308ab76b36b8f6003fe597ab19c3e930dce3dc86a63d26ea1bb84962a359c3f023c387de9b4e4a6b392c0d5cfe4a8e147793d7f756e52fc0bf5e5a5bc53f6e2fe46e34ae43b1b2805a61dd39cbf6fb6ec1baf8b1831f6c793f86858236eb001c63f0216cb98cfba0b66307c900bc7ceec1f796d6fcdc73b0d6a0dbe4d4be4a43a0c37e36feb98bd5828b506ca4b897ecb06927e56d67e136156b6b526b201e1799400b920623216df078d2c08a955722f7862a1275c180f03f85f67ade064b417b84ac6b57064fa3dde8961f0f085a7a0d0136633dabebdae6dd25fd7c109c7543be0f5e5488888898e3b2588bd53e79c7c36ff3b71cbf38db3d3c8199cf774c2c7ec0a3267ce778e47009e54943d8395173832a9f0f901f17481140170ccb9e0a4c00a5b14e17b50c9574697e507bbb1951848cb91eaeccc89441f2fafb7bef0d139b770ddf539f80609e50790150acc34b8a1315d5fc2b3ea4d9800f1d0e2417a7b33cb0db6a0393199b5ec22bb47990d1972255a6abe4abfadc0c2a4f9a12ed80354749f48ce52f301372c7949cf8b892729f9ddd1062482c86e4f02adc5a9a76e42321bf7c688c8d2a107c9f82c0a893f4b071a204d0151a76364a7eda853059942ab597098193ae83fde752944e5b0dc62ffaddefaafc3f959461f01d845176742f26a7fb20b6c92c7daa249ab35c5aeb0ad33f76109993a94e06ff0465a6370d139ee48735571d538adc619f9abf47ecd95e89b0154b157be3cb8acf717ae1c55de5512390caffd589532a18913f92e29433ba6b4d40e1818ef896d4a8a330865740fb8e6c5046f2ef3a4fca44254284deae39def3756be396b65d11fba2bdf7b3353455cda285aa879cba716290c21bf0bc74d06da89ba3269ca12ddfe9206d2824387eb455c0e2f32017fb56605c4f896806c9620e763b4b6e073ad9e53f990f0f9ee219fd7f9b2bca371a740177d6b129ed7843df0266023902883f31cd328e18ff4f9e461790c18d2efbd1588120ed296dfe31e918e51b13cb7d8951acceaa22ff6bd6f86a6d4120f09c32f08e21d04b213be820bc9479550c484a89bcab9b72a98e9ab53e1284228d87374e3176e8e2c1696de1cbbb4f66c33871af433f75e91926d4b92d71534a35e49764e964f668a4bff2c0cd5896729309c9708a7e955196e078cd543a613c4295b0a01c9ba5c2ab685c03338eaf6d0226982d7563d8989f7d181a9c0e2575122e3a783ef1766ca469c4e8aea3d70b1464f64303f375f392cc5078509d03a511df171c2efae6cb0e1552c8bb3dbc35d7e0b9ccb521dbc7e1ee264be3be91cd693a55f069dff908e8476cee104ddc33ecc61fd637c4464461d69abb57bbab6b73d7bff2ac223367398c828d151650708c0da830f10d8a4f7b8e9a00173dc167c6e0b4884e53b38285c5fb5ba48c39f5059357f8e5d357ff645a9f4b2f041bb4654373da14b1a14610885e4b0b1a510724f5df7b3d3ff4aa2821fd00713a951b0a19144a6eab83b9af5e422508b31442ff07cdb2c9099555a73b4536ffdbd5cea98f391cd16960a0e7440330f4d1c056a63dae81fc30ba577466f6693242a01d5cc7ff14ac5092258392acb17ff6a3ed27abb106711d349748ae66faf4fd85dc150f57bd410f67967e1ac9921d21018719e56be8924155d668123b6ac9b1aa6a6f14d5a664667dd25634c7d6985939564879d50e229eeb010eb3bb4314bcfc1049c527cae22addee3756f57ad056d21b2a983c9940364be7d6da0d1ae3f26d725cfa23eb96db69ec8deac2e746f99e4493f8bf81ff8b6a1635e4bae3bf8796b94a35b89e94c43a320654828b74659509c024938c0ee738594908dd3bba7b163794f8eb9f67140f88f0b688840f7907e8dc2c33a740bf590b260125118d618dd0141a62c1e8c1ae509735b6529a83262b03226967b9d2b9b1ae9fa0c1648e3f95882d48f29720404c21df010d9e0c0882160f912d8d28e90542e5ee930f422c718066798cdb2b7572a3e2a19ea834f108763e4b555155a6763fde2578aba6fa4f2330d977affa5efcb3c80b557e92caa33a2c89d81debb199944be6af4ba9d403cd192e25d7f2c8760fef34252c23d54ca0f956ef146dbea0aeba8fd7f43a425953035ffaf6af1e4bb41fcf39a0ee7e898d7972f21f4570a647b4c5b68e6fa9a619487d8cb34ec92e5a815fc866c77d4a1190ea41f5f94b4f4deefe7a73c8dcd035d915742f3f029452511e6fc563af6f8d3f8d16ad10381b32ce775992ec13e91b3bb58add8b35b402070ce826a263d362b7bb9a3b8d34fcd2a322e4151292c1fc526b513938dc2b831a449a9ca854e45a3a8e303588393e376a67c8335ad2772a00c1c9322d766ee26fa0eeb48122000e4e92b751c857acc00fd576f61387396da770fb1fd4a895a7bd5fd3cb0f9e92afc6bf4aef8d1a66d50a4fdb5bb10ddcdb2eff7889866d2adfc7d00fc1c74edf9fc9d81b8e6d79ba1520052219f992ca14f90aa22e21caf024c0d3e1514de825b51e1309212fc32af3ece6f9136d71a2cf2f183ae5e03fae99bd266a3688b6114e852945d41dae2fada4cb94885438b6760dd88336998221b6d7dae5edc54c1eb2121158b752c7901f84c716aa84a1240958eede6cafb28dfe25c97455c5c86b36d32c258f54c57f098ec500a0df0d51f377886ffbe4daa84b35586de6749d61c6901ba2acfdc1e08ec9289d34e69558851a68ba3e2d687e280c32fed4fb6992874573819eaae9f0ca51dfac3dcf6499e0f3a326e72219f13a7705ce82e730345ba94baaabf0b0dd12bd1089acacbd4fefacf249c421af452b1aad84eaa9f013b0b535134deb3530808f29c43b7076c415840ed71212ccddb077484ea18e89f36645af36b3d98b22669c003274337708bd46f7bb35107b8d574efb0ba161b1110a3a1e5e631c12e6a9190f9aba67ebd7cc049c77b4b102de8975e7e781f11f927be326e5429bbbf49d6cf45278da8dcfff6d662cf22359febdd245340c5d51739c87f2dd0f0fad31846a4eb513a12838926e954df81116985be6d6f039000daec951527258fdaeb5d20b29b84c8d9ccebac5deac8b18db488d58ce73bf8343ea8328a68eaf062d7e84b0937a8bb96dd6997f05cfa3190d2c4c0adf0fff37df1033625cf3bf7ecad05139ca7037d8ae1330cb2c24496330c576af0708023fd0b1e9237f2b14c09ad83e08a02706c7e1b1e5ea0aaed1d9daab58e607af70595f6c8f03c982faab1612298795b80a14502786a16ef676a32013fc1b17bc7b4d9ef96a2973d077395fe250ac8de6609656a18729f9106d56c685ef20277227f088f160b67b7341a72445c71834a25188537fcf1874f264b4f959d0ffcdf3006fd01b5dffd3f979c068441f082be9dc5ff525166c0f9e688d08192985d2ceddb99f90891a9bcbf328683060716e6fd786dfbd237521baf5815d7851bfc04158a1553d23e1e8ac03b03a0100d74e163bdf2dea38a68f7feaf299dea66410687298b50b8b779706010f02822730958227bf06393d87e3783dfecebcd363133e1e29e938114b53f11411b8ba0bad32ed09f8b718022a14b77a3d14ea8e2d8ffd74c4ba725cf46e724c92d8d7869e80a9d975879e62a6c5ac8ba94890db75a1de9c15d2e8588e1ac1f545e55aad6baa9fa18bf2179f92e2aef81e44601d9b670fd8aa189b24aed62e6de5de31e0a89aace0fadb119ddd4cc3a4873048f546d6d592978e450caef6ad28a1de6cc5023f7af1ea7e3459626c12560ec59ecaedf175fdb431e31a666a73d7a4f467ff6c0979c4a81662752c1653fd135bc3461a14195aaf31999bf043718188e8edd86c55d4ae2be85f058d5cd195312c78c4f11ea9cb435c49016da1c39e3dd86c9d4425155fa97057801bf26662ad2cc16257d9fdd4c82e8b11aff7f36ef93a85765f3f4770ee58f3ba5ce37a7673d60cf6df2ff7181c408616a6fad9f39d3d0304fbe459a40309530c2171df557dbee49c6e8305f8d027b269300fc620704bb4a8d872a331f7a696970dce9852b622493bd7c45f8739ee0c38f74eec15300195ccec9388fb3549b66fd64e8d8b17855f664d1518287b146a1a6813f00a80b9d605f8b5dd912521e41a016ce37f1d3384c6a0fbc6b2a435144244b743f1408de0b57a57c0072c4bffb030c13057e2600b3aef1bc58ca04592da0fdd4dee2ab3c8bc82df325efab3736fa2fd73d713ef773aea9c722dcd1d493684b0d3ff331bde5cf2ccf3e24539fb9e5fcc46aefead912435edbe1e2c001b8955ba74ce51827c1df8ae32b2bce7e99eb23760ffbe8f51f0db01d20fd219e0e61225967201884288c22d1ff82b3debb1463798874f2905acb90374246b8fb361065d171d5475998781c7d97333ef9d0733ba747a228843705c0d528abd628eb0a37214fd8d4e37cf08f47aaf443452b12bd4c57593e6f1a0a07c1391b7403b3d9d1528b565d5cad8dbdfc950554ffdfc40f646f1c03661406184190a10736a1e24e782d7deb4c5ff33e55143f04f41b68725cfc5e9ad14b83d2840994bd6055b23bbc5a464c0cfc1d0ad650f6b21967e270aa7f6dc2e8c53b79bd54d2f4995cd3b04cacb52120535cd3509cc518893a3de82a56ffeac58a2ab386a45dc9f6bbbdd16613fc1a3dcb8f1cfea9cd9ebae525a8ec8b547fff8550b9fda649021431516d046a002a00b092ee7632df0d85f4f11ee2af0ed32999f997e50f7512bc95a4bbff99e2dc0240fe47d61a4289d2e06e02dbb7f2d77570641eaca5bed4768d7378221c47dd761f2df2db728aed949eedc2649068ad966417560133d8fbb6d30ce2a03fc39fe24b15e276494dd265c83712eee1b6af4b4b32abfedaf7bb93db70c022725d475487148a67adfd530623590cafdbc10a2867023c4dd0983c37905eddd8a84600f514bb8c851f8b832454ac5e6a380e44f9f70f8a956b95012fb97cf85d0d1c8f389d7a519e0f01d4e0097a89a6da45fbc70f2ec2b141d123aeb4afa0cb9853dbc2d302fdfccba22d5773776d76053b974ffcbf69b043a850165c0f44e7bee1190214807536a5529b12c2dd9861522ccb8c96072a3a8f01ede65e3843f9c973675cc24ae1cbd373b522d39fe5810c8c58f5762d045797e64800c531e935464a57a742db537a0266d0366c342cafb55804ac02bbf0d56873cafd4777738bc51cd482b451b31641d0fd02d49d3609a3b769dd1b89eb7aefaa2231dfb5f9c884136eaa47d27077b01abe05ca7e17919a44a6fbe7e9834d935e74a8e598f8bd722657548acb11cffc61cf2559e38315f8455652b7f69849aef4ba15f37aa76c7bdc3c567c138185547694aa20cd382143763090fa4b6f7206064e93d8efd1300c253fd2075e7afddff6f15ce798bb480702ab96143ed281d67a3bf9d94bbc3b9e841aeb81b6ec41cc1046b0169d5aa6d89388a68d4d0385a4f99a034f08c101a38867596320fae4bffc24c19e924b102d1aecbbe49f6d75b9425b721ef5917725eef22d50565e7eacca6ebc42841ca5ef38268457944b3d41baad3a19a8c54f6397d6c00f174162ad61394bef8e03ea2a89455d4edf5d376ee8e9effef276c6b960a09fd49628c50be5ffcf07698898e93cd0cccfc3eb8c771a6cff1a92c44cc83b91ed6df4db1439647c60a6a2a5f9817d21d38e7fceb547f03c24d77690264efba56aa7376775ad62687d1fb4db6ceabaad9fc856a3ddf14c996f43d65479b4fadbaf6de0bdf8251bcaa9eedd241627e2147403dcfd659b99e9473317a76f86e7d7a8aace46b08c01a0d05b0f5f7e365eb453efec5bf21eb7ba7fd33bedfcaa7fd431e9a6a2124435ce9a5a22580ec78ec7a8b23b43f099e054f1142036e6d61fbc19d8319b79f4cf00d3e72560116868f9c88e956c255a2f660c037d372508554db07f5c1ca3a5a8ef365435a3c67de442affeaef76422070e5154baa1ee3fded73e335b072f2ead3f98db5ad81c167f2dfda72c0d8aac345ccd76dec8441fb6ea253b1aa248036118b1bdfae730f3a7c02c0c41f88798bf11e031368fbbcd244b074d4e5d3a9797ce3ca0003b23786ef7f54fe5606d6f8425392f17f3e967f3cd065292f3a88911b439cf889d614397050fd391bbfe5a99b2c5e7361da368b72ec224102a59f6c13fbf37abd9e925f32bc7660630e943c31f675dfdb37a2c647981bb49510f2cab16d5f0363f844c962908d6029c5f48970b818b03985516cbd1fb57091e37a3e9b77097685f670a66d4bfaf6876b45e7fd5347e1edd863060ec1ccdf91fca32e08bcd27c5d2584cf941efbb8dc4009a1fc3e2b2b37edb4a629612f5ce53cfa352f2167732b7feb50090e1dd2a6e7fa8dc4f94583b961207c0dffbe579153611160154c7b62b444bdafbcc1ea1aa0d136142a1188919c40c38f3ef1b72b241fb5e58c770c684e37b226d1d7b6aed237db25e62e88b14623b9e2e18fe20a0ee8f93a79430e93eb589fbcc0055dc7b29145f3522af5129daef7fe9cf22f0189e106b186f12ca3d1904138e23aa9786e59b3ecbe2950b8f9aceb647212f3ae66d96a74b98eff0873798d1d8a42d7f5911f9aa8893d1c2117945fe4c78b5b350a05e93e6e5475c4bdbfabbece55c05632091f3722f718c8602fd62f788ebee0523667173d6ca40bea24e0e516f013e99142e2bafff7c21f3f2a388c16eedeb98bb7279c365981c5292ef020e23ecb98e689196cc56b9f60bcff5a2e95dfe57504a1bab89d189e6eabbfabe9b2e7ada1ec48653d8aed69661a76c969924b527517a49b0aa4e1dbdac5e5615fc7ddba4076ef5a2aca7c3c8a68ab4ee7047850d25ea6f0e9412433e18a8069e8240bd3413ded5c92d63349cb1ca0d5bb5d1677cafebe65b035e13e4deab0ca09816738208db6067178331336f709f658386d163365af9707b289fed30360e9dfabd1b81e7708d046f4bb4cdd612b585b94a7f1f1c5ac9cc3e55561c9612681f3c85638757c7e76ee08004e81a7d6733aa14e1616560969424e162c1a9127592360d6363d9d330f2c2beb39eeb304af0cf8815b9ec24a737c2c0d3e6cae3d09906554ac083d1f0469602cdef0bf1257fb20636c5a7de312795aacf28d36b932e4a795405bb1e484bb797c5a969d4f0f7b05dc5a7f845555770fc2c42e099c9c6bbb5b2b4b6242b81a28d7e0a0b2f0caa9d52d35493fcaa6ebbc4e6d28f4ddcfb3133ca042a3284fbcc359009870fdba5300e3305f4a71b4be0202a58743a3f9723b19fca33a4ce95712e08434d9d3f3c134ec0f535460671b1c9ed7c4a5101c76b6c3bf1252eb372a257201803468fa52b21d4915013e4d61c167dff99b6fe4898be0621277fa66c51804885f7a53cbf729164244f6c6dca72b257ba67b35bffc0991ee157f188917bf9c7108f3b17768a90fd6936868b6ebd3443e9ee5551e66816cf6a208f7c5af32dc41eaee193f1204cefdd228071412af37276f43fcb78e87ad65aab06350e54bdbe446a0b3ffc0e958b0711870da00416acea8abf7c0acdf92ee2a6b41c762ef64c4425b80869d1ef770d754d01dcfb5bbfa0958c263ea30cd5ff11bd43e1d46a34c05f6f3f92e9cc7a0bb3063e917fa6b35d9e17c1f1109df41d4d2667abc9f40cdc8c783fbdbbca56796c7faa48a6c0880f9b84878a2e039616ae7c4ed12558d7ac523ef711500e9990057594929d6e00775ea685951554188c9abd2cb984f77925d97b12464f757f8a27b72b59d8abec5d0faabc5d4efbe81532f228b220d419043d0fc773fbb06c3d83148c644acd0b575956b12a5ac820a69dfbaa69e649f16c4d35d6c7086b23244a9ecf37d8555783e9c72304161bc24038f715143449c42db73d3b46ec2f7ffc84b39676fd9a9cb63b95ca5e5e9fce5cdc633a82eae6d0fbe3ec9ad5e9baed3eb960064dcdd6a5d5df639ce8d8ad04b0a1ce2bbf3dd7dd18069f1fa56eb871ce7e01b0fc996d1cba7b52845c4b400475dcca811057fa20ece74152668811a1dcf224b59e2c01aec8d899db1f9fbe830def8722fe82babf1a5593ae915974fd67ad7eee95bb2acd5b07000f15d3927ab1664d279937b8280078373b268d8c5e589a469f0b7b8d68bff4f35dc4862245af87870414e35a5da5cdcdc700dec4031f19b86f64b0d5828fe5f8eb9ba1b8fe3b22f357e73250e872c2d485a53f1e4f9db95e1a864349e9ad689f8a573a0b13b01556ab64787c6b67e645ec40ba490528f1830fc016869793ba30a180dd2bde414d011bed356dad6d42317460f48c70f1acb603338122d28bf269111c733dc73562d5acaba9c404495c7e65e8459a3f328012b789051f260b06a3912d87145f0358202ebaf74668780a8690ff7759e1d3bd062197efa6127f44e578d8ddb43f5a5cf3088b543c075d6c7c74b9effe93e5eb6107ab0d165faf81325951aea9183b7c58b2f45cbd14c9d5b8237cc9809857c0d0e2420ca7d86313f338ac94e4cfb0b95e91c9c7fdfa9b913fd2868e03b86be15f5fb936f6e90bcb1ab3ba59d742d3f947b29b5bc4f810deec3b95fcd011a7bec8b9a69ef4d61d958c01a046b1ba603f1da8ddde7ec2e9cf621fdd51b82add439739a7f0241d5b157a7e514ff672d7ff7230be38d97c79da6aec78940ae3fde5c2fb57a516b93c2d7efee5a76befd85cfe6c2e8e498b873cc916acae60b46bb6c443082396fb69e60e783c4ee7ce07c9724475611bfd2227ffaa8cc4d6802d36cdd2e680fc0c84bf01c318bf3f982acab0bc388ed2c7b96212633e7ec0f4a70e8a091b9e52b075761248f4198e72372cce4e58a804b50e018c5053e041b4c8a3c2cfcf5509777730a2c844ed9816850abc54b90ed64e9fd3c66bba2ce042dcefe2ff7bca80bf113c6631df31abf101320f0d8802c47752b36b3ccf2a0d48b413d14d3e33697280b65192e0e80e0caf74ae881d4baadb749204720a0c07fe15be2dbd0809e1655eb2d15ab2dab8b45e091b66488bd9657428655dafa77aed5cc6af08c79885c137a55717f332ad8b6b38eb132a88f90d9c34eb58cfe37225240e1cc8d9b29d08d21b2cc60e49155107152ac10ff66b177b582eb7dc6a85e52595b4f7efab4200286b6f1cea2cc6ea95b9388b37c32c19d7473dc361847c395bd91b33c1fa810b62b0660ca4cb61060ddeee383f91cc32fdc2da7f5733f3da0d8e509f9879884373b7f0597d8ea7cd0aa6b76cd385df55e2b27379a2a06748c20dde54b5ed88ab4932eb20703880e5a458f79c070a4510b9d6e0d6b11566f42b8f56a190a9d620d03b02345e52556192c1f1dfedb7b22d00965c15dc4741bad548954548fef45dd13c28219c92182336f9941b52839ec9686abf6d9465af57ef876347ef013f8483526e478a83b129036ebb4371ba36a22c7ff78837a2c7b75fd7a85eb110eeafef045dc39d1aedd8b3753daaf11e9bf4970f9a038dceab0f41159aec3b50935fe20f53d9b65edea95690c2f64d96dce896a20f5a74f62bde5f52ee066dd028c05d8462b98548830d912074a916884a1d2788f1a19546c4e13afefba70c96b3797bb706b59bbc12a15603e6b3866028f7972be69c86653d78385d690e62455c3af0b1cd2c2fcfc07338665a776d01d8bbc503bc3150a5fbd0141b64f86b05215181c2996fe5c157d4951a385a7fbce87131091a5f5df30dcdb79e718c067b6cf9781a9f25ad693a801c44f38306d0d3733e9865986b82a0d73123545f73efda610bee9d909634d7a60ceea63da23ded5ed0c9503e38ff36f28aff4c0d7bad83dda79db6481b16997bc31129fd668fd6a9e721fc9d3db81918813e2914cfc440d05f0ab9f392ade5f45a03bd65c920c799cfc84591524b6ea247dc0351f07a3265d169129d7dd3e4709a5bc07577f9c07c293fbfafa3f8913155accee80fb27e286d976d4e0f57c2cb61f50e1326c052fc156c9f5725cc7a8fc77932f813daa591f7c34a85db08a2bd5761ba4292b0806ce7a0e971923fd25dd43886e28e3515d42592b0718acd27ad2f6d358f8377bece853585f5b56e5d537e7419fe8aa527be9e7853976638844a279e8c26b0ba5aaeb96b5379f7e917c60db7adc4fe4a8b25677c4cc4852f5e322de7f1e9455ca6f2c0dda363092c6fcb500d10b0fe3f45dbd46a42bb243b98957c006e22d716218a56895ecdf7938128c2fcd2369e70cf758918b6c5f124efe0ca409988507c49e0eb95bca85aabc45427b96025170f3f07693375c2558ee5cbf2f54460eca120f3b6a38239bf614c80ebbb9c664efa483e56231a4367e34546d1a0d5cbaa0350c1d5e893aa83264ea200d9f92d78eda616ad7ae0e42e659cf0bf3a9879825d67958634be9cef59ef057b55d1270976d0d5592071e2b21f03f4136b7f65dd89a74f2e422eb4610984f298656b68d8a58fc15056cd26faa390439fa6db35394dbbdca9879d102db16912f472b2b0035f9c3159e5a1357940762a789f77d2e7c37513742c05ff653aee34cedcbde94d44e4ca81973c4d13b0a6e6d9b2b7851abcae0f7848c9d583095487b722856e3154ae28e3b39de4f562935c3bdda23702aef31cc215384de00218bb8fdb2c37a7785b7c4e56f787e37d16a955d31f071069594714250cb05b6eff67e3e7781535c635317c947ac5a4bae613c29bf96e6b4575e0353f18ff7875782cbb220a93a610abc05ce8218e5d9233afd3d71f71deb4823944eeb21f9c90fbd46ff515f8efbf6ccb4d2ccd51f96781496f4ad104817b5c657cddbd365dbc98a07ccf270abcb62c7803a93114b7c7b3e9a1b2bce982e5f2cd7e76e0abdb89bc159bc735c1286ecf5608046fce4baee4ce34d18775e216d116434f39e2f3248bf5b7ca4262c602b6d43deb639a730b286157eda8183f8800e680366b3ba9b4e852ed140593f8a3ca6c8696a0463da9a3dee54d382547829d7697b1dca68376a9ecc2f6d46d56750e632aeab82c978d5e00c7cccbfbbfa4f64e422dcf068d899cdba82f36798b394c5dbfb5f34b15884e7b337400cecf7931a8663f97b1e3cd047077ce3cbe93a0c159cd3ea293abf6f1fecb76f9cf2a656ffe81750400d57f80b81ccd1d42064218b33aa0ca4ebda62532459e557c72776a4401bd2923191a3c54d2c8819286dc1ee5fd3b317831bf34fe9d41eaa28a1a7dddb39a1b99bb82479f1cb0a674a8257d33e056d3428e30d4e4e4131305b37c4e9675d6505d1911018aa6567be3d9093850f6bbade886666bcaf40764cd508e1fb8152fde831374e91a8c3a22200f4ae05165b19c27c974042873e39752ae0c5e58cbf771274ec5644a820b50e139bde7780c5001f32dc0c87a1bd3c08c9c88b83be5014d64a45748b008df7fb545a5de7a52641dc4d781739c2c8694302e0e25895bd7bb1612c4db444b560489807de664b5bb1162c9d6ab127b9f2f772dcde866b149595ae943a3be28a2a4e8e0e403841ee4a9c2e061f92b73bfc7958d6f95ff0d43c4c98deaaee7a0cad974542704fe2665f023db4aa5825d54fef66d14dbac10b89157e1eb8e242fc3d0e9e23bd7b51c03f8caa67ac8c9d8535ec2eda755a683da6e537ec48ca5fe9440cf6d4af3fac6a40d5c03dda0256f52c6ec725e4551dae8dac8480d0a481a09b35ce0d99bc79eee773f68d8fc67815a832f04a6a671978527d52232a958fec7114ab31b01766d78ca4bbd35b86d70f74777dd92d84cfb6f9020d8840f65b32165c2b25e33bab1b774ff66dd34773085a0d37df294245119f13f5bc139bd3398e4e8614b8ad5c2986d4f8274c1345311784c149ee16e1faed2b8d69a7c007db59d991c573352044f8ec4d50d5ff541fd05afaa605cab8192f8587a7cd478417dbfb7bf781e00e1320e0d20218286c7c6f2f407094936809882ae8c85ca045a75418ba279cd461612e5f205cfd7f67a7b0853311711d73895afd7e3bdfca36dd0ebc2550ffb01229a2db755523d7752807a635a8e2988b18b8248ff7fc1cedbe1b435f8015d5c4952e18e82a0a620915e1dce8144d01b0566ea87d52593966da0262bd7b9a75d2ea70934f17bb3a3465d5669babd3a709e66225ab11f4d6fd775133da38661c719fa5630e7626d37fe8917804fa0beacc8675799f70b2223fb7937362f9f42f7a814a1ae3aafb09db24ed3fcd8bbf9cc133e2440312de9216d8361159568e028e574e5feeccb3031db7a0f95224d27e1cd79b56bb801ce6ddefb36f6db17022fb0ce800c299f859b6d88571849dc172115d61c57cf010671c1a3dfc7470ac30abdcd919399237ec4e35097ee229f33b6a250aa346a75786cd5beae48229323d17e2bd52d6d6b692706ccc80e1f121f40360f5635c1f495a348b6c03f398954f879f1afc5539ebc25291bebcc888be2cde581760c5098c240ac8860ae27391d1efaf0088ff7c222a41e80db2b3627217ae4b4aa258deb029366de9c3de612031d56c2b5548f3eaac02e0070dede1d742c1682f719a93812e286a1a585a65380e9d149411e2eeb0dcddb4be2ca7085f299ffd3c44a7651fd6f212672470f36e191250ebb5f0ecf452dd42564cc3f671acbedb86e7179acf576f1c3446b7af83a8edb2a85f637e29ae8ab7ecb1b3da0dbce6cf7c22c568de2db82e1bdecbf11b712284d85d22be50ee674658c9f1d630c107e18fe7543a0aa1ecb73a84efe1012d41e48f6765f9f5f730a2fce1d093543ec5ec659d9234233592ae0756c3de13407f4728eb86d8e141341fe61c8bd0a22f189a694d6b969566dbe3330e14e750071aeb4a8f7f85262cae6c740dc9b50cd797f32969995a9aa265325d8284b48c68455f954a8ca3ad86ae6ad593ae6e28619c185bd8278f4ab5289073c30d7218fae54c59801e9e659f7ee00abbc1e092cc2dd12e493961ac209a87a15e94066dae3520130b44b5f8a373c2f6f49fc3b7c7a799751abd2f2352eee3041145fe3d2e6929e399d3497156286c4605599dfd8d16d3b97b16e0377b69441111bd5cc8ae2c0a30d2e265170dbd1d8a105a1016cbb781da974abdc9d49a11f8801a5c790282f4e9104233706d97487cfda3f6bd626cb5cca5caa3739c5a7211ff0d3af34876dfedae5f436fc9bae32455ccd05146b804c0de8bfd1b4c642c15372d5d3bf26a4957d6d1bd5d7ac211478ef9c5b9d6dcee92830592d3f155540d55ebb4d959cfeb00f9d5fde958f40d759d8858845b44d69d8dfd880ea2649a1f06937e9c77e1c855f5834305d3db7ff00739485691c4fd591c6a7dc7f0da5b2316fb2ece65d494c581f157ece410c3b3c075537c3fa28ff55fa1cf7fa45178fe6b91ee9e55a14ce2a2ad81882fd6d4b69ede487c631413e937961d48344ef9fa364b9c53be7e6cd23fc1fd8500d2a66439ebadc0e6b9ea77a76d759593c27460b2e9e0ed7588df2f8e7c01055a5234450023a6fb8a3f7ff2cc702ab46f84bc9498f752be94abc8936e2f36ccdedce09f458c4d8d114936811d8395f82eb02f259c2dc753bc25b66dbb00d2e3f90ced30f4ace8dcc71b83ab620694f12e1b5c96155df4b3151a756402c1acd24c680621c55e348be5c3ba46f16faf33bd15907377a7fdaf330d4eb50dfbde138997c2704acc0a0c265f1e8c538d087de3af462bae0f2b2faf9ee8446d40cfc35fc17f52738bca6481719784d67f580e193007619b8ea12ac91523eae7d67ecb1cb38329ab9310a20a8e12624fd06c7ac29a466be6a86ec8e0ef0509aa5bcc5e39e7f0b7afc2a195d60e810931a20fc54538c95eddb7bca2ae13fef8bc41ce40a52a1bdeb0780ddfb9d6f7953adeb5daed3683a299a031075f5fba9779e092c23e79b9f5f8c48c5be2f914ee735f4fa701079ca8d51609fa9385f86fd3b95e364d8af5a38b4672cdd5936669ad55cf5f1de71b5f415bcf2092d8d549257ba3788562d4a2da2be558dde02c68fe0f37f92db22160d93fd15d1a9d7ed23dd804ef08b901ebd8b66d6ce04bb20c9cfa009eae30822cf9bf82f2639eb737ba2a652bad1360b5d60ea2cdbf73cbcaaea289e75d97d2d6d3ffb893f814961d513f0f6ebe69ab2bd8e8015df06cfd28b3a6456f63cdc1273f45aed8aed40f12e915535f6c410d187e68935d386b5fbcb2e71f772ebb723816dd70b5133d853c8d7ce7486bb1c746ad06465c9c4ffb12037007c036a0e735d0c4f2ddd33ccfb4a7a0cbf438ba9984eca5b7bb63d7a859323f3f8ddd99395132e12d555469933f609b5a66d927b996e449d3474d6c399a7dd41b44819332921bd6515110c352ce3dd782f044c0ef971f4b0f73d1c68d3e72c001af702a714b56e10acda17b211103723838966646df8d915344cbfcc9c32fabb9276831c8ab9ff7109e6a21e2e44b8a649068beb050824b592c3fb9bed7c0c1ef1149609e4955a65bd591fecb1bc57c511a4c3a24b8f43fe26198b0895bb784259387b132aef8b3d7ed705f707bcffcf85f5ff7e18c77a517ebc8a5edf5302805cea6c3755dba83ff16acfa3164fb2c794778ba1935a1834f89f3a545f4a65b4e65b3f30d452595ca7d3b7132bdc03e55469f3e746a6224fff86ff47907eef43681bb577777f49920dca945c78a46bf7ae2065a73bd04e9a1f1790b4240771ba96422f39f7da89b3658193a0eb1f62717bb97f2ff185dfc845fb20e93de5ec0cff72e412390e3c381c5cedafa386a530911f5d25fac67cc731f871f85a8837106f3966702056256b24ffc8e1ac239a12bcfbd45f68ee2165185ab061dc1f185d3361eb6eff9a8080c4ba7a2cd1668c04de4d4ff2708802d94e9ef40de942418f98fc677146cb03fb2b4f0388cc0c57b1953df1e27d5ad964c46aedbe5da650f81360629a1bc87e4f97853f4cfa1d55e81b94b28df9f16edae31acecef72e2fa533d1c51037a4e7902eb9cf7b04d70b8eca6263178d7bf5c113f48e01cb42e3608359c1d6f88b81964087227abc7da852a989326b73eeedc6ead260abeb7a4afc3d4c449fed0544c6eadd2faa4abd009f9aa3fcb442753db8bd7a6c0fcda033033fd7e8e0afd9b3f0f43fcb82697b4c3c8179324f37170ddba85e096371a2b8fdba00da253b809d095e17e66c4e09e13e1f6fca6619c95bc140c6748d33cb79551d98112ae21cef605b74675cd61b0a6187670ebe7463389a6d8fd373844b9f23dd0ded350c1db7fe427121a84fc5a8355fd9f5e0b4799ea2d579ba26fe37a840c78bbb64aeac2f7098668d100b866dcaf42805842f4163432028ee4a38a77f8c39f958e4bfe6211bc216b92c3e4a808df91c8ecb308439048d17aae891133545e92547bca7dfa23ea21a3917b86de005d798728980fae24688b97d4b629a89ee449360651e76a246003d482d69c6e54b0edab2a7646535760d031c3b8e89649bb2c5711ed8ebee2ff077e8871826054d8fae13f3d99ebf2789238f9eb232794bb9f6fe8d5c7fa1389cbf0ac990a5ce0b640c1183f268796a38bd48f614f81fcb7fd6fb548da480957f423dc9baed704dd998afa863f7fd670694a80c9cda3990e43523b046a5c44636eebfd6ecbf37b23f668ae3c72df46fcda929a81ab8acc79ee7e8960ece549c2d5baa4749f72f5970a9d63a26e82f9a4a5498ec6ec3fadb66a20d127d2e76fa63aced3d0bb34a672c8757e430e357035de0c8484680bd9ff7973886be50861a51752c7d15d4cecbac499b9487db772c2777f723c4f35c7db16aef6b510eb5488f3d54f2fa15ba89df81152e36efc9a367f171ed07e5c888a58fdf1840a2242685c7d8c64e7ec1c1793a859582310251d4a1cc793bab42ad5af586dd068c00ff8323d904d4b05c43fb8465f502714b241957a70eb2258c25fcdad6fe5e7663e466bbcd27b952a36d56d97c9f965db0f65779a3dbc8ae886e41adfa6afb5ff43b03b8428c3c4bef7122d2da0fc340df0dae4f1191352ecd6faa6a147e69a322a7b5cd1b608b4f0a18b6a2a5a1239317365d0088c00778da776fd870a9401b95e1c47ebfd0d707cf98721bbd46336503767f296675dca85a60c63fb00c5ce4b359b90ba19e959fde26f90aac521db44f24da9ea4c42443f630eb50c15d758d343941c64aa0b2756eb0173297f926360c929eb7eb3a5ba153f98a82c14483313421b71a43ba01852b9e001e1568ceb5aa714247e59ce9c4061e673073ffb78f0ccb4f22b7f470da33d28da3ae5d293cc31a43ec1315e467e20502f6739da52ac8d4c8e197345aa8cc1218cefce750db844e0bc9987b48edbfca2b2a1337598799f816a989eaea22ba6e2461334b75a0291acc5e2f13166d80471398adc06384dd2e30b505627562da2bc5fab0bbde6c0ac8dfb73e64bde90484cb88c82d595525f9b362fcd371eacd620f17f2eb3a2e102fdba8c4cc178c51d305efa39537d5424043741f4442eb3ff015dff2e982d4e894f159eacd5a6906ebcb115f0c1acf832f4ee35094317312fe6da24f4a71592ec5eed19a432c94a703b25ed7c793ed0a40dfb2ef9e56ddf9e37eed4319224ca0f75b4af3362fc8395d6148ae1f4f2276cfbc7d0ebf1f9b16b7ac13d619f6030ebbe972d20023d42b415943954e494f25d914dadd1172e3c916382c6b3ddaf767706a6930e092ca9eedaedad3cfc0a215c245b502d83f0eae9fae06b54a3ce1753b19f46503a3c4e4a91fc3d6b11a2160e5a20052c7909555b02f64dd1381b19fabbdb20dfaa295b2d08220febeedfa511a52fe165e184af55f6103c86cedfa9874fba913ddc680a9b210d8cd01e2a1eaf98ef57d655992ce402616da57a10ffd88112538d45a87afb581d8fa367555a741eb4d50daf63daf2d812e01ddc6c7d845d8029ff645474ea7ec745ff1b249b71a459af6e3a1c81d7e3cd75001674144428e49e7945a7e368c2f653d92c27a6b052c4980de66df224a0db2604df4c9be461002572148653317563733aef379005f491f471a6c35a662ee3d508925bf243c70087196270d6064c71f6fa8863961ffc359e8f43335091467786e3d2960aef52e00bb5acc3b3106175f6306842b19ca47fb319593af61fc95d23b1bcd4ba97e6cd4e748f033a616b5aa2a2bde4a2060f42dc7ae483b56153d95647d9c445476c0836ac4b92351a71df817889b2fbb130e68ec3e9f8a108a0688310ec30ec2bac574e636d8d52e91ba8f517798f31d0933371684f39d03ede3f08b0683748c41912a3188a081bf87eeb711496a1f63a21f377df3a4b1aa6d48c6b0b90eb84f39670390d9d082dbccb1113bccabff6380d1109569a3f8e30fdaa13e14bce5d23e69670aff45c62fa3f35d2096edc42290acc8a70c9adf1e5c7ae56a40be73f204480510ae539bd3c1f3f05e1aabb5c98649521b4c90a4c1aa6d72becb7c7a75d0e45c10b810127c0588207df967c9664406f0bdda72fa435263ad09d6538da9e0b5d15ee2963340d3ed093ee21f350f0d113bd3d913cacbdb9d68763f1361d8e94dffc46118474772e40f0253206a3b8dfe0060f17cad013334a4a79feecb2c4e83e022b997ecea378d2f9a68515fbb48836fad40f1ee11da2a71dbc348cfd5927880331a0d61bac7d83773bac6f0a5f2e3f081d16c1d3d74966a4527c77788a437a23b9174cbd5b43ac2319f4a4943e4ea9df21dad5a2ac84b44d67b397dc5de54e8d9c942ab91f7efc5be34ef231d147ab84cd44f0e4a7326802ecbefc7ab7c7cefc7ff4e6c3d078fe4f11fdc30c6bd1c1c8f1a071ea07ca76c35d4967814d904649ba86f980d0b14c528434058fb02bef50160eef002616454ef69b42ac379238d9fc549e3ee0066cbcceeddbd6e629e029be256aca902c2be53e52cc5207eaa394c78a312ad5642caf0331ba8e48dbe15d99b3f7243da90a5e38d11208340434c8fc263c5f5947c4bcaf2ac8f695d42cabc2a380650368662bc4051f2fb3d759714a994f257facec350cef5ec969a9949d39fca7a4ebdcf74eec57f83ac77a0f79f62794abd72a1e65f82939a2327b2e2e7e54bab14832a1da7c12ee8101f35ad2c3815e10dc1399aa7158540cdb2e2f2bd591412a099b48d3af51c3c1a6a882618b249debef854b7a623844816ed41de7ca3d71e17b7e7aa630c9d1c337831f69b344fe2948d11ac1324aa0878103ddd0e4da799e3da52874e6f1b84e385776d215b200cdd0b283ea2930dd3b9310c8e0d5bfe4c82788f7669fcd18ff16e4d92f0fa00a7f5c163b0cf2c6c566b3b16a8e4a1479a17e3325ee0cd90ab4b79abafc7aea13cc1ce84751e3e215f4e03196edc0613db90ca27386ca99e4aba0c9fb4d3bf5723a38dd8a2fd2e74449d4f6501383799c3238c7103765c1a2a4aa063153a4830b88db5efe594280f18196b764f59dc60622ebd7e56475c479b110147fa678f5113cf92afebd6b040742d164716d5cc01bd802663ae2cfa0f48a639abed90805841bb17fd46318b245eed213fe84d103ec5888d7928634799fdfe92c65e87711a44de7c8e6c8415871a39bee540c3a2188caeb676dd704e2c82cfd72b0a53267a69663de0901a7389f41779f1c8e8b8bc7a0837cddbdc99a4c5f4f1e5cc7f38d867297fbc5c76b2ec7acc0877e1e2e6582e4260898fe6b85954d95352d2dce80ab28652c673168666428f2f1696d1a722f7bed9ed3571d4a6230da13378eb36abd6662e1e091e198391a3d7f88e46d35722f33ec2225103e9bc9acc696b59102e9405d7281f2fbbd54b716528c151d2752c35dd890104cd4c383d63b954bb43d8e3edc539a5e521df3be7b8a9d38f0262a1964366108712e32115e9939e4cfe27517d8bd46be6789774fd94009cbe7fc2a67213d9dda6e4b9f5f782024ec5678836753a1401567cd683ef95631d8b89486762109f488462d59cc013085293425440eee8d320a5fdb2fbb45c17179241a3fc9167063a8d1ebd59d493ec135537b25a0c4a0dd8e08ae3f2bda01ecd02544a4b6896368784bef6d50fcfb8537e14fba02cfb3083cfcd2af5db3d590f5fe9fffc7c2689de6d8a6fa96644a37c24b1aeaaabb1202c2379420ad12f1c88aac59b0b4c025a7ad1072544afe75b9858f7f7f02355ffd98cd1f5ab28ebcb7ff7844c404eb85dcb790b136f93641ef114ffa2c6ed3b9a7835a979950a332eb864dc3ec69075ab66cd1811655a3e4d75e8410cd2cae3af154595262c017246b22e91c103585dd2c9ef1c77178a45f42e8793d0df064706a1ef5f742bf8ac2e9d47319429c545c14c6073ffa404196698b54195f000aa23306689e1d87453c682e62a0383e7822cf370c018d51f5de70a357ac188ce2802443d652fc48aca9cc2a4cf0d2eebf3251c272d31a69674c873c3dd9be6b3d80f11c537a3e27f065974b1eb82b3c1bc851a3419e805ec1a5c6143f6fca36ccaaa81a37ed13d766fe70b040e929e84da0b4128f50d818c1cfebb5b8fba341ea40e07c488a02ebbaecfecc2e222a6b856c5104db5dc5a219ee5dbd5fe2bb6d55ab45bced36766538cb3cebb75e88ed323b7e30bc18da9cd75a6fe8786e1933b0176ec68b24cf2263e6fbb24c0b543ed02d8ab8fa427523fee4178f24fa1df959c6b98d7b1052790ca0e8b93bdfcd1e3dc85c9dbbe3adc5e247ca4b615b5a01e70a0897ec75202cf3412ea97850fe704387689e3c2fb6317a68639c238652460dbc8e578e32b2cb66f208ae27f68d2cb804a3fd5206901fa88165b3fbe9d0c59b8c599df6cf13514cefb8ae71f3a40bc00ad86e65f15bc5a0c5412c74306a1bad569e5ab1cc2cbe4a4fb8430705a99be26e9e05ff45374935b4817258911cf471e76a251f24ea67d01bcdd5edae202c987637ddd2ebd9527227a755b1a74a8bde45e1052ebfe21a37d5aa259f94c0944b2ea187b4aee1aa03a9a749ee663f25302977e58f2e727486b73a6e389f0d65d5fdf2c321b79753676ec9795bb6cd879e748f7c1b0c3009d5160ce95aa64286cc5ba147848edf55d8759fef985a608c6db4344b84d1795c24eb27538b9936a33cae454c6cf84f9fb136f22794e272773d64575f59b97045ec55846c12e2950a12017c467579056b2b75c0b3345352aff43b7efbe5b5705bf4a8077f5f40cd8129130ec4b060feec212891b5a5bddbb26c37fae1a91f628a94e10cc26a4cd841a3ff786d83b2d752c38fa1c6ddbe4b40dae16f36d56922f5b73425df2df868cb3c7fa583a26be41ad6288764edb32859dff2c48d327033222252c3a450a0af02b6efa85bb150dcbabd7adbe62e9036a8182f672c05301b09212e38118639d8d713661a14e0c863ce36b98bb434ddce34e937244f6e9f2da11f6c912b19894a1e07321a0edb90f8b261d9ea020ae1b06c02e2ad6e4b09cd20c90646bf288f806ede6d2faacba10be9f8b3241448a17b1292bb407baea3f94e5fa4a8baac4d49b1f5637e39a4a5ccaf89586d29d8109ac9f08817e7cbb49416d8428300362cd448aa1d1d6cb06b2f4a99edd9b54108f0046c481ee978327a18c713a9b312d49e23e0bbb9a529bce662b7fbf50e68cbac33e16fd1918931a46dad7f3b1fa950f5c574cfc8051d9f05a4894978feca466fedbb850c31f1c973d12f9058bab4ec48c8131414585d3c6fed400368a8ed0c820e6655d5a54e6b9213b2fc3e18ee383e14395603458d0149584466cc49d89c1dfc710f0e85801a3bd6820f3f7b23784ea24defd1216ff94a6135ad7f6eeca696d25a498b98dba23787931863a5aa5a3c8044a71a3ffc23a36e46ff1a78d3d357a564505045f7718b3b5af4a1ac588d9dbbdacac02c8e693ea835f0472535630412ff851973e3c5db4d952921953b11406d5c571f560cf40805dba4c33ec0ae6d0f23f82b6b10a413157bdf01fc1c2ff08046bf434bb113d69fbe233f4c27395805e14f6ecaf0736e36a9fab7b2c64ea7f102a79f1c45a3c14843c37e6f1856f123d2e38f287d5937182c7ee8b898cd8c1a9d851f9537b18b945901141df5946f84b26641f223e84570af65db1fb3882e0f7eddceb90955f1ab8b0996ffc26a468d9084386fa60fd033114f7ea8091770c34b5808b2823eca44b65046c5053256fd7f90c351422accbbe88b3c68222b4a93d5ade923a734c9d7fe6a02c43b86976fa46b79e88bc527acc61bcb4f308aae3745bdfa37261cae8b0a1f1621378d2fdde19b9f1d0354f596fc3ba0ff04302d39a83c1191c26bcc3a3d19da363e0346620da38c4066f1a0b1c63ed363d7e55a0e008242be2d42eb7rootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootpython311-documentation-3.11.9-150400.9.26.1.src.rpmpython311-doc-devhelppython311-doc-devhelp(x86-64)    rpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)3.0.4-14.6.0-14.0-15.2-14.14.3f2.ff@fereCeCeZe؈eԔ@ee@ee4@eTdid@d@d˖d d}dNX@dJcd@c>@c@ck@c@cS@cck@cWcRc#cccb@b?b@b@bzSby@bs@b?@b@b a@a@a@a@aX@a@aa@af@a\>@a,@a(a @a` @` @`g@``r```@`N@`/@`"y@`!'`_T__԰_ _v@_u@_P_|\@_m_O@_N7_>e__@__A@___ @_X@_X@_X@_X@_X@_X@_X@_X@_X@^z^z^z^z^)@^^^^@^(@^3^@^'@^H^|@^h^`^>^>^8 @^8 @^ P@^[]f@]f@]]]]W]]c@]]]z@](]]]@]V]w@]i]g@]W@]Ik]6]!]G@\\9\~\@\\@\7\+@\\s\b@\b@\Q\C@\4\4\,\2\\\\&@[[@[^[ @[ͻ[ͻ[$@[ā@[/[[@["@[D[;e@[6@[4ZnZ@Z@ZZԐ@Zx@Z@Z Z Z Zz@ZxG@Zhu@Z`@ZLZ"Z }YYX@Yo@YY@YY@Y@YP@YI@XӸXƉXqX@Xv@W@V@Vm@VVhVCV }@U@U@U@U@UU[%UT@UT@UCjU@TeTBV@T;mcepl@suse.comdaniel.garcia@suse.comdaniel.garcia@suse.commcepl@cepl.eumcepl@cepl.eumcepl@cepl.eumcepl@cepl.eupmonreal@suse.commcepl@suse.commcepl@cepl.eudaniel.garcia@suse.comdaniel.garcia@suse.comdaniel.garcia@suse.commcepl@cepl.eudaniel.garcia@suse.comdaniel.garcia@suse.comdmueller@suse.comdmueller@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.comkukuk@suse.comdmueller@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.comschwab@suse.demcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.comsteven.kowalik@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.comdimstar@opensuse.orgmcepl@suse.commcepl@suse.comschwab@suse.deschwab@suse.demcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.comdmueller@suse.comdcermak@suse.commcepl@suse.commcepl@suse.comcode@bnavigator.demcepl@suse.commcepl@suse.comsteven.kowalik@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.comcode@bnavigator.demcepl@suse.commcepl@suse.comdimstar@opensuse.orgmcepl@suse.comdimstar@opensuse.orgmcepl@suse.commcepl@suse.comschwab@suse.decallumjfarmer13@gmail.commcepl@suse.comcallumjfarmer13@gmail.comcallumjfarmer13@gmail.comtchvatal@suse.comtchvatal@suse.commcepl@suse.comtchvatal@suse.comtchvatal@suse.comtchvatal@suse.comtchvatal@suse.comtchvatal@suse.comtchvatal@suse.comtchvatal@suse.comtchvatal@suse.comtchvatal@suse.comtchvatal@suse.comtchvatal@suse.comtchvatal@suse.comtchvatal@suse.comtchvatal@suse.commcepl@suse.comtchvatal@suse.commcepl@suse.comtchvatal@suse.commcepl@suse.comdmueller@suse.comandreas.stieger@gmx.decallumjfarmer13@gmail.commcepl@suse.commcepl@suse.comschwab@suse.demcepl@suse.commcepl@suse.commcepl@suse.comtchvatal@suse.comtchvatal@suse.comtchvatal@suse.commliska@suse.czmcepl@suse.commcepl@suse.comtchvatal@suse.commcepl@suse.comstefan.bruens@rwth-aachen.destefan.bruens@rwth-aachen.demcepl@suse.commcepl@suse.commgorse@suse.comtchvatal@suse.commcepl@suse.commcepl@suse.commcepl@suse.comtchvatal@suse.commcepl@suse.combwiedemann@suse.comtchvatal@suse.commcepl@suse.comguillaume.gardet@opensuse.orgjayvdb@gmail.commcepl@suse.commcepl@suse.commcepl@suse.comschwab@suse.demcepl@suse.commliska@suse.czmcepl@suse.commcepl@suse.commcepl@suse.comjayvdb@gmail.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.comtchvatal@suse.comtchvatal@suse.commcepl@suse.comtoddrme2178@gmail.commcepl@suse.comjengelh@inai.demcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.comtchvatal@suse.commcepl@suse.commcepl@suse.commcepl@suse.comtchvatal@suse.commcepl@suse.commcepl@suse.commcepl@suse.comtchvatal@suse.commimi.vx@gmail.comhpj@urpla.netjengelh@inai.detchvatal@suse.comtchvatal@suse.comtchvatal@suse.commimi.vx@gmail.comadam@mizerski.plschwab@suse.debwiedemann@suse.comtchvatal@suse.comtchvatal@suse.comnormand@linux.vnet.ibm.comjmatejek@suse.comnormand@linux.vnet.ibm.comjmatejek@suse.comdimstar@opensuse.orgmimi.vx@gmail.comjmatejek@suse.comdmueller@suse.comvcizek@suse.comjengelh@inai.deschwab@suse.dejmatejek@suse.comkukuk@suse.dejmatejek@suse.comjmatejek@suse.comasn@cryptomilk.orgjmatejek@suse.comjmatejek@suse.combwiedemann@suse.comjmatejek@suse.comjmatejek@suse.comjmatejek@suse.comschwab@suse.detoddrme2178@gmail.comarichardson.kde@gmail.comtoddrme2178@gmail.comtoddrme2178@gmail.comjmatejek@suse.comdimstar@opensuse.orgjmatejek@suse.comfisiu@opensuse.orgdimstar@opensuse.orgmeissner@suse.comschwab@suse.dejmatejek@suse.comjmatejek@suse.commailaender@opensuse.orgrguenther@suse.comp.drouand@gmail.comcrrodriguez@opensuse.orgjmatejek@suse.com- Update CVE-2023-52425-libexpat-2.6.0-backport.patch so that it uses features sniffing, not just comparing version number. Include also support-expat-CVE-2022-25236-patched.patch. - Add CVE-2023-52425-remove-reparse_deferral-tests.patch skipping failing tests. - Refresh patches: - CVE-2023-27043-email-parsing-errors.patch - fix_configure_rst.patch - skip_if_buildbot-extend.patch - Remove included patch: - support-expat-CVE-2022-25236-patched.patch- Add CVE-2023-52425-libexpat-2.6.0-backport.patch to fix tests with patched libexpat below 2.6.0 that doesn't update the version number, just in SLE.- Remove not needed upstream patches: * libexpat260.patch * CVE-2023-6597-TempDir-cleaning-symlink.patch, bsc#1219666 - Update to 3.11.9: * Security - gh-115398: Allow controlling Expat >=2.6.0 reparse deferral (CVE-2023-52425, bsc#1219559) by adding five new methods: xml.etree.ElementTree.XMLParser.flush() xml.etree.ElementTree.XMLPullParser.flush() xml.parsers.expat.xmlparser.GetReparseDeferralEnabled() xml.parsers.expat.xmlparser.SetReparseDeferralEnabled() xml.sax.expatreader.ExpatParser.flush() - gh-115399: Update bundled libexpat to 2.6.0 - gh-115243: Fix possible crashes in collections.deque.index() when the deque is concurrently modified. - gh-114572: ssl.SSLContext.cert_store_stats() and ssl.SSLContext.get_ca_certs() now correctly lock access to the certificate store, when the ssl.SSLContext is shared across multiple threads. * Core and Builtins - gh-116296: Fix possible refleak in object.__reduce__() internal error handling. - gh-116034: Fix location of the error on a failed assertion. - gh-115823: Properly calculate error ranges in the parser when raising SyntaxError exceptions caused by invalid byte sequences. Patch by Pablo Galindo - gh-112087: For an empty reverse iterator for list will be reduced to reversed(). Patch by Donghee Na. - gh-115011: Setters for members with an unsigned integer type now support the same range of valid values for objects that has a __index__() method as for int. - gh-96497: Fix incorrect resolution of mangled class variables used in assignment expressions in comprehensions. * Library - gh-117310: Fixed an unlikely early & extra Py_DECREF triggered crash in ssl when creating a new _ssl._SSLContext if CPython was built implausibly such that the default cipher list is empty or the SSL library it was linked against reports a failure from its C SSL_CTX_set_cipher_list() API. - gh-117178: Fix regression in lazy loading of self-referential modules, introduced in gh-114781. - gh-117084: Fix zipfile extraction for directory entries with the name containing backslashes on Windows. - gh-117110: Fix a bug that prevents subclasses of typing.Any to be instantiated with arguments. Patch by Chris Fu. - gh-90872: On Windows, subprocess.Popen.wait() no longer calls WaitForSingleObject() with a negative timeout: pass 0 ms if the timeout is negative. Patch by Victor Stinner. - gh-116957: configparser: Don’t leave ConfigParser values in an invalid state (stored as a list instead of a str) after an earlier read raised DuplicateSectionError or DuplicateOptionError. - gh-90095: Ignore empty lines and comments in .pdbrc - gh-116764: Restore support of None and other false values in urllib.parse functions parse_qs() and parse_qsl(). Also, they now raise a TypeError for non-zero integers and non-empty sequences. - gh-116811: In PathFinder.invalidate_caches, delegate to MetadataPathFinder.invalidate_caches. - gh-116600: Fix repr() for global Flag members. - gh-116484: Change automatically generated tkinter.Checkbutton widget names to avoid collisions with automatically generated tkinter.ttk.Checkbutton widget names within the same parent widget. - gh-116401: Fix blocking os.fwalk() and shutil.rmtree() on opening named pipe. - gh-116143: Fix a race in pydoc _start_server, eliminating a window in which _start_server can return a thread that is “serving” but without a docserver set. - gh-116325: typing: raise SyntaxError instead of AttributeError on forward references as empty strings. - gh-90535: Fix support of interval values > 1 in logging.TimedRotatingFileHandler for when='MIDNIGHT' and when='Wx'. - gh-115978: Disable preadv(), readv(), pwritev(), and writev() on WASI. - Under wasmtime for WASI 0.2, these functions don’t pass test_posix (https://github.com/bytecodealliance/wasmtime/issues/7830). - gh-88352: Fix the computation of the next rollover time in the logging.TimedRotatingFileHandler handler. computeRollover() now always returns a timestamp larger than the specified time and works correctly during the DST change. doRollover() no longer overwrite the already rolled over file, saving from data loss when run at midnight or during repeated time at the DST change. - gh-87115: Set __main__.__spec__ to None when running a script with pdb - gh-76511: Fix UnicodeEncodeError in email.Message.as_string() that results when a message that claims to be in the ascii character set actually has non-ascii characters. Non-ascii characters are now replaced with the U+FFFD replacement character, like in the replace error handler. - gh-75988: Fixed unittest.mock.create_autospec() to pass the call through to the wrapped object to return the real result. - gh-115881: Fix issue where ast.parse() would incorrectly flag conditional context managers (such as with (x() if y else z()): ...) as invalid syntax if feature_version=(3, 8) was passed. This reverts changes to the grammar made as part of gh-94949. - gh-115886: Fix silent truncation of the name with an embedded null character in multiprocessing.shared_memory.SharedMemory. - gh-115809: Improve algorithm for computing which rolled-over log files to delete in logging.TimedRotatingFileHandler. It is now reliable for handlers without namer and with arbitrary deterministic namer that leaves the datetime part in the file name unmodified. - gh-74668: urllib.parse functions parse_qs() and parse_qsl() now support bytes arguments containing raw and percent-encoded non-ASCII data. - gh-67044: csv.writer() now always quotes or escapes '\r' and '\n', regardless of lineterminator value. - gh-115712: csv.writer() now quotes empty fields if delimiter is a space and skipinitialspace is true and raises exception if quoting is not possible. - gh-115618: Fix improper decreasing the reference count for None argument in property methods getter(), setter() and deleter(). - gh-115570: A DeprecationWarning is no longer omitted on access to the __doc__ attributes of the deprecated typing.io and typing.re pseudo-modules. - gh-112006: Fix inspect.unwrap() for types with the __wrapper__ data descriptor. - gh-101293: Support callables with the __call__() method and types with __new__() and __init__() methods set to class methods, static methods, bound methods, partial functions, and other types of methods and descriptors in inspect.Signature.from_callable(). - gh-115392: Fix a bug in doctest where incorrect line numbers would be reported for decorated functions. - gh-114563: Fix several format() bugs when using the C implementation of Decimal: * memory leak in some rare cases when using the z format option (coerce negative 0) * incorrect output when applying the z format option to type F (fixed-point with capital NAN / INF) * incorrect output when applying the # format option (alternate form) - gh-115197: urllib.request no longer resolves the hostname before checking it against the system’s proxy bypass list on macOS and Windows. - gh-115198: Fix support of Docutils >= 0.19 in distutils. - gh-115165: Most exceptions are now ignored when attempting to set the __orig_class__ attribute on objects returned when calling typing generic aliases (including generic aliases created using typing.Annotated). Previously only AttributeError was ignored. Patch by Dave Shawley. - gh-115133: Fix tests for XMLPullParser with Expat 2.6.0. - gh-115059: io.BufferedRandom.read1() now flushes the underlying write buffer. - gh-79382: Trailing ** no longer allows to match files and non-existing paths in recursive glob(). - gh-114763: Protect modules loaded with importlib.util.LazyLoader from race conditions when multiple threads try to access attributes before the loading is complete. - gh-97959: Fix rendering class methods, bound methods, method and function aliases in pydoc. Class methods no longer have “method of builtins.type instance” note. Corresponding notes are now added for class and unbound methods. Method and function aliases now have references to the module or the class where the origin was defined if it differs from the current. Bound methods are now listed in the static methods section. Methods of builtin classes are now supported as well as methods of Python classes. - gh-112281: Allow creating union of types for typing.Annotated with unhashable metadata. - gh-111775: Fix importlib.resources.simple.ResourceHandle.open() for text mode, added missed stream argument. - gh-90095: Make .pdbrc and -c work with any valid pdb commands. - gh-107155: Fix incorrect output of help(x) where x is a lambda function, which has an __annotations__ dictionary attribute with a "return" key. - gh-105866: Fixed _get_slots bug which caused error when defining dataclasses with slots and a weakref_slot. - gh-60346: Fix ArgumentParser inconsistent with parse_known_args. - gh-100985: Update HTTPSConnection to consistently wrap IPv6 Addresses when using a proxy. - gh-100884: email: fix misfolding of comma in address-lists over multiple lines in combination with unicode encoding. - gh-95782: Fix io.BufferedReader.tell(), io.BufferedReader.seek(), _pyio.BufferedReader.tell(), io.BufferedRandom.tell(), io.BufferedRandom.seek() and _pyio.BufferedRandom.tell() being able to return negative offsets. - gh-96310: Fix a traceback in argparse when all options in a mutually exclusive group are suppressed. - gh-93205: Fixed a bug in logging.handlers.TimedRotatingFileHandler where multiple rotating handler instances pointing to files with the same name but different extensions would conflict and not delete the correct files. - bpo-44865: Add missing call to localization function in argparse. - bpo-43952: Fix multiprocessing.connection.Listener.accept() to accept empty bytes as authkey. Not accepting empty bytes as key causes it to hang indefinitely. - bpo-42125: linecache: get module name from __spec__ if available. This allows getting source code for the __main__ module when a custom loader is used. - gh-66543: Make mimetypes.guess_type() properly parsing of URLs with only a host name, URLs containing fragment or query, and filenames with only a UNC sharepoint on Windows. Based on patch by Dong-hee Na. - bpo-33775: Add ‘default’ and ‘version’ help text for localization in argparse. * Documentation - gh-115399: Document CVE-2023-52425 of Expat <2.6.0 under “XML vulnerabilities”. - gh-115233: Fix an example for LoggerAdapter in the Logging Cookbook. * Tests - gh-83434: Disable JUnit XML output (--junit-xml=FILE command line option) in regrtest when hunting for reference leaks (-R option). Patch by Victor Stinner. - gh-117187: Fix XML tests for vanilla Expat <2.6.0. - gh-115979: Update test_importlib so that it passes under WASI SDK 21. - gh-116307: Added import helper isolated_modules as CleanImport does not remove modules imported during the context. - gh-115720: Leak tests (-R, --huntrleaks) now show a summary of the number of leaks found in each iteration. - gh-115122: Add --bisect option to regrtest test runner: run failed tests with test.bisect_cmd to identify failing tests. Patch by Victor Stinner. - gh-115596: Fix ProgramPriorityTests in test_os permanently changing the process priority. - gh-115198: Fix test_check_metadata_deprecate in distutils tests with a newer Docutils. * Build - gh-116313: Get WASI builds to work under wasmtime 18 w/ WASI 0.2/preview2 primitives. - gh-115167: Avoid vendoring vcruntime140_threads.dll when building with Visual Studio 2022 version 17.8. * Windows - gh-116773: Fix instances of <_overlapped.Overlapped object at 0xXXX> still has pending operation at deallocation, the process may crash. - gh-91227: Fix the asyncio ProactorEventLoop implementation so that sending a datagram to an address that is not listening does not prevent receiving any more datagrams. - gh-115554: The installer now has more strict rules about updating the Python Launcher for Windows. In general, most users only have a single launcher installed and will see no difference. When multiple launchers have been installed, the option to install the launcher is disabled until all but one have been removed. Downgrading the launcher (which was never allowed) is now more obviously blocked. - gh-115543: Python Launcher for Windows can now detect Python 3.13 when installed from the Microsoft Store, and will install Python 3.12 by default when PYLAUNCHER_ALLOW_INSTALL is set. - gh-115009: Update Windows installer to use SQLite 3.45.1. * IDLE - gh-88516: On macOS show a proxy icon in the title bar of editor windows to match platform behaviour. * Tools/Demos - gh-113516: Don’t set LDSHARED when building for WASI. * C API - gh-117021: Fix integer overflow in PyLong_AsPid() on non-Windows 64-bit platforms.- Add reference to CVE-2024-0450 (bsc#1221854) to changelog.- Because of bsc#1189495 we have to revert use of %autopatch.- Rewrite %prep to use %autosetup et al. for compatibility with rpm 4.20.- bsc#1221260 add bsc1221260-test_asyncio-ResourceWarning.patch to eliminate ResourceWarning which broke the test suite in test_asyncio.- Use the system-wide crypto-policies [bsc#1211301] * Use the system default cipher list instead of hardcoded values * Add the --with-ssl-default-suites=openssl configure option- (bsc#1219666, CVE-2023-6597) Add CVE-2023-6597-TempDir-cleaning-symlink.patch (patch from gh#python/cpython!99930) fixing symlink bug in cleanup of tempfile.TemporaryDirectory.- Remove double definition of /usr/bin/idle%%{version} in %%files.- Add upstream patch libexpat260.patch, Fix tests for XMLPullParser with Expat 2.6.0, gh#python/cpython#115289- Update to 3.11.8: - Security - gh-113659: Skip .pth files with names starting with a dot or hidden file attribute. - Core and Builtins - gh-114887: Changed socket type validation in create_datagram_endpoint() to accept all non-stream sockets. This fixes a regression in compatibility with raw sockets. - gh-114388: Fix a RuntimeWarning emitted when assign an integer-like value that is not an instance of int to an attribute that corresponds to a C struct member of type T_UINT and T_ULONG. Fix a double RuntimeWarning emitted when assign a negative integer value to an attribute that corresponds to a C struct member of type T_UINT. - gh-89811: Check for a valid tp_version_tag before performing bytecode specializations that rely on this value being usable. - gh-113602: Fix an error that was causing the parser to try to overwrite existing errors and crashing in the process. Patch by Pablo Galindo - gh-113566: Fix a 3.11-specific crash when the repr of a Future is requested after the module has already been garbage-collected. - gh-106905: Use per AST-parser state rather than global state to track recursion depth within the AST parser to prevent potential race condition due to simultaneous parsing. - The issue primarily showed up in 3.11 by multithreaded users of ast.parse(). In 3.12 a change to when garbage collection can be triggered prevented the race condition from occurring. - gh-112716: Fix SystemError in the import statement and in __reduce__() methods of builtin types when __builtins__ is not a dict. - gh-105967: Workaround a bug in Apple’s macOS platform zlib library where zlib.crc32() and binascii.crc32() could produce incorrect results on multi-gigabyte inputs. Including when using zipfile on zips containing large data. - gh-94606: Fix UnicodeEncodeError when email.message.get_payload() reads a message with a Unicode surrogate character and the message content is not well-formed for surrogateescape encoding. Patch by Sidney Markowitz. - Library - gh-114965: Update bundled pip to 24.0 - gh-114959: tarfile no longer ignores errors when trying to extract a directory on top of a file. - gh-109475: Fix support of explicit option value “–” in argparse (e.g. --option=--). - gh-110190: Fix ctypes structs with array on Windows ARM64 platform by setting MAX_STRUCT_SIZE to 32 in stgdict. Patch by Diego Russo - gh-113280: Fix a leak of open socket in rare cases when error occurred in ssl.SSLSocket creation. - gh-77749: email.policy.EmailPolicy.fold() now always encodes non-ASCII characters in headers if utf8 is false. - gh-114492: Make the result of termios.tcgetattr() reproducible on Alpine Linux. Previously it could leave a random garbage in some fields. - gh-75128: Ignore an OSError in asyncio.BaseEventLoop.create_server() when IPv6 is available but the interface cannot actually support it. - gh-114257: Dismiss the FileNotFound error in ctypes.util.find_library() and just return None on Linux. - gh-101438: Avoid reference cycle in ElementTree.iterparse. The iterator returned by ElementTree.iterparse may hold on to a file descriptor. The reference cycle prevented prompt clean-up of the file descriptor if the returned iterator was not exhausted. - gh-104522: OSError raised when run a subprocess now only has filename attribute set to cwd if the error was caused by a failed attempt to change the current directory. - gh-109534: Fix a reference leak in asyncio.selector_events.BaseSelectorEventLoop when SSL handshakes fail. Patch contributed by Jamie Phan. - gh-114077: Fix possible OverflowError in socket.socket.sendfile() when pass count larger than 2 GiB on 32-bit platform. - gh-114014: Fixed a bug in fractions.Fraction where an invalid string using d in the decimals part creates a different error compared to other invalid letters/characters. Patch by Jeremiah Gabriel Pascual. - gh-113951: Fix the behavior of tag_unbind() methods of tkinter.Text and tkinter.Canvas classes with three arguments. Previously, widget.tag_unbind(tag, sequence, funcid) destroyed the current binding for sequence, leaving sequence unbound, and deleted the funcid command. Now it removes only funcid from the binding for sequence, keeping other commands, and deletes the funcid command. It leaves sequence unbound only if funcid was the last bound command. - gh-113877: Fix tkinter method winfo_pathname() on 64-bit Windows. - gh-113781: Silence unraisable AttributeError when warnings are emitted during Python finalization. - gh-113594: Fix UnicodeEncodeError in email when re-fold lines that contain unknown-8bit encoded part followed by non-unknown-8bit encoded part. - gh-113538: In asyncio.StreamReaderProtocol.connection_made(), there is callback that logs an error if the task wrapping the “connected callback” fails. This callback would itself fail if the task was cancelled. Prevent this by checking whether the task was cancelled first. If so, close the transport but don’t log an error. - gh-85567: Fix resource warnings for unclosed files in pickle and pickletools command line interfaces. - gh-101225: Increase the backlog for multiprocessing.connection.Listener objects created by multiprocessing.manager and multiprocessing.resource_sharer to significantly reduce the risk of getting a connection refused error when creating a multiprocessing.connection.Connection to them. - gh-113543: Make sure that webbrowser.MacOSXOSAScript sends webbrowser.open audit event. - gh-113028: When a second reference to a string appears in the input to pickle, and the Python implementation is in use, we are guaranteed that a single copy gets pickled and a single object is shared when reloaded. Previously, in protocol 0, when a string contained certain characters (e.g. newline) it resulted in duplicate objects. - gh-113421: Fix multiprocessing logger for %(filename)s. - gh-113358: Fix rendering tracebacks for exceptions with a broken __getattr__. - gh-113214: Fix an AttributeError during asyncio SSL protocol aborts in SSL-over-SSL scenarios. - gh-113246: Update bundled pip to 23.3.2. - gh-113199: Make http.client.HTTPResponse.read1 and http.client.HTTPResponse.readline close IO after reading all data when content length is known. Patch by Illia Volochii. - gh-113188: Fix shutil.copymode() and shutil.copystat() on Windows. Previously they worked differenly if dst is a symbolic link: they modified the permission bits of dst itself rather than the file it points to if follow_symlinks is true or src is not a symbolic link, and did not modify the permission bits if follow_symlinks is false and src is a symbolic link. - gh-61648: Detect line numbers of properties in doctests. - gh-112559: signal.signal() and signal.getsignal() no longer call repr on callable handlers. asyncio.run() and asyncio.Runner.run() no longer call repr on the task results. Patch by Yilei Yang. - gh-110190: Fix ctypes structs with array on PPC64LE platform by setting MAX_STRUCT_SIZE to 64 in stgdict. Patch by Diego Russo. - gh-79429: Ignore FileNotFoundError when remove a temporary directory in the multiprocessing finalizer. - gh-79325: Fix an infinite recursion error in tempfile.TemporaryDirectory() cleanup on Windows. - gh-110190: Fix ctypes structs with array on Arm platform by setting MAX_STRUCT_SIZE to 32 in stgdict. Patch by Diego Russo. - gh-81194: Fix a crash in socket.if_indextoname() with specific value (UINT_MAX). Fix an integer overflow in socket.if_indextoname() on 64-bit non-Windows platforms. - gh-75666: Fix the behavior of tkinter widget’s unbind() method with two arguments. Previously, widget.unbind(sequence, funcid) destroyed the current binding for sequence, leaving sequence unbound, and deleted the funcid command. Now it removes only funcid from the binding for sequence, keeping other commands, and deletes the funcid command. It leaves sequence unbound only if funcid was the last bound command. - gh-110345: Show the Tcl/Tk patchlevel (rather than version) in tkinter._test(). - gh-109858: Protect zipfile from “quoted-overlap” zipbomb. It now raises BadZipFile when try to read an entry that overlaps with other entry or central directory (bsc#1221854, CVE-2024-0450). - gh-38807: Fix race condition in trace. Instead of checking if a directory exists and creating it, directly call os.makedirs() with the kwarg exist_ok=True. - gh-75705: Set unixfrom envelope in mailbox.mbox and mailbox.MMDF. - gh-105102: Allow ctypes.Union to be nested in ctypes.Structure when the system endianness is the opposite of the classes. - gh-104282: Fix null pointer dereference in lzma._decode_filter_properties() due to improper handling of BCJ filters with properties of zero length. Patch by Radislav Chugunov. - gh-102512: When os.fork() is called from a foreign thread (aka _DummyThread), the type of the thread in a child process is changed to _MainThread. Also changed its name and daemonic status, it can be now joined. - gh-91133: Fix a bug in tempfile.TemporaryDirectory cleanup, which now no longer dereferences symlinks when working around file system permission errors. - bpo-43153: On Windows, tempfile.TemporaryDirectory previously masked a PermissionError with NotADirectoryError during directory cleanup. It now correctly raises PermissionError if errors are not ignored. Patch by Andrei Kulakov and Ken Jin. - bpo-35332: The shutil.rmtree() function now ignores errors when calling os.close() when ignore_errors is True, and os.close() no longer retried after error. - bpo-35928: io.TextIOWrapper now correctly handles the decoding buffer after read() and write(). - bpo-26791: shutil.move() now moves a symlink into a directory when that directory is the target of the symlink. This provides the same behavior as the mv shell command. The previous behavior raised an exception. Patch by Jeffrey Kintscher. - bpo-36959: Fix some error messages for invalid ISO format string combinations in strptime() that referred to directives not contained in the format string. Patch by Gordon P. Hemsley. - bpo-18060: Fixed a class inheritance issue that can cause segfaults when deriving two or more levels of subclasses from a base class of Structure or Union. - Documentation - gh-110746: Improved markup for valid options/values for methods ttk.treeview.column and ttk.treeview.heading, and for Layouts. - gh-95649: Document that the asyncio module contains code taken from v0.16.0 of the uvloop project, as well as the required MIT licensing information. - Tests - gh-109980: Fix test_tarfile_vs_tar in test_shutil for macOS, where system tar can include more information in the archive than shutil.make_archive. - gh-112769: The tests now correctly compare zlib version when zlib.ZLIB_RUNTIME_VERSION contains non-integer suffixes. For example zlib-ng defines the version as 1.3.0.zlib-ng. - gh-105089: Fix test.test_zipfile.test_core.TestWithDirectory.test_create_directory_with_write test in AIX by doing a bitwise AND of 0xFFFF on mode , so that it will be in sync with zinfo.external_attr - bpo-40648: Test modes that file can get with chmod() on Windows. - Build - gh-101778: Fix build error when there’s a dangling symlink in the directory containing ffi.h. - gh-112305: Fixed the check-clean-src step performed on out of tree builds to detect errant $(srcdir)/Python/frozen_modules/*.h files and recommend appropriate source tree cleanup steps to get a working build again. - bpo-11102: The os.major(), os.makedev(), and os.minor() functions are now available on HP-UX v3. - bpo-36351: Do not set ipv6type when cross-compiling. - IDLE - gh-96905: In idlelib code, stop redefining built-ins ‘dict’ and ‘object’. - gh-72284: Improve the lists of features, editor key bindings, and shell key bingings in the IDLE doc. - gh-113903: Fix rare failure of test.test_idle, in test_configdialog. - gh-113729: Fix the “Help -> IDLE Doc” menu bug in 3.11.7 and 3.12.1. - gh-113269: Fix test_editor hang on macOS Catalina. - gh-112898: Fix processing unsaved files when quitting IDLE on macOS. - gh-103820: Revise IDLE bindings so that events from mouse button 4/5 on non-X11 windowing systems (i.e. Win32 and Aqua) are not mistaken for scrolling. - bpo-13586: Enter the selected text when opening the “Replace” dialog. - Tools/Demos - gh-109991: Update GitHub CI workflows to use OpenSSL 3.0.13 and multissltests to use 1.1.1w, 3.0.13, 3.1.5, and 3.2.1. - gh-115015: Fix a bug in Argument Clinic that generated incorrect code for methods with no parameters that use the METH_METHOD | METH_FASTCALL | METH_KEYWORDS calling convention. Only the positional parameter count was checked; any keyword argument passed would be silently accepted. - Refresh all patches: - CVE-2023-27043-email-parsing-errors.patch - F00251-change-user-install-location.patch - bpo-31046_ensurepip_honours_prefix.patch - distutils-reproducible-compile.patch - fix_configure_rst.patch - python-3.3.0b1-fix_date_time_compiler.patch - python-3.3.0b1-localpath.patch - python-3.3.0b1-test-posix_fadvise.patch - skip_if_buildbot-extend.patch - subprocess-raise-timeout.patch - support-expat-CVE-2022-25236-patched.patch- Update patch fix_configure_rst.patch - Update to 3.11.7: - Core and Builtins - gh-112625: Fixes a bug where a bytearray object could be cleared while iterating over an argument in the bytearray.join() method that could result in reading memory after it was freed. - gh-112388: Fix an error that was causing the parser to try to overwrite tokenizer errors. Patch by pablo Galindo - gh-112387: Fix error positions for decoded strings with backwards tokenize errors. Patch by Pablo Galindo - gh-112266: Change docstrings of __dict__ and __weakref__. - gh-109181: Speed up Traceback object creation by lazily compute the line number. Patch by Pablo Galindo - gh-102388: Fix a bug where iso2022_jp_3 and iso2022_jp_2004 codecs read out of bounds - gh-111366: Fix an issue in the codeop that was causing SyntaxError exceptions raised in the presence of invalid syntax to not contain precise error messages. Patch by Pablo Galindo - gh-111380: Fix a bug that was causing SyntaxWarning to appear twice when parsing if invalid syntax is encountered later. Patch by Pablo galindo - gh-88116: Traceback location ranges involving wide unicode characters (like emoji and asian characters) now are properly highlighted. Patch by Batuhan Taskaya and Pablo Galindo. - gh-94438: Fix a regression that prevented jumping across is None and is not None when debugging. Patch by Savannah Ostrowski. - gh-110696: Fix incorrect error message for invalid argument unpacking. Patch by Pablo Galindo - gh-110237: Fix missing error checks for calls to PyList_Append in _PyEval_MatchClass. - gh-109216: Fix possible memory leak in BUILD_MAP. - Library - gh-112618: Fix a caching bug relating to typing.Annotated. Annotated[str, True] is no longer identical to Annotated[str, 1]. - gh-112509: Fix edge cases that could cause a key to be present in both the __required_keys__ and __optional_keys__ attributes of a typing.TypedDict. Patch by Jelle Zijlstra. - gh-94722: Fix bug where comparison between instances of DocTest fails if one of them has None as its lineno. - gh-112105: Make readline.set_completer_delims() work with libedit - gh-111942: Fix SystemError in the TextIOWrapper constructor with non-encodable “errors” argument in non-debug mode. - gh-109538: Issue warning message instead of having RuntimeError be displayed when event loop has already been closed at StreamWriter.__del__(). - gh-111942: Fix crashes in io.TextIOWrapper.reconfigure() when pass invalid arguments, e.g. non-string encoding. - gh-111804: Remove posix.fallocate() under WASI as the underlying posix_fallocate() is not available in WASI preview2. - gh-111841: Fix truncating arguments on an embedded null character in os.putenv() and os.unsetenv() on Windows. - gh-111541: Fix doctest for SyntaxError not-builtin subclasses. - gh-110894: Call loop exception handler for exceptions in client_connected_cb of asyncio.start_server() so that applications can handle it. Patch by Kumar Aditya. - gh-111531: Fix reference leaks in bind_class() and bind_all() methods of tkinter widgets. - gh-111356: Added io.text_encoding(), io.DEFAULT_BUFFER_SIZE, and io.IncrementalNewlineDecoder to io.__all__. - gh-68166: Remove mention of not supported “vsapi” element type in tkinter.ttk.Style.element_create(). Add tests for element_create() and other ttk.Style methods. Add examples for element_create() in the documentation. - gh-111251: Fix _blake2 not checking for errors when initializing. - gh-111174: Fix crash in io.BytesIO.getbuffer() called repeatedly for empty BytesIO. - gh-111187: Postpone removal version for locale.getdefaultlocale() to Python 3.15. - gh-111159: Fix doctest output comparison for exceptions with notes. - gh-110910: Fix invalid state handling in asyncio.TaskGroup and asyncio.Timeout. They now raise proper RuntimeError if they are improperly used and are left in consistent state after this. - gh-111092: Make turtledemo run without default root enabled. - gh-110590: Fix a bug in _sre.compile() where TypeError would be overwritten by OverflowError when the code argument was a list of non-ints. - gh-65052: Prevent pdb from crashing when trying to display undisplayable objects - gh-110519: Deprecation warning about non-integer number in gettext now alwais refers to the line in the user code where gettext function or method is used. Previously it could refer to a line in gettext code. - gh-110378: contextmanager() and asynccontextmanager() context managers now close an invalid underlying generator object that yields more then one value. - gh-110365: Fix termios.tcsetattr() bug that was overwritting existing errors during parsing integers from term list. - gh-110196: Add __reduce__ method to IPv6Address in order to keep scope_id - gh-109747: Improve errors for unsupported look-behind patterns. Now re.error is raised instead of OverflowError or RuntimeError for too large width of look-behind pattern. - gh-109786: Fix possible reference leaks and crash when re-enter the __next__() method of itertools.pairwise. - gh-108791: Improved error handling in pdb command line interface, making it produce more concise error messages. - gh-73561: Omit the interface scope from an IPv6 address when used as Host header by http.client. - gh-86826: zipinfo now supports the full range of values in the TZ string determined by RFC 8536 and detects all invalid formats. Both Python and C implementations now raise exceptions of the same type on invalid data. - bpo-41422: Fixed memory leaks of pickle.Pickler and pickle.Unpickler involving cyclic references via the internal memo mapping. - bpo-40262: The ssl.SSLSocket.recv_into() method no longer requires the buffer argument to implement __len__ and supports buffers with arbitrary item size. - bpo-35191: Fix unexpected integer truncation in socket.setblocking() which caused it to interpret multiples of 2**32 as False. - Documentation - gh-108826: dis module command-line interface is now mentioned in documentation. - Tests - gh-110367: Make regrtest --verbose3 option compatible with - -huntrleaks -jN options. The ./python -m test -j1 -R 3:3 - -verbose3 command now works as expected. Patch by Victor Stinner. - gh-111309: distutils tests can now be run via unittest. - gh-111165: Remove no longer used functions run_unittest() and run_doctest() and class BasicTestRunner from the test.support module. - gh-110932: Fix regrtest if the SOURCE_DATE_EPOCH environment variable is defined: use the variable value as the random seed. Patch by Victor Stinner. - gh-110995: test_gdb: Fix detection of gdb built without Python scripting support. Patch by Victor Stinner. - gh-110918: Test case matching patterns specified by options - -match, --ignore, --matchfile and --ignorefile are now tested in the order of specification, and the last match determines whether the test case be run or ignored. - gh-110647: Fix test_stress_modifying_handlers() of test_signal. Patch by Victor Stinner. - gh-103053: Fix test_tools.test_freeze on FreeBSD: run “make distclean” instead of “make clean” in the copied source directory to remove also the “python” program. Patch by Victor Stinner. - gh-110167: Fix a deadlock in test_socket when server fails with a timeout but the client is still running in its thread. Don’t hold a lock to call cleanup functions in doCleanups(). One of the cleanup function waits until the client completes, whereas the client could deadlock if it called addCleanup() in such situation. Patch by Victor Stinner. - gh-110388: Add tests for tty. - gh-81002: Add tests for termios. - gh-110267: Add tests for pickling and copying PyStructSequence objects. Patched by Xuehai Pan. - gh-109974: Fix race conditions in test_threading lock tests. Wait until a condition is met rather than using time.sleep() with a hardcoded number of seconds. Patch by Victor Stinner. - gh-109972: Split test_gdb.py file into a test_gdb package made of multiple tests, so tests can now be run in parallel. Patch by Victor Stinner. - gh-104736: Fix test_gdb on Python built with LLVM clang 16 on Linux ppc64le (ex: Fedora 38). Search patterns in gdb “bt” command output to detect when gdb fails to retrieve the traceback. For example, skip a test if Backtrace stopped: frame did not save the PC is found. Patch by Victor Stinner. - gh-108927: Fixed order dependence in running tests in the same process when a test that has submodules (e.g. test_importlib) follows a test that imports its submodule (e.g. test_importlib.util) and precedes a test (e.g. test_unittest or test_compileall) that uses that submodule. - Build - gh-103053: “make check-clean-src” now also checks if the “python” program is found in the source directory: fail with an error if it does exist. Patch by Victor Stinner. - gh-109191: Fix compile error when building with recent versions of libedit. - IDLE - bpo-35668: Add docstrings to the IDLE debugger module. Fix two bugs: initialize Idb.botframe (should be in Bdb); in Idb.in_rpc_code, check whether prev_frame is None before trying to use it. Greatly expand test_debugger. - C API - gh-112438: Fix support of format units “es”, “et”, “es#”, and “et#” in nested tuples in PyArg_ParseTuple()-like functions. - gh-109521: PyImport_GetImporter() now sets RuntimeError if it fails to get sys.path_hooks or sys.path_importer_cache or they are not list and dict correspondingly. Previously it could return NULL without setting error in obscure cases, crash or raise SystemError if these attributes have wrong type.- Refresh CVE-2023-27043-email-parsing-errors.patch to gh#python/cpython!111116, fixing bsc#1210638 (CVE-2023-27043). - Thus we can remove Revert-gh105127-left-tests.patch, which is now useless.- Remove not needed patch 103213-fetch-CONFIG_ARGS.patch - Refresh patches: - bpo-31046_ensurepip_honours_prefix.patch - fix_configure_rst.patch - Update to 3.11.6: - Core and Builtins - gh-109351: Fix crash when compiling an invalid AST involving a named (walrus) expression. - gh-109207: Fix a SystemError in __repr__ of symtable entry object. - gh-109179: Fix bug where the C traceback display drops notes from SyntaxError. - gh-88943: Improve syntax error for non-ASCII character that follows a numerical literal. It now points on the invalid non-ASCII character, not on the valid numerical literal. - gh-108959: Fix caret placement for error locations for subscript and binary operations that involve non-semantic parentheses and spaces. Patch by Pablo Galindo - gh-108520: Fix multiprocessing.synchronize.SemLock.__setstate__() to properly initialize multiprocessing.synchronize.SemLock._is_fork_ctx. This fixes a regression when passing a SemLock accross nested processes. - Rename multiprocessing.synchronize.SemLock.is_fork_ctx to multiprocessing.synchronize.SemLock._is_fork_ctx to avoid exposing it as public API. - Library - gh-110036: On Windows, multiprocessing Popen.terminate() now catchs PermissionError and get the process exit code. If the process is still running, raise again the PermissionError. Otherwise, the process terminated as expected: store its exit code. Patch by Victor Stinner. - gh-110038: Fixed an issue that caused KqueueSelector.select() to not return all the ready events in some cases when a file descriptor is registered for both read and write. - gh-109631: re functions such as re.findall(), re.split(), re.search() and re.sub() which perform short repeated matches can now be interrupted by user. - gh-109593: Avoid deadlocking on a reentrant call to the multiprocessing resource tracker. Such a reentrant call, though unlikely, can happen if a GC pass invokes the finalizer for a multiprocessing object such as SemLock. - gh-109613: Fix os.stat() and os.DirEntry.stat(): check for exceptions. Previously, on Python built in debug mode, these functions could trigger a fatal Python error (and abort the process) when a function succeeded with an exception set. Patch by Victor Stinner. - gh-109375: The pdb alias command now prevents registering aliases without arguments. - gh-107219: Fix a race condition in concurrent.futures. When a process in the process pool was terminated abruptly (while the future was running or pending), close the connection write end. If the call queue is blocked on sending bytes to a worker process, closing the connection write end interrupts the send, so the queue can be closed. Patch by Victor Stinner. - gh-50644: Attempts to pickle or create a shallow or deep copy of codecs streams now raise a TypeError. Previously, copying failed with a RecursionError, while pickling produced wrong results that eventually caused unpickling to fail with a RecursionError. - gh-108987: Fix _thread.start_new_thread() race condition. If a thread is created during Python finalization, the newly spawned thread now exits immediately instead of trying to access freed memory and lead to a crash. Patch by Victor Stinner. - gh-108843: Fix an issue in ast.unparse() when unparsing f-strings containing many quote types. - gh-108682: Enum: raise TypeError if super().__new__() is called from a custom __new__. - gh-105829: Fix concurrent.futures.ProcessPoolExecutor deadlock - gh-64662: Fix support for virtual tables in sqlite3.Connection.iterdump(). Patch by Aviv Palivoda. - gh-107913: Fix possible losses of errno and winerror values in OSError exceptions if they were cleared or modified by the cleanup code before creating the exception object. - gh-104372: On Linux where subprocess can use the vfork() syscall for faster spawning, prevent the parent process from blocking other threads by dropping the GIL while it waits for the vfork’ed child process exec() outcome. This prevents spawning a binary from a slow filesystem from blocking the rest of the application. - gh-84867: unittest.TestLoader no longer loads test cases from exact unittest.TestCase and unittest.FunctionTestCase classes. - Documentation - gh-109209: The minimum Sphinx version required for the documentation is now 4.2. - gh-105052: Update timeit doc to specify that time in seconds is just the default. - gh-102823: Document the return type of x // y when x and y have type float. - Tests - gh-110031: Skip test_threading tests using thread+fork if Python is built with Address Sanitizer (ASAN). Patch by Victor Stinner. - gh-110088: Fix test_asyncio timeouts: don’t measure the maximum duration, a test should not measure a CI performance. Only measure the minimum duration when a task has a timeout or delay. Add CLOCK_RES to test_asyncio.utils. Patch by Victor Stinner. - gh-110033: Fix test_interprocess_signal() of test_signal. Make sure that the subprocess.Popen object is deleted before the test raising an exception in a signal handler. Otherwise, Popen.__del__() can get the exception which is logged as Exception ignored in: ... and the test fails. Patch by Victor Stinner. - gh-109594: Fix test_timeout() of test_concurrent_futures.test_wait. Remove the future which may or may not complete depending if it takes longer than the timeout ot not. Keep the second future which does not complete before wait() timeout. Patch by Victor Stinner. - gh-109748: Fix test_zippath_from_non_installed_posix() of test_venv: don’t copy __pycache__/ sub-directories, because they can be modified by other Python tests running in parallel. Patch by Victor Stinner. - gh-103053: Skip test_freeze_simple_script() of test_tools.test_freeze if Python is built with ./configure - -enable-optimizations, which means with Profile Guided Optimization (PGO): it just makes the test too slow. The freeze tool is tested by many other CIs with other (faster) compiler flags. Patch by Victor Stinner. - gh-109396: Fix test_socket.test_hmac_sha1() in FIPS mode. Use a longer key: FIPS mode requires at least of at least 112 bits. The previous key was only 32 bits. Patch by Victor Stinner. - gh-104736: Fix test_gdb on Python built with LLVM clang 16 on Linux ppc64le (ex: Fedora 38). Search patterns in gdb “bt” command output to detect when gdb fails to retrieve the traceback. For example, skip a test if Backtrace stopped: frame did not save the PC is found. Patch by Victor Stinner. - gh-109237: Fix test_site.test_underpth_basic() when the working directory contains at least one non-ASCII character: encode the ._pth file to UTF-8 and enable the UTF-8 Mode to use UTF-8 for the child process stdout. Patch by Victor Stinner. - gh-109230: Fix test_pyexpat.test_exception(): it can now be run from a directory different than Python source code directory. Before, the test failed in this case. Skip the test if Modules/pyexpat.c source is not available. Skip also the test on Python implementations other than CPython. Patch by Victor Stinner. - gh-109015: Fix test_asyncio, test_imaplib and test_socket tests on FreeBSD if the TCP blackhole is enabled (sysctl net.inet.tcp.blackhole). Skip the few tests which failed with ETIMEDOUT which such non standard configuration. Currently, the FreeBSD GCP image enables TCP and UDP blackhole (sysctl net.inet.tcp.blackhole=2 and sysctl net.inet.udp.blackhole=1). Patch by Victor Stinner. - gh-91960: Skip test_gdb if gdb is unable to retrieve Python frame objects: if a frame is . When Python is built with “clang -Og”, gdb can fail to retrive the frame parameter of _PyEval_EvalFrameDefault(). In this case, tests like py_bt() are likely to fail. Without getting access to Python frames, python-gdb.py is mostly clueless on retrieving the Python traceback. Moreover, test_gdb is no longer skipped on macOS if Python is built with Clang. Patch by Victor Stinner. - gh-108962: Skip test_tempfile.test_flags() if chflags() fails with “OSError: [Errno 45] Operation not supported” (ex: on FreeBSD 13). Patch by Victor Stinner. - gh-89392: Removed support of test_main() function in tests. They now always use normal unittest test runner. - gh-108851: Fix test_tomllib recursion tests for WASI buildbots: reduce the recursion limit and compute the maximum nested array/dict depending on the current available recursion limit. Patch by Victor Stinner. - gh-108851: Add get_recursion_available() and get_recursion_depth() functions to the test.support module. Patch by Victor Stinner. - gh-108822: regrtest now computes statistics on all tests: successes, failures and skipped. test_netrc, test_pep646_syntax and test_xml_etree now return results in their test_main() function. Patch by Victor Stinner and Alex Waygood. - gh-108388: Convert test_concurrent_futures to a package of 7 sub-tests. Patch by Victor Stinner. - gh-108388: Split test_multiprocessing_fork, test_multiprocessing_forkserver and test_multiprocessing_spawn into test packages. Each package is made of 4 sub-tests: processes, threads, manager and misc. It allows running more tests in parallel and so reduce the total test duration. Patch by Victor Stinner. - gh-101634: When running the Python test suite with -jN option, if a worker stdout cannot be decoded from the locale encoding report a failed testn so the exitcode is non-zero. Patch by Victor Stinner. - gh-100086: The Python test runner (libregrtest) now logs Python build information like “debug” vs “release” build, or LTO and PGO optimizations. Patch by Victor Stinner. - gh-98903: The Python test suite now fails wit exit code 4 if no tests ran. It should help detecting typos in test names and test methods. - gh-95027: On Windows, when the Python test suite is run with the - jN option, the ANSI code page is now used as the encoding for the stdout temporary file, rather than using UTF-8 which can lead to decoding errors. Patch by Victor Stinner. - gh-93353: regrtest now checks if a test leaks temporary files or directories if run with -jN option. Patch by Victor Stinner. - Build - gh-63760: Fix Solaris build: no longer redefine the gethostname() function. Solaris defines the function since 2005. Patch by Victor Stinner, original patch by Jakub Kulík. - gh-108740: Fix a race condition in make regen-all. The deepfreeze.c source and files generated by Argument Clinic are now generated or updated before generating “global objects”. Previously, some identifiers may miss depending on the order in which these files were generated. Patch by Victor Stinner. - Windows - gh-109991: Update Windows build to use OpenSSL 3.0.11. - gh-107565: Update Windows build to use OpenSSL 3.0.10. - macOS - gh-109991: Update macOS installer to use OpenSSL 3.0.11. - Tools/Demos - gh-109991: Update GitHub CI workflows to use OpenSSL 3.0.11 and multissltests to use 1.1.1w, 3.0.11, and 3.1.3.- Update to 3.11.5 (bsc#1214692): - Security - gh-108310: Fixed an issue where instances of ssl.SSLSocket were vulnerable to a bypass of the TLS handshake and included protections (like certificate verification) and treating sent unencrypted data as if it were post-handshake TLS encrypted data. Security issue reported as CVE-2023-40217 by Aapo Oksman. Patch by Gregory P. Smith. - Core and Builtins - gh-104432: Fix potential unaligned memory access on C APIs involving returned sequences of char * pointers within the grp and socket modules. These were revealed using a - fsaniziter=alignment build on ARM macOS. Patch by Christopher Chavez. - gh-77377: Ensure that multiprocessing synchronization objects created in a fork context are not sent to a different process created in a spawn context. This changes a segfault into an actionable RuntimeError in the parent process. - gh-106092: Fix a segmentation fault caused by a use-after-free bug in frame_dealloc when the trashcan delays the deallocation of a PyFrameObject. - gh-106719: No longer suppress arbitrary errors in the __annotations__ getter and setter in the type and module types. - gh-106723: Propagate frozen_modules to multiprocessing spawned process interpreters. - gh-105979: Fix crash in _imp.get_frozen_object() due to improper exception handling. - gh-105840: Fix possible crashes when specializing function calls with too many __defaults__. - gh-105588: Fix an issue that could result in crashes when compiling malformed ast nodes. - gh-105375: Fix bugs in the builtins module where exceptions could end up being overwritten. - gh-105375: Fix bug in the compiler where an exception could end up being overwritten. - gh-105375: Improve error handling in PyUnicode_BuildEncodingMap() where an exception could end up being overwritten. - gh-105235: Prevent out-of-bounds memory access during mmap.find() calls. - gh-101006: Improve error handling when read marshal data. - Library - gh-105736: Harmonized the pure Python version of OrderedDict with the C version. Now, both versions set up their internal state in __new__. Formerly, the pure Python version did the set up in __init__. - gh-107963: Fix multiprocessing.set_forkserver_preload() to check the given list of modules names. Patch by Dong-hee Na. - gh-106242: Fixes os.path.normpath() to handle embedded null characters without truncating the path (bsc#1214693, CVE-2023-41105). - gh-107845: tarfile.data_filter() now takes the location of symlinks into account when determining their target, so it will no longer reject some valid tarballs with LinkOutsideDestinationError. - gh-107715: Fix doctest.DocTestFinder.find() in presence of class names with special characters. Patch by Gertjan van Zwieten. - gh-100814: Passing a callable object as an option value to a Tkinter image now raises the expected TclError instead of an AttributeError. - gh-106684: Close asyncio.StreamWriter when it is not closed by application leading to memory leaks. Patch by Kumar Aditya. - gh-107077: Seems that in some conditions, OpenSSL will return SSL_ERROR_SYSCALL instead of SSL_ERROR_SSL when a certification verification has failed, but the error parameters will still contain ERR_LIB_SSL and SSL_R_CERTIFICATE_VERIFY_FAILED. We are now detecting this situation and raising the appropiate ssl.SSLCertVerificationError. Patch by Pablo Galindo - gh-107396: tarfiles; Fixed use before assignment of self.exception for gzip decompression - gh-62519: Make gettext.pgettext() search plural definitions when translation is not found. - gh-83006: Document behavior of shutil.disk_usage() for non-mounted filesystems on Unix. - gh-106186: Do not report MultipartInvariantViolationDefect defect when the email.parser.Parser class is used to parse emails with headersonly=True. - gh-106831: Fix potential missing NULL check of d2i_SSL_SESSION result in _ssl.c. - gh-106774: Update the bundled copy of pip to version 23.2.1. - gh-106752: Fixed several bug in zipfile.Path in name/suffix/suffixes/stem operations when no filename is present and the Path is not at the root of the zipfile. - gh-106602: Add __copy__ and __deepcopy__ in enum - gh-106530: Revert a change to colorsys.rgb_to_hls() that caused division by zero for certain almost-white inputs. Patch by Terry Jan Reedy. - gh-106052: re module: fix the matching of possessive quantifiers in the case of a subpattern containing backtracking. - gh-106510: Improve debug output for atomic groups in regular expressions. - gh-105497: Fix flag mask inversion when unnamed flags exist. - gh-90876: Prevent multiprocessing.spawn from failing to import in environments where sys.executable is None. This regressed in 3.11 with the addition of support for path-like objects in multiprocessing. - gh-106350: Detect possible memory allocation failure in the libtommath function mp_init() used by the _tkinter module. - gh-102541: Make pydoc.doc catch bad module ImportError when output stream is not None. - gh-106263: Fix crash when calling repr with a manually constructed SignalDict object. Patch by Charlie Zhao. - gh-105375: Fix a bug in _Unpickler_SetInputStream() where an exception could end up being overwritten in case of failure. - gh-105375: Fix bugs in sys where exceptions could end up being overwritten because of deferred error handling. - gh-105605: Harden pyexpat error handling during module initialisation to prevent exceptions from possibly being overwritten, and objects from being dereferenced twice. - gh-105375: Fix bug in decimal where an exception could end up being overwritten. - gh-105375: Fix bugs in _datetime where exceptions could be overwritten in case of module initialisation failure. - gh-105375: Fix bugs in _ssl initialisation which could lead to leaked references and overwritten exceptions. - gh-105375: Fix a bug in array.array where an exception could end up being overwritten. - gh-105375: Fix bugs in _ctypes where exceptions could end up being overwritten. - gh-105375: Fix a bug in the posix module where an exception could be overwritten. - gh-105375: Fix bugs in _elementtree where exceptions could be overwritten. - gh-105375: Fix bugs in zoneinfo where exceptions could be overwritten. - gh-105375: Fix bugs in pickle where exceptions could be overwritten. - gh-105497: Fix flag inversion when alias/mask members exist. - gh-105375: Fix bugs in pickle where exceptions could be overwritten. - gh-103171: Revert undocumented behaviour change with runtime-checkable protocols decorated with typing.final() in Python 3.11. The behaviour change had meant that objects would not be considered instances of these protocols at runtime unless they had a __final__ attribute. Patch by Alex Waygood. - gh-105375: Fix a bug in sqlite3 where an exception could be overwritten in the collation callback. - gh-105332: Revert pickling method from by-name back to by-value. - gh-104554: Add RTSPS scheme support in urllib.parse - gh-100061: Fix a bug that causes wrong matches for regular expressions with possessive qualifier. - gh-102541: Hide traceback in help() prompt, when import failed. - gh-99203: Restore following CPython <= 3.10.5 behavior of shutil.make_archive(): do not create an empty archive if root_dir is not a directory, and, in that case, raise FileNotFoundError or NotADirectoryError regardless of format choice. Beyond the brought-back behavior, the function may now also raise these exceptions in dry_run mode. - gh-94777: Fix hanging multiprocessing ProcessPoolExecutor when a child process crashes while data is being written in the call queue. - bpo-18319: Ensure gettext(msg) retrieve translations even if a plural form exists. In other words: gettext(msg) == ngettext(msg, '', 1). - Documentation - gh-107008: Document the curses module variables LINES and COLS. - gh-106948: Add a number of standard external names to nitpick_ignore. - gh-54738: Add documentation on how to localize the argparse module. - Tests - gh-105776: Fix test_cppext when the C compiler command -std=c11 option: remove -std= options from the compiler command. Patch by Victor Stinner. - gh-107237: test_logging: Fix test_udp_reconnection() by increasing the timeout from 100 ms to 5 minutes (LONG_TIMEOUT). Patch by Victor Stinner. - gh-101634: When running the Python test suite with -jN option, if a worker stdout cannot be decoded from the locale encoding report a failed testn so the exitcode is non-zero. Patch by Victor Stinner. - Build - gh-107814: When calling find_python.bat with -q it did not properly silence the output of nuget. That is now fixed. - gh-106881: Check for linux/limits.h before including it in Modules/posixmodule.c. - gh-104692: Include commoninstall as a prerequisite for bininstall - This ensures that commoninstall is completed before bininstall is started when parallel builds are used (make -j install), and so the python3 symlink is only installed after all standard library modules are installed. - gh-100340: Allows -Wno-int-conversion for wasm-sdk 17 and onwards, thus enables building WASI builds once against the latest sdk. - Windows - gh-106242: Fixes realpath() to behave consistently when passed a path containing an embedded null character on Windows. In strict mode, it now raises OSError instead of the unexpected ValueError, and in non-strict mode will make the path absolute. - gh-106844: Fix integer overflow in _winapi.LCMapStringEx() which affects ntpath.normcase(). - gh-99079: Update Windows build to use OpenSSL 3.0.9 - gh-105436: Ensure that an empty environment block is terminated by two null characters, as is required by Windows. - macOS - gh-107565: Update macOS installer to use OpenSSL 3.0.10. - gh-99079: Update macOS installer to use OpenSSL 3.0.9. - Tools/Demos - gh-107565: Update multissltests and GitHub CI workflows to use OpenSSL 1.1.1v, 3.0.10, and 3.1.2. - gh-95065: Argument Clinic now supports overriding automatically generated signature by using directive @text_signature. See How to override the generated signature. - gh-106970: Fix bugs in the Argument Clinic destination clear command; the destination buffers would never be cleared, and the destination directive parser would simply continue to the fault handler after processing the command. Patch by Erlend E. Aasland. - C API - gh-107916: C API functions PyErr_SetFromErrnoWithFilename(), PyErr_SetExcFromWindowsErrWithFilename() and PyErr_SetFromWindowsErrWithFilename() save now the error code before calling PyUnicode_DecodeFSDefault(). - gh-107915: Such C API functions as PyErr_SetString(), PyErr_Format(), PyErr_SetFromErrnoWithFilename() and many others no longer crash or ignore errors if it failed to format the error message or decode the filename. Instead, they keep a corresponding error. - gh-107226: PyModule_AddObjectRef() is now only available in the limited API version 3.10 or later. - gh-105375: Fix a bug in PyErr_WarnExplicit() where an exception could end up being overwritten if the API failed internally. - gh-99612: Fix PyUnicode_DecodeUTF8Stateful() for ASCII-only data: *consumed was not set.- restrict PEP668 to ALP/Tumbleweed- add externally_managed.in to label this build as PEP-668 managed- IT MEANS THAT bsc#1210638 STILL HAS NOT BEEN FIXED! - Add Revert-gh105127-left-tests.patch (gh#python/cpython!106941) partially reverting CVE-2023-27043-email-parsing-errors.patch, because of the regression in gh#python/cpython#106669. - (bsc#1210638, CVE-2023-27043) Add CVE-2023-27043-email-parsing-errors.patch, which detects email address parsing errors and returns empty tuple to indicate the parsing error (old API). (The patch is faulty, gh#python/cpython#106669, but upstream decided not to just revert it).- Update to Python 3.11.4: - gh-103142: The version of OpenSSL used in Windows and Mac installers has been upgraded to 1.1.1u to address CVE-2023-2650, CVE-2023-0465, CVE-2023-0466, CVE-2023-0464, as well as CVE-2023-0286, CVE-2022-4303, and CVE-2022-4303 fixed previously in 1.1.1t (gh-101727). - gh-102153: urllib.parse.urlsplit() now strips leading C0 control and space characters following the specification for URLs defined by WHATWG in response to CVE-2023-24329 (bsc#1208471). - gh-99889: Fixed a security in flaw in uu.decode() that could allow for directory traversal based on the input if no out_file was specified. - gh-104049: Do not expose the local on-disk location in directory indexes produced by http.client.SimpleHTTPRequestHandler. - gh-103935: trace.__main__ now uses io.open_code() for files to be executed instead of raw open(). - gh-102953: The extraction methods in tarfile, and shutil.unpack_archive(), have a new filter argument that allows limiting tar features than may be surprising or dangerous, such as creating files outside the destination directory. See Extraction filters for details (fixing CVE-2007-4559, bsc#1203750). - Remove upstreamed patches: - CVE-2007-4559-filter-tarfile_extractall.patch- Remove obsolete_python_versioned macro again. This mechanism has no business to be in Python 3.11, because we have abolished with it whole interpreter+setuptools+pip product. Python 3.11 should not be replaced by later versions anymore.- Add 103213-fetch-CONFIG_ARGS.patch (gh#python/cpython#103053). - Add skip_if_buildbot-extend.patch to avoid the bug altogether (extending what skip_if_buildbot covers). - Add CVE-2007-4559-filter-tarfile_extractall.patch to fix bsc#1203750 (CVE-2007-4559) and implementing "PEP 706 – Filter for tarfile.extractall".- Update to 3.11.3: - Security - gh-101727: Updated the OpenSSL version used in Windows and macOS binary release builds to 1.1.1t to address CVE-2023-0286, CVE-2022-4303, and CVE-2022-4303 per the OpenSSL 2023-02-07 security advisory. - Core and Builtins - gh-101975: Fixed stacktop value on tracing entries to avoid corruption on garbage collection. - gh-102701: Fix overflow when creating very large dict. - gh-102416: Do not memoize incorrectly automatically generated loop rules in the parser. Patch by Pablo Galindo. - gh-102356: Fix a bug that caused a crash when deallocating deeply nested filter objects. Patch by Marta Gómez Macías. - gh-102397: Fix segfault from race condition in signal handling during garbage collection. Patch by Kumar Aditya. - gh-102281: Fix potential nullptr dereference and use of uninitialized memory in fileutils. Patch by Max Bachmann. - gh-102126: Fix deadlock at shutdown when clearing thread states if any finalizer tries to acquire the runtime head lock. Patch by Kumar Aditya. - gh-102027: Fix SSE2 and SSE3 detection in _blake2 internal module. Patch by Max Bachmann. - gh-101967: Fix possible segfault in positional_only_passed_as_keyword function, when new list created. - gh-101765: Fix SystemError / segmentation fault in iter __reduce__ when internal access of builtins.__dict__ keys mutates the iter object. - gh-101696: Invalidate type version tag in _PyStaticType_Dealloc for static types, avoiding bug where a false cache hit could crash the interpreter. Patch by Kumar Aditya. - Library - gh-102549: Don’t ignore exceptions in member type creation. - gh-102947: Improve traceback when dataclasses.fields() is called on a non-dataclass. Patch by Alex Waygood - gh-102780: The asyncio.Timeout context manager now works reliably even when performing cleanup due to task cancellation. Previously it could raise a CancelledError instead of an TimeoutError in such cases. - gh-88965: typing: Fix a bug relating to substitution in . Pacustom classes generic over a ParamSpec. Previously, if . Pathe ParamSpec was substituted with a parameters list that . Paitself contained a TypeVar, the TypeVar in the parameters . Palist could not be subsequently substituted. This is now . Pafixed tch by Nikita Sobolev . - gh-101979: Fix a bug where parentheses in the metavar argument to argparse.ArgumentParser.add_argument() were dropped. Patch by Yeojin Kim. - gh-102179: Fix os.dup2() error message for negative fds. - gh-101961: For the binary mode, fileinput.hookcompressed() doesn’t set the encoding value even if the value is None. Patch by Gihwan Kim. - gh-101936: The default value of fp becomes io.BytesIO if HTTPError is initialized without a designated fp parameter. Patch by Long Vo. - gh-102069: Fix __weakref__ descriptor generation for custom dataclasses. - gh-101566: In zipfile, apply fix for extractall on the underlying zipfile after being wrapped in Path. - gh-101892: Callable iterators no longer raise SystemError when the callable object exhausts the iterator but forgets to either return a sentinel value or raise StopIteration. - gh-97786: Fix potential undefined behaviour in corner cases of floating-point-to-time conversions. - gh-101517: Fixed bug where bdb looks up the source line with linecache with a lineno=None, which causes it to fail with an unhandled exception. - gh-101673: Fix a pdb bug where ll clears the changes to local variables. - gh-96931: Fix incorrect results from ssl.SSLSocket.shared_ciphers() - gh-88233: Correctly preserve “extra” fields in zipfile regardless of their ordering relative to a zip64 “extra.” - gh-96127: inspect.signature was raising TypeError on call with mock objects. Now it correctly returns (*args, * *kwargs) as infered signature. - gh-95495: When built against OpenSSL 3.0, the ssl module had a bug where it reported unauthenticated EOFs (i.e. without close_notify) as a clean TLS-level EOF. It now raises SSLEOFError, matching the behavior in previous versions of OpenSSL. The options attribute on SSLContext also no longer includes OP_IGNORE_UNEXPECTED_EOF by default. This option may be set to specify the previous OpenSSL 3.0 behavior. - gh-94440: Fix a concurrent.futures.process bug where ProcessPoolExecutor shutdown could hang after a future has been quickly submitted and canceled. - Documentation - gh-103112: Add docstring to http.client.HTTPResponse.read() to fix pydoc output. - gh-85417: Update cmath documentation to clarify behaviour on branch cuts. - gh-97725: Fix asyncio.Task.print_stack() description for file=None. Patch by Oleg Iarygin. - Tests - gh-102980: Improve test coverage on pdb. - gh-102537: Adjust the error handling strategy in test_zoneinfo.TzPathTest.python_tzpath_context. Patch by Paul Ganssle. - gh-89792: test_tools now copies up to 10x less source data to a temporary directory during the freeze test by ignoring git metadata and other artifacts. It also limits its python build parallelism based on os.cpu_count instead of hard coding it as 8 cores. - gh-101377: Improved test_locale_calendar_formatweekday of calendar. - Build - gh-102711: Fix -Wstrict-prototypes compiler warnings.- Update to 3.11.2: Bug fixes, no changes in API and no security bugs.- Add python310 Obsoletes line to obsolete_python_versioned macro.- Add provides for readline and sqlite3 to the main Python package.- Disable NIS for new products, it's deprecated and gets removed- build GLIBC hwcaps optimized versions of the interpreter- Don't fail on Sphinx build warnings. - For jsc#PED-1570, jsc#PED-2217 and jsc#PED-68, providing Python 3.11 for SLE-15-SP4.- Update to 3.11.1: - python -m http.server no longer allows terminal control characters sent within a garbage request to be printed to the stderr server lo This is done by changing the http.server BaseHTTPRequestHandler .log_message method to replace control characters with a \xHH hex escape before printin - Avoid publishing list of active per-interpreter audit hooks via the gc module - The IDNA codec decoder used on DNS hostnames by socket or asyncio related name resolution functions no longer involves a quadratic algorithm. This prevents a potential CPU denial of service if an out-of-spec excessive length hostname involving bidirectional characters were decoded. Some protocols such as urllib http 3xx redirects potentially allow for an attacker to supply such a name (CVE-2022-45061). - Update bundled libexpat to 2.5.0 - Fix a shell code injection vulnerability in the get-remote-certificate.py example script. The script no longer uses a shell to run openssl commands. Issue reported and initial fix by Caleb Shortt. Patch by Victor Stinner. - Fix a crash when an object which does not have a dictionary frees its instance values. - Fix a bug in the tokenizer that could cause infinite recursion when showing syntax warnings that happen in the first line of the source. Patch by Pablo Galindo - Fix an issue that could cause frames to be visible to Python code as they are being torn down, possibly leading to memory corruption or hard crashes of the interpreter. - Fix a reference bug in _imp.create_builtin() after the creation of the first sub-interpreter for modules builtins and sys. Patch by Victor Stinner. - Fixed a bug that was causing a buffer overflow if the tokenizer copies a line missing the newline caracter from a file that is as long as the available tokenizer buffer. Patch by Pablo galindo - Fix bug where an ExceptionGroup subclass can wrap a BaseException. - Fix zip path for venv created from a non-installed python on POSIX platforms. - Fix an issue that could potentially cause incorrect error handling for some bytecode instructions. - Fix an issue that prevented PyThreadState and PyInterpreterState memory from being freed properly. - Fix failure in except* with unhashable exceptions. - Fix calculation of sys._base_executable when inside a POSIX virtual environment using copies of the python binary when the base installation does not provide the executable name used by the venv. Calculation will fall back to alternative names (“python”, “python.”). - Update faulthandler to emit an error message with the proper unexpected signal number. Patch by Dong-hee Na. - Fix location of SyntaxError for a try block with both except and except*. - Fix the error reporting positions of specialized traceback anchors when the source line contains Unicode characters. - Fix subscription of type aliases containing bare generic types or types like TypeVar: for example tuple[A, T][int] and tuple[TypeVar, T][int], where A is a generic type, and T is a type variable. - Lower the recursion depth for marshal on WASI to support wasmtime 2.0/main. - Fix multiple crashes in debug mode when str subclasses are used instead of str itself. - Fix an issue where member descriptors (such as those for __slots__) could behave incorrectly or crash instead of raising a TypeError when accessed via an instance of an invalid type. - Suppress ImportError for invalid query for help() command. Patch by Dong-hee Na. - Fix detection of MAC addresses for uuid on certain OSs. Patch by Chaim Sanders - Print exception class name instead of its string representation when raising errors from ctypes calls. - os.sched_yield() now release the GIL while calling sched_yield(2). Patch by Dong-hee Na. - Fix an issue that could delay the specialization of PRECALL instructions. - Bugfix: PyFunction_GetAnnotations() should return a borrowed reference. It was returning a new reference. - Ensure that all Python frame objects are backed by “complete” frames. - Fixed a missing incref/decref pair in Exception.__setstate__(). Patch by Ofey Chan. - Fix the Python path configuration used to initialized sys.path at Python startup. Paths are no longer encoded to UTF-8/strict to avoid encoding errors if it contains surrogate characters (bytes paths are decoded with the surrogateescape error handler). Patch by Victor Stinner. - Fix overly-broad source position information for chained comparisons used as branching conditions. - At Python exit, sometimes a thread holding the GIL can wait forever for a thread (usually a daemon thread) which requested to drop the GIL, whereas the thread already exited. To fix the race condition, the thread which requested the GIL drop now resets its request before exiting. Issue discovered and analyzed by Mingliang ZHAO. Patch by Victor Stinner. - Fix a possible assertion failure, fatal error, or SystemError if a line tracing event raises an exception while opcode tracing is enabled. - Fix undefined behaviour in C code of null pointer arithmetic. - Make sure that all frame objects created are created from valid interpreter frames. Prevents the possibility of invalid frames in backtraces and signal handlers. - Disable incorrect pickling of the C implemented classmethod descriptors. - On WASI ENOTCAPABLE is now mapped to PermissionError. The errno modules exposes the new error number. getpath.py now ignores PermissionError when it cannot open landmark files pybuilddir.txt and pyenv.cfg. - Allow pdb to locate source for frozen modules in the standard library. - Raise ValueError instead of SystemError when methods of uninitialized io.IncrementalNewlineDecoder objects are called. Patch by Oren Milman. - Fix a possible assertion failure in io.FileIO when the opener returns an invalid file descriptor. - Also escape s in the http.server BaseHTTPRequestHandler.log_message so that it is technically possible to parse the line and reconstruct what the original data was. Without this a xHH is ambiguious as to if it is a hex replacement we put in or the characters r”x” came through in the original request line. - asyncio.get_event_loop() now only emits a deprecation warning when a new event loop was created implicitly. It no longer emits a deprecation warning if the current event loop was set. - Fix bug when calling trace.CoverageResults with valid infile. - Fix a bug in handling class cleanups in unittest.TestCase. Now addClassCleanup() uses separate lists for different TestCase subclasses, and doClassCleanups() only cleans up the particular class. - Release the GIL when calling termios APIs to avoid blocking threads. - Fix ast.increment_lineno() to also cover ast.TypeIgnore when changing line numbers. - Fix bug in urllib.parse.urlparse() that causes URL schemes that begin with a digit, a plus sign, or a minus sign to be parsed incorrectly. - Check the number of arguments in substitution in user generics containing a TypeVarTuple and one or more TypeVar. - Fix substitution of ParamSpec followed by TypeVarTuple in generic aliases. - Fix substitution of TypeVarTuple and ParamSpec together in user generics. - Fixed bug where inspect.signature() reported incorrect arguments for decorated methods. - Fix SystemError in ctypes when exception was not set during __initsubclass__. - Remove older version of _SSLProtocolTransport.get_write_buffer_limits in asyncio.sslproto - fix negative numbers failing in verify() - Fix statistics.NormalDist pickle with 0 and 1 protocols. - enum.auto() is now correctly activated when combined with other assignment values. E.g. ONE = auto(), 'some text' will now evaluate as (1, 'some text'). - Update the bundled copy of pip to version 22.3.1. - Clean up refleak on failed module initialisation in _zoneinfo - Clean up refleaks on failed module initialisation in in _pickle - Clean up refleak on failed module initialisation in _io. - Fix memory leak in math.dist() when both points don’t have the same dimension. Patch by Kumar Aditya. - [3.11] Applied changes from importlib_metadata 4.11.4 through 4.13, including compatibility and robustness fixes for Distribution objects without _normalized_name, disallowing invalid inputs to Distribution.from_name, and refined behaviors in PathDistribution._name_from_stem and PathDistribution._normalized_name. - Fix argument typechecks in _overlapped.WSAConnect() and _overlapped.Overlapped.WSASendTo() functions. - Prevent crashing in traceback when retrieving the byte-offset for some source files that contain certain unicode characters. - Fix internal error in the re module which in very rare circumstances prevented compilation of a regular expression containing a conditional expression without the “else” branch. - Fix asyncio.StreamWriter.drain() to call protocol.connection_lost callback only once on Windows. - Add a mutex to unittest.mock.NonCallableMock to protect concurrent access to mock attributes. - Fix hang on Windows in subprocess.wait_closed() in asyncio with ProactorEventLoop. Patch by Kumar Aditya. - Fix infinite loop in unittest when a self-referencing chained exception is raised - tkinter.Text.count() raises now an exception for options starting with “-” instead of silently ignoring them. - On uname_result, restored expectation that _fields and _asdict would include all six properties including processor. - A createSocket() method was added to SysLogHandler. - Fix bug in urllib.parse.urlparse() that causes certain port numbers containing whitespace, underscores, plus and minus signs, or non-ASCII digits to be incorrectly accepted. - Allow venv to pass along PYTHON* variables to ensurepip and pip when they do not impact path resolution - On macOS, fix a crash in syslog.syslog() in multi-threaded applications. On macOS, the libc syslog() function is not thread-safe, so syslog.syslog() no longer releases the GIL to call it. Patch by Victor Stinner. - Allow BUILTINS to be a valid field name for frozen dataclasses. - Wrap network errors consistently in urllib FTP support, so the test suite doesn’t fail when a network is available but the public internet is not reachable. - Make sure patch.dict() can be applied on async functions. - Earlier in 3.11 we deprecated asyncio.Task.cancel("message"). We realized we were too harsh, and have undeprecated it. - Change deprecate warning message in unittest from It is deprecated to return a value!=None to It is deprecated to return a value that is not None from a test case - Fixes AttributeError when subprocess.check_output() is used with argument input=None and either of the arguments encoding or errors are used. - Fix is_private properties in the ipaddress module. Previously non-private networks (0.0.0.0/0) would return True from this method; now they correctly return False. - Avoid spurious tracebacks from asyncio when default executor cleanup is delayed until after the event loop is closed (e.g. as the result of a keyboard interrupt). - Avoid a crash in the C version of asyncio.Future.remove_done_callback() when an evil argument is passed. - Remove tokenize.NL check from tabnanny. - Fix generation of the default name of tkinter.Checkbutton. Previously, checkbuttons in different parent widgets could have the same short name and share the same state if arguments “name” and “variable” are not specified. Now they are globally unique. - Update bundled libexpat to 2.4.9 - Fix race condition in asyncio where process_exited() called before the pipe_data_received() leading to inconsistent output. Patch by Kumar Aditya. - Fixed check in multiprocessing.resource_tracker that guarantees that the length of a write to a pipe is not greater than PIPE_BUF. - Corrected type annotation for dataclass attribute pstats.FunctionProfile.ncalls to be str. - Fix repr of Any subclasses. - Work around missing socket functions in socket’s __repr__. - In inspect, fix overeager replacement of “typing.” in formatting annotations. - Fix handling of bytes path-like objects in os.ismount(). - Fix handling compiler warnings (SyntaxWarning and DeprecationWarning) in codeop.compile_command() when checking for incomplete input. Previously it emitted warnings and raised a SyntaxError. Now it always returns None for incomplete input without emitting any warnings. - To avoid apparent memory leaks when asyncio.open_connection() raises, break reference cycles generated by local exception and future instances (which has exception instance as its member var). Patch by Dong Uk, Kang. - Fixed flickering of the turtle window when the tracer is turned off. Patch by Shin-myoung-serp. - Fix asyncio subprocess transport to kill process cleanly when process is blocked and avoid RuntimeError when loop is closed. Patch by Kumar Aditya. - Prevent error when activating venv in nested fish instances. - TarFile.next() now returns None when called on an empty tarfile. - Document the optional callback parameter of WeakMethod. Patch by Géry Ogam. - Restrict use of sockets instead of pipes for stdin of subprocesses created by asyncio to AIX platform only. - shutil.copytree() now applies the ignore_dangling_symlinks argument recursively. - Fix IndexError in argparse.ArgumentParser when a store_true action is given an explicit argument. - Document that calling variadic functions with ctypes requires special care on macOS/arm64 (and possibly other platforms). - Remove extra row - Clarified the conflicting advice given in the ast documentation about ast.literal_eval() being “safe” for use on untrusted input while at the same time warning that it can crash the process. The latter statement is true and is deemed unfixable without a large amount of work unsuitable for a bugfix. So we keep the warning and no longer claim that literal_eval is safe. - Restructured the documentation for the os.wait* family of functions, and improved the docs for os.waitid() with more explanation of the possible argument constants. - Skip test_normalization() of test_unicodedata if it fails to download NormalizationTest.txt file from pythontest.net. Patch by Victor Stinner. - Correct test_marsh on (32 bit) x86: test_deterministic sets was failing. - Optional big memory tests in test_sqlite3 now catch the correct sqlite.DataError exception type in case of too large strings and/or blobs passed. - Fix a bug in the typing tests where a test relying on CPython-specific implementation details was not decorated with @cpython_only and was not skipped on other implementations. - Add tests for star-unpacking with PEP 646, and some other miscellaneous PEP 646 tests. - Added explicit coverage of Py_Initialize (and hence Py_InitializeEx) back to the embedding tests (all other embedding tests migrated to Py_InitializeFromConfig in Python 3.11) - Some C API tests were moved into the new Lib/test/test_capi/ directory. - Fix -Wimplicit-int, -Wstrict-prototypes, and - Wimplicit-function-declaration compiler warnings in configure checks. - Fix a compilation issue with GCC 12 on macOS. - Fix -Wimplicit-int compiler warning in configure check for PTHREAD_SCOPE_SYSTEM. - Fix a possible fd leak in Programs/_freeze_module.c introduced in Python 3.11. - Fix build with PYTHON_FOR_REGEN=python3.8. - Specify the full path to the source location for make docclean (needed for cross-builds). - Don’t use vendored libmpdec headers if --with-system-libmpdec is passed to configure. Don’t use vendored libexpat headers if --with-system-expat is passed to !configure. - Fix the build process of clang compiler for _bootstrap_python if LTO optimization is applied. Patch by Matthias Görgens and Dong-hee Na. - wasm32-emscripten builds for browsers now include concurrent.futures for asyncio and unittest.mock. - wasm32-emscripten platform no longer builds resource module, getresuid(), getresgid(), and their setters. The APIs are stubs and not functional. - Updated pegen regeneration script on Windows to find and use Python 3.9 or higher. Prior to this, pegen regeneration already required 3.9 or higher, but the script may have used lower versions of Python. - Fix a bug in the previous bugfix that caused IDLE to not start when run with 3.10.8, 3.12.0a1, and at least Microsoft Python 3.10.2288.0 installed without the Lib/test package. 3.11.0 was never affected. - The wasm_build.py script now pre-builds Emscripten ports, checks for broken EMSDK versions, and warns about pkg-config env vars. - The new tool Tools/wasm/wasm_builder.py automates configure, compile, and test steps for building CPython on WebAssembly platforms. - Fix handling of module docstrings in Tools/i18n/pygettext.py. - PyBUF_* constants were marked as part of Limited API of Python 3.11+. These were available in 3.11.0 with Py_LIMITED_API defined for 3.11, and are necessary to use the buffer API. - Fix use-after-free in Py_SetPythonHome(NULL), Py_SetProgramName(NULL) and _Py_SetProgramFullPath(NULL) function calls. Issue reported by Benedikt Reinartz. Patch by Victor Stinner. - Py_InitializeEx now correctly calls PyConfig_Clear after initializing the interpreter (the omission didn’t cause a memory leak only because none of the dynamically allocated config fields are populated by the wrapper function) - Removed upstreamed patches: - 98437-sphinx.locale._-as-gettext-in-pyspecific.patch - CVE-2022-45061-DoS-by-IDNA-decode.patch- Add CVE-2022-45061-DoS-by-IDNA-decode.patch to avoid CVE-2022-45061 (bsc#1205244) allowing DoS by IDNA decoding extremely long domain names.- Update to 3.11.0 (overall changes from 3.10.*): - General changes - PEP 657 -- Include Fine-Grained Error Locations in Tracebacks - PEP 654 -- Exception Groups and except* - PEP 680 -- tomllib: Support for Parsing TOML in the Standard Library - gh-90908 -- Introduce task groups to asyncio - gh-34627 -- Atomic grouping ((?>...)) and possessive quantifiers (*+, ++, ?+, {m,n}+) are now supported in regular expressions. - The Faster CPython Project is already yielding some exciting results. Python 3.11 is up to 10-60% faster than Python 3.10. On average, we measured a 1.22x speedup on the standard benchmark suite. See Faster CPython for details. - Typing and typing language changes - PEP 673 -- Self Type - PEP 646 -- Variadic Generics - PEP 675 -- Arbitrary Literal String Type - PEP 655 -- Marking individual TypedDict items as required or potentially-missing - PEP 681 -- Data Class Transforms - (just changes from 3.11.0rc2): - Fix multiplying a list by an integer (list *= int): detect the integer overflow when the new allocated length is close to the maximum size. Issue reported by Jordan Limor. Patch by Victor Stinner. - On Linux the multiprocessing module returns to using filesystem backed unix domain sockets for communication with the forkserver process instead of the Linux abstract socket namespace. Only code that chooses to use the “forkserver” start method is affected. Abstract sockets have no permissions and could allow any user on the system in the same network namespace (often the whole system) to inject code into the multiprocessing forkserver process. This was a potential privilege escalation. Filesystem based socket permissions restrict this to the forkserver process user as was the default in Python 3.8 and earlier. This prevents Linux CVE-2022-42919. - Fix an issue where several frame objects could be backed by the same interpreter frame, possibly leading to corrupted memory and hard crashes of the interpreter. - Fix possible data corruption or crashes when accessing the f_back member of newly-created generator or coroutine frames. - Fix a crash occurring when PyEval_GetFrame() is called while the topmost Python frame is in a partially-initialized state. - Fix command line parsing: reject -X int_max_str_digits option with no value (invalid) when the PYTHONINTMAXSTRDIGITS environment variable is set to a valid limit. Patch by Victor Stinner. - Fix undefined behaviour in _testcapimodule.c. - When ValueError is raised if an integer is larger than the limit, mention the sys.set_int_max_str_digits() function in the error message. Patch by Victor Stinner. - Correctly raise SyntaxError on exception groups (PEP 654) on python versions prior to 3.11 - Document some places where an assignment expression needs parentheses. - Update the bundled copies of pip and setuptools to versions 22.3 and 65.5.0 respectively. - fix Flag to use boundary CONFORM - This restores previous Flag behavior of allowing flags with non-sequential values to be combined; e.g. - class Skip(Flag): TWO = 2 EIGHT = 8 - Skip.TWO | Skip.EIGHT -> - Fix ! in c domain ref target syntax via a conf.py patch, so it works as intended to disable ref target resolution. - Update tutorial introduction output to use 3.10+ SyntaxError invalid range.- Add 98437-sphinx.locale._-as-gettext-in-pyspecific.patch to allow building of documentation with the latest Sphinx 5.3.0 (gh#python/cpython#98366).- Update to 3.11.0rc2: - Converting between int and str in bases other than 2 (binary), 4, 8 (octal), 16 (hexadecimal), or 32 such as base 10 (decimal) now raises a ValueError if the number of digits in string form is above a limit to avoid potential denial of service attacks due to the algorithmic complexity. This is a mitigation for CVE-2020-10735. This new limit can be configured or disabled by environment variable, command line flag, or sys APIs. See the integer string conversion length limitation documentation. The default limit is 4300 digits in string form. - Fix case of undefined behavior in ceval.c - Do not expose KeyWrapper in _functools. - Ensure that tracing, sys.setrace(), is turned on immediately. In pre-release versions of 3.11, some tracing events might have been lost when turning on tracing in a __del__ method or interrupt. - Fix use after free in trace refs build mode. Patch by Kumar Aditya. - When loading a file with invalid UTF-8 inside a multi-line string, a correct SyntaxError is emitted. - Make sure that incomplete frames do not show up in tracemalloc traces. - Remove two cases of undefined behavior, by adding NULL checks. - Fix possible NULL pointer dereference in _PyThread_CurrentFrames. Patch by Kumar Aditya. - Fix AttributeError missing name and obj attributes in object.__getattribute__(). Patch by Philip Georgi. - Loading a file with invalid UTF-8 will now report the broken character at the correct location. - Fixed a bug that caused _PyCode_GetExtra to return garbage for negative indexes. Patch by Pablo Galindo - Fix a deadlock in PyGILState_Ensure() when allocating new thread state. Patch by Kumar Aditya. - PyType_Ready() now initializes ht_cached_keys and performs additional checks to ensure that type objects are properly configured. This avoids crashes in 3rd party packages that don’t use regular API to create new types. - Skip over incomplete frames in PyThreadState_GetFrame(). - Fix format string in _PyPegen_raise_error_known_location that can lead to memory corruption on some 64bit systems. The function was building a tuple with i (int) instead of n (Py_ssize_t) for Py_ssize_t arguments. - Fix misleading contents of error message when converting an all-whitespace string to float. - ast.parse() will no longer parse function definitions with positional-only params when passed feature_version less than (3, 8). Patch by Shantanu Jain. - Fix incorrect error message in the io module. - Fix the faulthandler implementation of faulthandler.register(signal, chain=True) if the sigaction() function is not available: don’t call the previous signal handler if it’s NULL. Patch by Victor Stinner. - Correct conversion of numbers.Rational’s to float. - Fix TypeVarTuple.__typing_prepare_subst__. TypeError was not raised when using more than one TypeVarTuple, like [*T, *V] in type alias substitutions. - Fix asyncio.streams.StreamReaderProtocol to keep a strong reference to the created task, so that it’s not garbage collected - Fix a performance regression in logging TimedRotatingFileHandler. Only check for special files when the rollover time has passed. - Fix unused localName parameter in the Attr class in xml.dom.minidom. - Fix incorrect condition that causes sys.thread_info.name to be wrong on pthread platforms. - Remove an incompatible change from bpo-28080 that caused a regression that ignored the utf8 in ZipInfo.flag_bits. Patch by Pablo Galindo. - Fix asyncio.Runner to call asyncio.set_event_loop() only once to avoid calling attach_loop() multiple times on child watchers. Patch by Kumar Aditya. - Fix unittest.IsolatedAsyncioTestCase to set event loop before calling setup functions. Patch by Kumar Aditya. - When a task catches asyncio.CancelledError and raises some other error, the other error should generally not silently be suppressed. - Fail gracefully if EPERM or ENOSYS is raised when loading crypt methods. This may happen when trying to load MD5 on a Linux kernel with FIPS enabled. - Allow asyncio.StreamWriter.drain() to be awaited concurrently by multiple tasks. Patch by Kumar Aditya. - Fix ast.unparse() when ImportFrom.level is None - Improve discoverability of the higher level concurrent.futures module by providing clearer links from the lower level threading and multiprocessing modules. - What’s New 3.11 now has instructions for how to provide compiler and linker flags for Tcl/Tk and OpenSSL on RHEL 7 and CentOS 7. - Mitigate the inherent race condition from using find_unused_port() in testSockName() by trying to find an unused port a few times before failing. Patch by Ross Burton. - Build and test with OpenSSL 1.1.1q - Use support-expat-CVE-2022-25236-patched.patch from the current version of gh#python/cpython#93900 instead of the old support-expat-245.patch. - Reapply fix_configure_rst.patch.- Increase testsuite timeout for test_freeze_simple_script- fix import_failed.map to refer to the python 3.11 package versions- Update to 3.11.0rc1: - Core and Builtins - Update code object hashing and equality to consider all debugging and exception handling tables. This fixes an issue where certain non-identical code objects could be “deduplicated” during compilation. - _PyPegen_Parser_New now properly detects token memory allocation errors. Patch by Honglin Zhu. - Run Python code in tracer/profiler function at full speed. Fixes slowdown in earlier versions of 3.11. - Emit a warning in debug mode if an object does not call PyObject_GC_UnTrack() before deallocation. Patch by Pablo Galindo. - Prevented crashes in the AST constructor when compiling some absurdly long expressions like "+0"*1000000. RecursionError is now raised instead. Patch by Pablo Galindo - ast.AST node positions are now validated when provided to compile() and other related functions. If invalid positions are detected, a ValueError will be raised. - Fix error detection in some builtin functions when keyword argument name is an instance of a str subclass with overloaded __eq__ and __hash__. Previously it could cause SystemError or other undesired behavior. - Library - Update bundled pip to 22.2.2. - Fix asyncio.TaskGroup to propagate exception when asyncio.CancelledError was replaced with another exception by a context manger. Patch by Kumar Aditya and Guido van Rossum. - Update bundled pip to 22.2.1. - Fix GC crash when deallocating _lsprof.Profiler by untracking it before calling any callbacks. Patch by Kumar Aditya. - Fix asyncio.run() for asyncio.Task implementations without uncancel() method. Patch by Kumar Aditya. - Fix check for existence of os.EFD_CLOEXEC, os.EFD_NONBLOCK and os.EFD_SEMAPHORE flags on older kernel versions where these flags are not present. Patch by Kumar Aditya. - Fix concurrent.futures.Executor.map() to cancel the currently waiting on future on an error - e.g. TimeoutError or KeyboardInterrupt. - Ensure that timeouts scheduled with asyncio.Timeout that have already expired are delivered promptly. - Suppress writing an XML declaration in open files in ElementTree.write() with encoding='unicode' and xml_declaration=None. - Fix findtext in the xml module to only give an empty string when the text attribute is set to None. - Documentation - Fix stylesheet not working in Windows CHM htmlhelp docs and add warning that they are deprecated. Contributed by C.A.M. Gerlach. - Update library documentation with availability information on WebAssembly platforms wasm32-emscripten and wasm32-wasi. - Use consistent syntax for platform availability. The directive now supports a content body and emits a warning when it encounters an unknown platform. - Document a limitation in ThreadPoolExecutor where its exit handler is executed before any handlers in atexit. - Tests - Lib/test/test_asyncio/test_ssl.py exposed a bug in the macOS kernel where intense concurrent load on non-blocking sockets occasionally causes errno.ENOBUFS (“No buffer space available”) to be emitted. FB11063974 filed with Apple, in the mean time as a workaround buffer size used in tests on macOS is decreased to avoid intermittent failures. Patch by Fantix King. - Fix problem with test_ssl test_get_ciphers on systems that require perfect forward secrecy (PFS) ciphers. - Add a regression test for re exponentional slowdown when using rjsmin. - Build - Fix a regression in configure script that caused some header checks to ignore custom CPPFLAGS. The regression was introduced in gh-94802. - wasm32-wasi builds no longer depend on WASIX’s pthread stubs. Python now has its own stubbed pthread API. - Python now detects missing dup function in WASI and works around some missing errno, select, and socket constants. - Python now skips missing socket functions and methods on WASI. WASI can only create sockets from existing fd / accept and has no netdb. - Platforms wasm32-unknown-emscripten and wasm32-unknown-wasi have been promoted to PEP 11 tier 3 platform support. - IDLE - Document handling of extensions in Save As dialogs. - Include prompts when saving Shell (interactive input and output). - Fix the Shell context menu copy-with-prompts bug of copying an extra line when one selects whole lines. - In the Edit menu, move Select All and add a new separator. - Enable using IDLE’s module browser with .pyw files. - Add .pyi as a recognized extension for IDLE on macOS. This allows opening stub files by double clicking on them in the Finder. - C API - Restore the 3.10 behavior for multiple inheritance of C extension classes that store their dictionary at the end of the struct. - Added PyCode_GetVarnames(), PyCode_GetCellvars() and PyCode_GetFreevars() for accessing co_varnames, co_cellvars and co_freevars respectively via the C API.- Update to 3.11.0b5: - Core and Builtins - gh-93351: ast.AST node positions are now validated when provided to compile() and other related functions. If invalid positions are detected, a ValueError will be raised. - gh-94438: Fix an issue that caused extended opcode arguments and some conditional pops to be ignored when calculating valid jump targets for assignments to the f_lineno attribute of frame objects. In some cases, this could cause inconsistent internal state, resulting in a hard crash of the interpreter. - gh-95060: Undocumented PyCode_Addr2Location function now properly returns when addrq argument is less than zero. - gh-95113: Replace all EXTENDED_ARG_QUICK instructions with basic EXTENDED_ARG instructions in unquickened code. Consumers of non-adaptive bytecode should be able to handle extended arguments the same way they were handled in CPython 3.10 and older. - gh-91409: Fix incorrect source location info caused by certain optimizations in the bytecode compiler. - gh-94036: Fix incorrect source location info for some multi-line attribute accesses and method calls. - gh-94739: Allow jumping within, out of, and across exception handlers in the debugger. - gh-94949: ast.parse() will no longer parse parenthesized context managers when passed feature_version less than (3, 9). Patch by Shantanu Jain. - gh-94947: ast.parse() will no longer parse assignment expressions when passed feature_version less than (3, 8). Patch by Shantanu Jain. - gh-91256: Ensures the program name is known for help text during interpreter startup. - gh-94869: Fix the column offsets for some expressions in multi-line f-strings ast nodes. Patch by Pablo Galindo. - gh-94822: Fix an issue where lookups of metaclass descriptors may be ignored when an identically-named attribute also exists on the class itself. - gh-91153: Fix an issue where a bytearray item assignment could crash if it’s resized by the new value’s __index__() method. - gh-90699: Fix reference counting bug in bool.__repr__(). Patch by Kumar Aditya. - Library - gh-95087: Fix IndexError in parsing invalid date in the email module. - gh-95199: Upgrade bundled setuptools to 63.2.0. - gh-95194: Upgrade bundled pip to 22.2. - gh-95132: Fix a sqlite3 regression where *args and **kwds were incorrectly relayed from connect() to the Connection factory. The regression was introduced in 3.11a1 with PR 24421 (gh-85128). Patch by Erlend E. Aasland.` - gh-93157: Fix fileinput module didn’t support errors option when inplace is true. - gh-95105: wsgiref.types.InputStream.__iter__() should return Iterator[bytes], not Iterable[bytes]. Patch by Shantanu Jain. - gh-94857: Fix refleak in _io.TextIOWrapper.reconfigure. Patch by Kumar Aditya. - gh-94821: Fix binding of unix socket to empty address on Linux to use an available address from the abstract namespace, instead of “0”. - gh-89988: Fix memory leak in pickle.Pickler when looking up dispatch_table. Patch by Kumar Aditya. - bpo-47025: Drop support for bytes on sys.path. - Tests - gh-95212: Make multiprocessing test case test_shared_memory_recreate parallel-safe. - Build - gh-94847: Fixed _decimal module build issue on GCC when compiling with LTO and pydebug. Debug builds no longer force inlining of functions. - gh-94841: Fix the possible performance regression of PyObject_Free() compiled with MSVC version 1932. - gh-94801: configure now uses custom flags like ZLIB_CFLAGS and ZLIB_LIBS when searching for headers and libraries. - gh-94773: deepfreeze.py now supports code object with frozensets that contain incompatible, unsortable types. - C API - gh-94930: Fix SystemError raised when PyArg_ParseTupleAndKeywords() is used with # in (...) but without PY_SSIZE_T_CLEAN defined. - gh-94864: Fix PyArg_Parse* with deprecated format units “u” and “Z”. It returned 1 (success) when warnings are turned into exceptions. - gh-94731: Python again uses C-style casts for most casting operations when compiled with C++. This may trigger compiler warnings, if they are enabled with e.g. -Wold-style-cast `` or ``-Wzero-as-null-pointer-constant options for g++.- Switch from %primary_interpreter to prjconf-defined %primary_python (gh#openSUSE/python-rpm-macros#127).- Update to 3.11.0b4: - Fixes many bugs and adds following more significant changes - Security - gh-68966: The deprecated mailcap module now refuses to inject Coreunsafe text (filenames, MIME types, parameters) into shell Corecommands. Instead of using such text, it will warn and act Coreas if a match was not found (or for test commands, as if the Coretest failed). and Builtins - gh-93516: Lazily create a table mapping bytecode offsets to line numbers to speed up calculation of line numbers when tracing. - gh-93461: importlib.invalidate_caches() now drops entries from sys.path_importer_cache with a relative path as name. This solves a caching issue when a process changes its current working directory. - FileFinder no longer inserts a dot in the path, e.g. /egg/./spam is now /egg/spam. Library - gh-93896: Fix asyncio.run() and unittest.IsolatedAsyncioTestCase to always the set event loop as it was done in Python 3.10 and earlier. Patch by Kumar Aditya. - gh-94101: Manual instantiation of ssl.SSLSession objects is no longer allowed as it lead to misconfigured instances that crashed the interpreter when attributes where accessed on them. - gh-83658: Make multiprocessing.Pool raise an exception if maxtasksperchild is not None or a positive int. - gh-61162: Clarify sqlite3 behavior when Using the connection as a context manager. Tools/Demos - gh-94538: Fix Argument Clinic output to custom file destinations. Patch by Erlend E. Aasland. C API - gh-93937: The following frame functions and type are now directly available with #include , it’s no longer needed to add #include : PyFrame_Check() PyFrame_GetBack() PyFrame_GetBuiltins() PyFrame_GetGenerator() PyFrame_GetGlobals() PyFrame_GetLasti() PyFrame_GetLocals() PyFrame_Type- Update to 3.11.0b2: - many small updates - Add patch support-expat-245.patch: * Support Expat >= 2.4.4 (jsc#SLE-21253)- Refresh bluez-devel-vendor.tar.xz - Fix building with system-expat (gh#python/cpython#92875). Nope, it didn't work, worked around it.- Update to pre-release version 3.11.0b1: - PEP 657 – Include Fine-Grained Error Locations in Tracebacks - PEP 654 – Exception Groups and except* - PEP 673 – Self Type - PEP 646 – Variadic Generics - PEP 680– tomllib: Support for Parsing TOML in the Standard Library - PEP 675– Arbitrary Literal String Type - PEP 655– Marking individual TypedDict items as required or potentially-missing - bpo-46752– Introduce task groups to asyncio - The Faster Cpython Project is already yielding some exciting results. Python 3.11 is up to 10-60% faster than Python 3.10. On average, we measured a 1.22x speedup on the standard benchmark suite. See https://docs.python.org/3.11/whatsnew/3.11.html#faster-cpython for details.- Switch primary_interpreter from python38 to python310- Update to 3.10.4: - bpo-46968: Check for the existence of the “sys/auxv.h” header in faulthandler to avoid compilation problems in systems where this header doesn’t exist. Patch by Pablo Galindo - bpo-23691: Protect the re.finditer() iterator from re-entering. - bpo-42369: Fix thread safety of zipfile._SharedFile.tell() to avoid a “zipfile.BadZipFile: Bad CRC-32 for file” exception when reading a ZipFile from multiple threads. - bpo-38256: Fix binascii.crc32() when it is compiled to use zlib’c crc32 to work properly on inputs 4+GiB in length instead of returning the wrong result. The workaround prior to this was to always feed the function data in increments smaller than 4GiB or to just call the zlib module function. - bpo-39394: A warning about inline flags not at the start of the regular expression now contains the position of the flag. - bpo-47061: Deprecate the various modules listed by PEP 594: - aifc, asynchat, asyncore, audioop, cgi, cgitb, chunk, crypt, imghdr, msilib, nntplib, nis, ossaudiodev, pipes, smtpd, sndhdr, spwd, sunau, telnetlib, uu, xdrlib - bpo-2604: Fix bug where doctests using globals would fail when run multiple times. - bpo-45997: Fix asyncio.Semaphore re-aquiring FIFO order. - bpo-47022: The asynchat, asyncore and smtpd modules have been deprecated since at least Python 3.6. Their documentation and deprecation warnings and have now been updated to note they will removed in Python 3.12 (PEP 594). - bpo-46421: Fix a unittest issue where if the command was invoked as python -m unittest and the filename(s) began with a dot (.), a ValueError is returned. - bpo-40296: Fix supporting generic aliases in pydoc. - Update to 3.10.3: - bpo-46940: Avoid overriding AttributeError metadata information for nested attribute access calls. Patch by Pablo Galindo. - bpo-46852: Rename the private undocumented float.__set_format__() method to float.__setformat__() to fix a typo introduced in Python 3.7. The method is only used by test_float. Patch by Victor Stinner. - bpo-46794: Bump up the libexpat version into 2.4.6 - bpo-46820: Fix parsing a numeric literal immediately (without spaces) followed by “not in” keywords, like in 1not in x. Now the parser only emits a warning, not a syntax error. - bpo-46762: Fix an assert failure in debug builds when a ‘<’, ‘>’, or ‘=’ is the last character in an f-string that’s missing a closing right brace. - bpo-46724: Make sure that all backwards jumps use the JUMP_ABSOLUTE instruction, rather than JUMP_FORWARD with an argument of (2**32)+offset. - bpo-46732: Correct the docstring for the __bool__() method. Patch by Jelle Zijlstra. - bpo-46707: Avoid potential exponential backtracking when producing some syntax errors involving lots of brackets. Patch by Pablo Galindo. - bpo-40479: Add a missing call to va_end() in Modules/_hashopenssl.c. - bpo-46615: When iterating over sets internally in setobject.c, acquire strong references to the resulting items from the set. This prevents crashes in corner-cases of various set operations where the set gets mutated. - bpo-45773: Remove two invalid “peephole” optimizations from the bytecode compiler. - bpo-43721: Fix docstrings of getter, setter, and deleter to clarify that they create a new copy of the property. - bpo-46503: Fix an assert when parsing some invalid N escape sequences in f-strings. - bpo-46417: Fix a race condition on setting a type __bases__ attribute: the internal function add_subclass() now gets the PyTypeObject.tp_subclasses member after calling PyWeakref_NewRef() which can trigger a garbage collection which can indirectly modify PyTypeObject.tp_subclasses. Patch by Victor Stinner. - bpo-46383: Fix invalid signature of _zoneinfo’s module_free function to resolve a crash on wasm32-emscripten platform. - bpo-46070: Py_EndInterpreter() now explicitly untracks all objects currently tracked by the GC. Previously, if an object was used later by another interpreter, calling PyObject_GC_UnTrack() on the object crashed if the previous or the next object of the PyGC_Head structure became a dangling pointer. Patch by Victor Stinner. - bpo-46339: Fix a crash in the parser when retrieving the error text for multi-line f-strings expressions that do not start in the first line of the string. Patch by Pablo Galindo - bpo-46240: Correct the error message for unclosed parentheses when the tokenizer doesn’t reach the end of the source when the error is reported. Patch by Pablo Galindo - bpo-46091: Correctly calculate indentation levels for lines with whitespace character that are ended by line continuation characters. Patch by Pablo Galindo - bpo-43253: Fix a crash when closing transports where the underlying socket handle is already invalid on the Proactor event loop. - bpo-47004: Apply bugfixes from importlib_metadata 4.11.3, including bugfix for EntryPoint.extras, which was returning match objects and not the extras strings. - bpo-46985: Upgrade pip wheel bundled with ensurepip (pip 22.0.4) - bpo-46968: faulthandler: On Linux 5.14 and newer, dynamically determine size of signal handler stack size CPython allocates using getauxval(AT_MINSIGSTKSZ). This changes allows for Python extension’s request to Linux kernel to use AMX_TILE instruction set on Sapphire Rapids Xeon processor to succeed, unblocking use of the ISA in frameworks. - bpo-46955: Expose asyncio.base_events.Server as asyncio.Server. Patch by Stefan Zabka. - bpo-23325: The signal module no longer assumes that SIG_IGN and SIG_DFL are small int singletons. - bpo-46932: Update bundled libexpat to 2.4.7 - bpo-25707: Fixed a file leak in xml.etree.ElementTree.iterparse() when the iterator is not exhausted. Patch by Jacob Walls. - bpo-44886: Inherit asyncio proactor datagram transport from asyncio.DatagramTransport. - bpo-46827: Support UDP sockets in asyncio.loop.sock_connect() for selector-based event loops. Patch by Thomas Grainger. - bpo-46811: Make test suite support Expat >=2.4.5 - bpo-46252: Raise TypeError if ssl.SSLSocket is passed to transport-based APIs. - bpo-46784: Fix libexpat symbols collisions with user dynamically loaded or statically linked libexpat in embedded Python. - bpo-39327: shutil.rmtree() can now work with VirtualBox shared folders when running from the guest operating-system. - bpo-46756: Fix a bug in urllib.request.HTTPPasswordMgr.find_user_password() and urllib.request.HTTPPasswordMgrWithPriorAuth.is_authenticated() which allowed to bypass authorization. For example, access to URI example.org/foobar was allowed if the user was authorized for URI example.org/foo. - bpo-46643: In typing.get_type_hints(), support evaluating stringified ParamSpecArgs and ParamSpecKwargs annotations. Patch by Gregory Beauregard. - bpo-45863: When the tarfile module creates a pax format archive, it will put an integer representation of timestamps in the ustar header (if possible) for the benefit of older unarchivers, in addition to the existing full-precision timestamps in the pax extended header. - bpo-46676: Make typing.ParamSpec args and kwargs equal to themselves. Patch by Gregory Beauregard. - bpo-46672: Fix NameError in asyncio.gather() when initial type check fails. - bpo-46655: In typing.get_type_hints(), support evaluating bare stringified TypeAlias annotations. Patch by Gregory Beauregard. - bpo-45948: Fixed a discrepancy in the C implementation of the xml.etree.ElementTree module. Now, instantiating an xml.etree.ElementTree.XMLParser with a target=None keyword provides a default xml.etree.ElementTree.TreeBuilder target as the Python implementation does. - bpo-46521: Fix a bug in the codeop module that was incorrectly identifying invalid code involving string quotes as valid code. - bpo-46581: Brings ParamSpec propagation for GenericAlias in line with Concatenate (and others). - bpo-46591: Make the IDLE doc URL on the About IDLE dialog clickable. - bpo-46400: expat: Update libexpat from 2.4.1 to 2.4.4 - bpo-46487: Add the get_write_buffer_limits method to asyncio.transports.WriteTransport and to the SSL transport. - bpo-45173: Note the configparser deprecations will be removed in Python 3.12. - bpo-46539: In typing.get_type_hints(), support evaluating stringified ClassVar and Final annotations inside Annotated. Patch by Gregory Beauregard. - bpo-46491: Allow typing.Annotated to wrap typing.Final and typing.ClassVar. Patch by Gregory Beauregard. - bpo-46436: Fix command-line option -d/--directory in module http.server which is ignored when combined with command-line option --cgi. Patch by Géry Ogam. - bpo-41403: Make mock.patch() raise a TypeError with a relevant error message on invalid arg. Previously it allowed a cryptic AttributeError to escape. - bpo-46474: In importlib.metadata.EntryPoint.pattern, avoid potential REDoS by limiting ambiguity in consecutive whitespace. - bpo-46469: asyncio generic classes now return types.GenericAlias in __class_getitem__ instead of the same class. - bpo-46434: pdb now gracefully handles help when __doc__ is missing, for example when run with pregenerated optimized .pyc files. - bpo-46333: The __eq__() and __hash__() methods of typing.ForwardRef now honor the module parameter of typing.ForwardRef. Forward references from different modules are now differentiated. - bpo-46246: Add missing __slots__ to importlib.metadata.DeprecatedList. Patch by Arie Bovenberg. - bpo-46266: Improve day constants in calendar. - Now all constants (MONDAY … SUNDAY) are documented, tested, and added to __all__. - bpo-46232: The ssl module now handles certificates with bit strings in DN correctly. - bpo-43118: Fix a bug in inspect.signature() that was causing it to fail on some subclasses of classes with a __text_signature__ referencing module globals. Patch by Weipeng Hong. - bpo-26552: Fixed case where failing asyncio.ensure_future() did not close the coroutine. Patch by Kumar Aditya. - bpo-21987: Fix an issue with tarfile.TarFile.getmember() getting a directory name with a trailing slash. - bpo-20392: Fix inconsistency with uppercase file extensions in MimeTypes.guess_type(). Patch by Kumar Aditya. - bpo-46080: Fix exception in argparse help text generation if a argparse.BooleanOptionalAction argument’s default is argparse.SUPPRESS and it has help specified. Patch by Felix Fontein. - bpo-44439: Fix .write() method of a member file in ZipFile, when the input data is an object that supports the buffer protocol, the file length may be wrong. - bpo-45703: When a namespace package is imported before another module from the same namespace is created/installed in a different sys.path location while the program is running, calling the importlib.invalidate_caches() function will now also guarantee the new module is noticed. - bpo-24959: Fix bug where unittest sometimes drops frames from tracebacks of exceptions raised in tests. - bpo-44791: Fix substitution of ParamSpec in Concatenate with different parameter expressions. Substitution with a list of types returns now a tuple of types. Substitution with Concatenate returns now a Concatenate with concatenated lists of arguments. - bpo-14156: argparse.FileType now supports an argument of ‘-’ in binary mode, returning the .buffer attribute of sys.stdin/sys.stdout as appropriate. Modes including ‘x’ and ‘a’ are treated equivalently to ‘w’ when argument is ‘-’. Patch contributed by Josh Rosenberg - bpo-46463: Fixes escape4chm.py script used when building the CHM documentation file - bpo-46913: Fix test_faulthandler.test_sigfpe() if Python is built with undefined behavior sanitizer (UBSAN): disable UBSAN on the faulthandler_sigfpe() function. Patch by Victor Stinner. - bpo-46708: Prevent default asyncio event loop policy modification warning after test_asyncio execution. - bpo-46678: The function make_legacy_pyc in Lib/test/support/import_helper.py no longer fails when PYTHONPYCACHEPREFIX is set to a directory on a different device from where tempfiles are stored. - bpo-46616: Ensures test_importlib.test_windows cleans up registry keys after completion. - bpo-44359: test_ftplib now silently ignores socket errors to prevent logging unhandled threading exceptions. Patch by Victor Stinner. - bpo-46542: Fix a Python crash in test_lib2to3 when using Python built in debug mode: limit the recursion limit. Patch by Victor Stinner. - bpo-46576: test_peg_generator now disables compiler optimization when testing compilation of its own C extensions to significantly speed up the testing on non-debug builds of CPython. - bpo-46542: Fix test_json tests checking for RecursionError: modify these tests to use support.infinite_recursion(). Patch by Victor Stinner. - bpo-13886: Skip test_builtin PTY tests on non-ASCII characters if the readline module is loaded. The readline module changes input() behavior, but test_builtin is not intented to test the readline module. Patch by Victor Stinner. - bpo-38472: Fix GCC detection in setup.py when cross-compiling. The C compiler is now run with LC_ALL=C. Previously, the detection failed with a German locale. - bpo-46513: configure no longer uses AC_C_CHAR_UNSIGNED macro and pyconfig.h no longer defines reserved symbol __CHAR_UNSIGNED__. - bpo-45296: Clarify close, quit, and exit in IDLE. In the File menu, ‘Close’ and ‘Exit’ are now ‘Close Window’ (the current one) and ‘Exit’ is now ‘Exit IDLE’ (by closing all windows). In Shell, ‘quit()’ and ‘exit()’ mean ‘close Shell’. If there are no other windows, this also exits IDLE. - bpo-45447: Apply IDLE syntax highlighting to pyi files. Patch by Alex Waygood and Terry Jan Reedy. - bpo-46433: The internal function _PyType_GetModuleByDef now correctly handles inheritance patterns involving static types. - bpo-14916: Fixed bug in the tokenizer that prevented PyRun_InteractiveOne from parsing from the provided FD. - Remove upstreamed patches: - support-expat-245.patch- Add patch support-expat-245.patch: * Support Expat >= 2.4.5- bsc#1195831 Obsolete older "most modern" versions of python packages (python39 for python310 and so forth). For next versions it is necessary just to edit the macro.- Remove second superfluous BR rpm-build-python- Remove second superfluous BR rpm-build-python - Add fix_configure_rst.patch, which removes duplicate link targets and make documentation with old Sphinx in SLE - Skip test_capi (bsc#1195140 and bpo#37169)- Update to 3.10.2: Bugfix only - bpo#46347 memory leak in PyEval_EvalCodeEx (especially visible with Cython code) - and many others- Upgrade to 3.10.1 (jsc#SLE-18038): - PEP 623 – Deprecate and prepare for the removal of the wstr member in PyUnicodeObject. - PEP 604 – Allow writing union types as X | Y - PEP 612 – Parameter Specification Variables - PEP 626 – Precise line numbers for debugging and other tools. - PEP 618 – Add Optional Length-Checking To zip. - bpo-12782: Parenthesized context managers are now officially allowed. - PEP 632 – Deprecate distutils module. - PEP 613 – Explicit Type Aliases - PEP 634 – Structural Pattern Matching: Specification - PEP 635 – Structural Pattern Matching: Motivation and Rationale - PEP 636 – Structural Pattern Matching: Tutorial - PEP 644 – Require OpenSSL 1.1.1 or newer - PEP 624 – Remove Py_UNICODE encoder APIs - PEP 597 – Add optional EncodingWarning - Patches readjusted: - bpo-31046_ensurepip_honours_prefix.patch - python-3.3.0b1-fix_date_time_compiler.patch- Remove pdb_adjust_breakpoints.patch and instead just adjust location of the test breakpoint in Lib/test/test_pdb.py via sed, because we have shortened Lib/pdb.py by removing the shebang (bpo#45964).- Add pdb_adjust_breakpoints.patch fixing expectd results in test_pdb_breakpoints_preserved_across_interactive_sessions (bpo#45964).- Remove shebangs from from python-base libraries in _libdir (bsc#1193179). - Readjust patches: - bpo-31046_ensurepip_honours_prefix.patch - decimal.patch - python-3.3.0b1-fix_date_time_compiler.patch- Move rpm-build-python construct to correct place.- BuildRequire rpm-build-python: The provider to inject python(abi) has been moved there. rpm-build pulls rpm-build-python automatically in when building anything against python3-base, but this implies that the initial build of python3-base does not trigger the automatic installation.- Final release of 3.10.0: Complete list on https://www.python.org/downloads/release/python-3100/, but highlights are: - PEP 623 – Deprecate and prepare for the removal of the wstr member in PyUnicodeObject. - PEP 604 – Allow writing union types as X | Y - PEP 612 – Parameter Specification Variables - PEP 626 – Precise line numbers for debugging and other tools. - PEP 618 – Add Optional Length-Checking To zip. - PEP 632 – Deprecate distutils module. - PEP 613 – Explicit Type Aliases - PEP 634 – Structural Pattern Matching: Specification - PEP 635 – Structural Pattern Matching: Motivation and Rationale - PEP 636 – Structural Pattern Matching: Tutorial - PEP 644 – Require OpenSSL 1.1.1 or newer - PEP 624 – Remove Py_UNICODE encoder APIs - PEP 597 – Add optional EncodingWarning - bpo-12782: Parenthesized context managers are now officially allowed.- Switch on option --with-system-libmpdec (bsc#1189356).- Reenable profileopt with qemu emulation, test_faulthandler is no longer run during profiling- test_faulthandler is still problematic under qemu linux-user emulation, disable it there- Update to 3.10.0rc1 (the penultimate prerelease), which contains plenty of small bugfixes among others: - bpo#38605: from __future__ import annotations (PEP 563) used to be on this list in previous pre-releases but it has been postponed to Python 3.11 due to some compatibility concerns. - bpo-44600: Fix incorrect line numbers while tracing some failed patterns in match statements. Patch by Charles Burkland. - plenty of modifications in types.Union- Update to 3.10.0b4: https://docs.python.org/3.10/whatsnew/changelog.html#python-3-10-0-beta-4 - Remove python3-imp-returntype.patch which has been upstreamed.- Update to 3.10.0b2: - PEP 623 -- Deprecate and prepare for the removal of the wstr member in PyUnicodeObject. - PEP 604 -- Allow writing union types as X | Y - PEP 612 -- Parameter Specification Variables - PEP 626 -- Precise line numbers for debugging and other tools. - PEP 618 -- Add Optional Length-Checking To zip. - bpo-12782: Parenthesized context managers are now officially allowed. - PEP 632 -- Deprecate distutils module. - PEP 613 -- Explicit Type Aliases - PEP 634 -- Structural Pattern Matching: Specification - PEP 635 -- Structural Pattern Matching: Motivation and Rationale - PEP 636 -- Structural Pattern Matching: Tutorial - PEP 644 -- Require OpenSSL 1.1.1 or newer - PEP 624 -- Remove Py_UNICODE encoder APIs - PEP 597 -- Add optional EncodingWarning - Removed patches (assumed upstream): - sphinx-update-removed-function.patch- Revert previous skip over test_capi - Add skip-test_pyobject_freed_is_freed.patch to skip failing test on SLE-15.- allow build with Sphinx >= 3.x- Exclude test_capi on Leap (test fails there)- Stop providing "python" symbol (bsc#1185588), which means python2 currently.- Update to 3.9.5: * Security - bpo-43434: Creating a sqlite3.Connection object now also produces a sqlite3.connect auditing event. Previously this event was only produced by sqlite3.connect() calls. Patch by Erlend E. Aasland. - bpo-43882: The presence of newline or tab characters in parts of a URL could allow some forms of attacks. - Following the controlling specification for URLs defined by WHATWG urllib.parse() now removes ASCII newlines and tabs from URLs, preventing such attacks. - bpo-43472: Ensures interpreter-level audit hooks receive the cpython.PyInterpreterState_New event when called through the _xxsubinterpreters module. - bpo-36384: ipaddress module no longer accepts any leading zeros in IPv4 address strings. Leading zeros are ambiguous and interpreted as octal notation by some libraries. For example the legacy function socket.inet_aton() treats leading zeros as octal notatation. glibc implementation of modern inet_pton() does not accept any leading zeros. For a while the ipaddress module used to accept ambiguous leading zeros. - bpo-43075: Fix Regular Expression Denial of Service (ReDoS) vulnerability in urllib.request.AbstractBasicAuthHandler. The ReDoS-vulnerable regex has quadratic worst-case complexity and it allows cause a denial of service when identifying crafted invalid RFCs. This ReDoS issue is on the client side and needs remote attackers to control the HTTP server. - bpo-42800: Audit hooks are now fired for frame.f_code, traceback.tb_frame, and generator code/frame attribute access. * Core and Builtins - bpo-43105: Importlib now resolves relative paths when creating module spec objects from file locations. - bpo-42924: Fix bytearray repetition incorrectly copying data from the start of the buffer, even if the data is offset within the buffer (e.g. after reassigning a slice at the start of the bytearray to a shorter byte string). * Library - bpo-43993: Update bundled pip to 21.1.1. - bpo-43937: Fixed the turtle module working with non-default root window. - bpo-43930: Update bundled pip to 21.1 and setuptools to 56.0.0 - bpo-43920: OpenSSL 3.0.0: load_verify_locations() now returns a consistent error message when cadata contains no valid certificate. - bpo-43607: urllib can now convert Windows paths with \\?\ prefixes into URL paths. - bpo-43284: platform.win32_ver derives the windows version from sys.getwindowsversion().platform_version which in turn derives the version from kernel32.dll (which can be of a different version than Windows itself). Therefore change the platform.win32_ver to determine the version using the platform module’s _syscmd_ver private function to return an accurate version. - bpo-42248: [Enum] ensure exceptions raised in _missing__ are released - bpo-43799: OpenSSL 3.0.0: define OPENSSL_API_COMPAT 1.1.1 to suppress deprecation warnings. Python requires OpenSSL 1.1.1 APIs. - bpo-43794: Add ssl.OP_IGNORE_UNEXPECTED_EOF constants (OpenSSL 3.0.0) - bpo-43789: OpenSSL 3.0.0: Don’t call the password callback function a second time when first call has signaled an error condition. - bpo-43788: The header files for ssl error codes are now OpenSSL version-specific. Exceptions will now show correct reason and library codes. The make_ssl_data.py script has been rewritten to use OpenSSL’s text file with error codes. - bpo-43655: tkinter dialog windows are now recognized as dialogs by window managers on macOS and X Window. - bpo-43534: turtle.textinput() and turtle.numinput() create now a transient window working on behalf of the canvas window. - bpo-43522: Fix problem with hostname_checks_common_name. OpenSSL does not copy hostflags from struct SSL_CTX to struct SSL. - bpo-42967: Allow bytes separator argument in urllib.parse.parse_qs and urllib.parse.parse_qsl when parsing str query strings. Previously, this raised a TypeError. - bpo-43176: Fixed processing of a dataclass that inherits from a frozen dataclass with no fields. It is now correctly detected as an error. - bpo-41735: Fix thread locks in zlib module may go wrong in rare case. Patch by Ma Lin. - bpo-36470: Fix dataclasses with InitVars and replace(). Patch by Claudiu Popa. - bpo-32745: Fix a regression in the handling of ctypes’ ctypes.c_wchar_p type: embedded null characters would cause a ValueError to be raised. Patch by Zackery Spytz. * Documentation - bpo-43959: The documentation on the PyContextVar C-API was clarified. - bpo-43938: Update dataclasses documentation to express that FrozenInstanceError is derived from AttributeError. - bpo-43755: Update documentation to reflect that unparenthesized lambda expressions can no longer be the expression part in an if clause in comprehensions and generator expressions since Python 3.9. - bpo-43739: Fixing the example code in Doc/extending/extending.rst to declare and initialize the pmodule variable to be of the right type. * Tests - bpo-43961: Fix test_logging.test_namer_rotator_inheritance() on Windows: use os.replace() rather than os.rename(). Patch by Victor Stinner. - bpo-43842: Fix a race condition in the SMTP test of test_logging. Don’t close a file descriptor (socket) from a different thread while asyncore.loop() is polling the file descriptor. Patch by Victor Stinner. - bpo-43811: Tests multiple OpenSSL versions on GitHub Actions. Use ccache to speed up testing. - bpo-43791: OpenSSL 3.0.0: Disable testing of legacy protocols TLS 1.0 and 1.1. Tests are failing with TLSV1_ALERT_INTERNAL_ERROR. - Refreshed patches: - bpo-31046_ensurepip_honours_prefix.patch - python-3.3.0b1-fix_date_time_compiler.patch - Add vendorized files from bluez-devel to enable building support for Bluetooth.- Make sure to close the import_failed.map file after the exception has been raised in order to avoid ResourceWarnings when the failing import is part of a try...except block.- Update to 3.9.4: - bpo#43710: Reverted the fix for https://bugs.python.org/issue42500 as it changed the PyThreadState struct size and broke the 3.9.x ABI in the 3.9.3 release (visible on 32-bit platforms using binaries compiled using an earlier version of Python 3.9.x headers). - bpo#26053: Fixed bug where the pdb interactive run command echoed the args from the shell command line, even if those have been overridden at the pdb prompt. - bpo#42988 (bsc#1183374) CVE-2021-3426: Remove the getfile feature of the pydoc module which could be abused to read arbitrary files on the disk (directory traversal vulnerability). Moreover, even source code of Python modules can contain sensitive data like passwords. Vulnerability reported by David Schwörer. - bpo#43285: ftplib no longer trusts the IP address value returned from the server in response to the PASV command by default. This prevents a malicious FTP server from using the response to probe IPv4 address and port combinations on the client network. Code that requires the former vulnerable behavior may set a trust_server_pasv_ipv4_address attribute on their ftplib.FTP instances to True to re-enable it. - bpo#43439: Add audit hooks for gc.get_objects(), gc.get_referrers() and gc.get_referents(). Patch by Pablo Galindo. - bpo#43660: Fix crash that happens when replacing sys.stderr with a callable that can remove the object while an exception is being printed. Patch by Pablo Galindo. - bpo#43555: Report the column offset for SyntaxError for invalid line continuation characters. Patch by Pablo Galindo. - bpo#43517: Fix misdetection of circular imports when using from pkg.mod import attr, which caused false positives in non-trivial multi-threaded code. - bpo#35883: Python no longer fails at startup with a fatal error if a command line argument contains an invalid Unicode character. The Py_DecodeLocale() function now escapes byte sequences which would be decoded as Unicode characters outside the [U+0000; U+10ffff] range. - bpo#43406: Fix a possible race condition where PyErr_CheckSignals tries to execute a non-Python signal handler. - bpo#42500: Improve handling of exceptions near recursion limit. Converts a number of Fatal Errors in RecursionErrors. - bpo#43433: xmlrpc.client.ServerProxy no longer ignores query and fragment in the URL of the server. - bpo#35930: Raising an exception raised in a “future” instance will create reference cycles. - bpo#43577: Fix deadlock when using ssl.SSLContext debug callback with ssl.SSLContext.sni_callback(). - bpo#43521: ast.unparse can now render NaNs and empty sets. - bpo#43423: subprocess.communicate() no longer raises an IndexError when there is an empty stdout or stderr IO buffer during a timeout on Windows. - bpo#27820: Fixed long-standing bug of smtplib.SMTP where doing AUTH LOGIN with initial_response_ok=False will fail. The cause is that SMTP.auth_login _always_ returns a password if provided with a challenge string, thus non-compliant with the standard for AUTH LOGIN. Also fixes bug with the test for smtpd. - bpo#43332: Improves the networking efficiency of http.client when using a proxy via set_tunnel(). Fewer small send calls are made during connection setup. - bpo#43399: Fix ElementTree.extend not working on iterators when using the Python implementation - bpo#43316: The python -m gzip command line application now properly fails when detecting an unsupported extension. It exits with a non-zero exit code and prints an error message to stderr. - bpo#43260: Fix TextIOWrapper can not flush internal buffer forever after very large text is written. - bpo#42782: Fail fast in shutil.move() to avoid creating destination directories on failure. - bpo#37193: Fixed memory leak in socketserver.ThreadingMixIn introduced in Python 3.7. - bpo#43199: Answer “Why is there no goto?” in the Design and History FAQ. - bpo#43407: Clarified that a result from time.monotonic(), time.perf_counter(), time.process_time(), or time.thread_time() can be compared with the result from any following call to the same function - not just the next immediate call. - bpo#27646: Clarify that ‘yield from ’ works with any iterable, not just iterators. - bpo#36346: Update some deprecated unicode APIs which are documented as “will be removed in 4.0” to “3.12”. See PEP 623 for detail. - bpo#37945: Fix test_getsetlocale_issue1813() of test_locale: skip the test if setlocale() fails. Patch by Victor Stinner. - bpo#41561: Add workaround for Ubuntu’s custom OpenSSL security level policy. - bpo#43288: Fix test_importlib to correctly skip Unicode file tests if the fileystem does not support them. - bpo#43617: Improve configure.ac: Check for presence of autoconf-archive package and remove our copies of M4 macros. - bpo#42225: Document that IDLE can fail on Unix either from misconfigured IP masquerage rules or failure displaying complex colored (non-ascii) characters. - bpo#43283: Document why printing to IDLE’s Shell is often slower than printing to a system terminal and that it can be made faster by pre-formatting a single string before printing.- Update to 3.9.2: - bpo#42938 (bsc#1181126): Avoid static buffers when computing the repr of ctypes.c_double and ctypes.c_longdouble values. This issue was assigned CVE-2021-3177. - bpo#42967 (bsc#1182379): Fix web cache poisoning vulnerability by defaulting the query args separator to &, and allowing the user to choose a custom separator. This issue was assigned CVE-2021-23336. - Upstreamed patches were removed: - CVE-2021-3177-buf_ovrfl_PyCArg_repr.patch - bsc1167501-invalid-alignment.patch - skip_random_failing_tests.patch - CVE-2019-5010-null-defer-x509-cert-DOS.patch- Add Obsoletes for python3-base when primary interpreter is set to properly replace it during upgrades. (bsc#1181324)- Update to 3.9.1: Security bugs: - Prevented potential DoS attack via CPU and RAM exhaustion when processing malformed Apple Property List files in binary format. - The plistlib module no longer accepts entity declarations in XML plist files to avoid XML vulnerabilities. This should not affect users as entity declarations are not used in regular plist files. - Add volatile to the accumulator variable in hmac.compare_digest, making constant-time-defeating optimizations less likely. Core and Builtins - Allow assignment expressions in set literals and set comprehensions as per PEP 572. Patch by Pablo Galindo. - Fix a regression introduced by the new parser, where an unparenthesized walrus operator was not allowed within generator expressions. - types.GenericAlias objects can now be the targets of weakrefs. - Fixed a bug in the PEG parser that was causing crashes in debug mode. Now errors are checked in left-recursive rules to avoid cases where such errors do not get handled in time and appear as long-distance crashes in other places. - Fixed a possible crash in the PEG parser when checking for the ‘!=’ token in the barry_as_flufl rule. Patch by Pablo Galindo. - Fix handling of errors during creation of PyFunctionObject, which resulted in operations on uninitialized memory. Patch by Yonatan Goldschmidt. - Fix a bug in the parser, where a curly brace following a primary didn’t fail immediately. This led to invalid expressions like a {b} to throw a SyntaxError with a wrong offset, or invalid expressions ending with a curly brace like a { to not fail immediately in the REPL. - Fix possible buffer overflow in the new parser when checking for continuation lines. Patch by Pablo Galindo. - Run the parser two times. On the first run, disable all the rules that only generate better error messages to gain performance. If there’s a parse failure, run the parser a second time with those enabled. - Document the default implementation of object.__eq__. - Fix peephole optimizer misoptimize conditional jump + JUMP_IF_NOT_EXC_MATCH pair. - The garbage collector now tracks all user-defined classes. Patch by Brandt Bucher. - Fixed potential issues with removing not completely initialized module from sys.modules when import fails. - Star-unpacking is now allowed for with item’s targets in the PEG parser. - Fixed stack overflow in issubclass() and isinstance() when getting the __bases__ attribute leads to infinite recursion. - When loading a native module and a load failure occurs, prevent a possible UnicodeDecodeError when not running in a UTF-8 locale by decoding the load error message using the current locale’s encoding. - Correctly count control blocks in ‘except’ in compiler. Ensures that a syntax error, rather a fatal error, occurs for deeply nested, named exception handlers. Library - types.GenericAlias will now raise a TypeError when attempting to initialize with a keyword argument. Previously, this would cause the interpreter to crash if the interpreter was compiled with debug symbols. This does not affect interpreters compiled for release. Patch by Ken Jin. - CGIHTTPRequestHandler.run_cgi() HTTP_ACCEPT improperly parsed. Replace the special purpose getallmatchingheaders with generic get_all method and add relevant tests. - inspect.findsource() now raises OSError instead of IndexError when co_lineno of a code object is greater than the file length. This can happen, for example, when a file is edited after it was imported. PR by Irit Katriel. - Fix handling of trailing comments by inspect.getsource(). - ChainMap.__iter__ no longer calls __getitem__ on underlying maps - TracebackException no longer holds a reference to the exception’s traceback object. Consequently, instances of TracebackException for equivalent but non-equal exceptions now compare as equal. - We fixed an issue in pickle.whichmodule in which importing multiprocessing could change the how pickle identifies which module an object belongs to, potentially breaking the unpickling of those objects. - Clarify the error message for asyncio.IncompleteReadError when expected is None. - Extracting a symlink from a tarball should succeed and overwrite the symlink if it already exists. The fix is to remove the existing file or symlink before extraction. Based on patch by Chris AtLee, Jeffrey Kintscher, and Senthil Kumaran. - Fixed tkinter.ttk.Style.map(). The function accepts now the representation of the default state as empty sequence (as returned by Style.map()). The structure of the result is now the same on all platform and does not depend on the value of wantobjects. - Fix various issues with typing.Literal parameter handling (flatten, deduplicate, use type to cache key). Patch provided by Yurii Karabas. - Fix the threading.Thread class at fork: do nothing if the thread is already stopped (ex: fork called at Python exit). Previously, an error was logged in the child process. - The onerror callback from shutil.rmtree now receives correct function when os.open fails. - Fix os.sendfile() on illumos. - Fixed writing binary Plist files larger than 4 GiB. - The repr() of typing types containing Generic Alias Types previously did not show the parameterized types in the GenericAlias. They have now been changed to do so. - webbrowser: Ignore NotADirectoryError when calling xdg-settings. - binhex.binhex() consisently writes macOS 9 line endings. - Fix a stack overflow error for asyncio Task or Future repr(). - The overflow occurs under some circumstances when a Task or Future recursively returns itself. - Fix memory leak in subprocess.Popen() in case an uid (gid) specified in user (group, extra_groups) overflows uid_t (gid_t). - Improve asyncio.wait function to create the futures set just one time. - InvalidFileException and RecursionError are now the only errors caused by loading malformed binary Plist file (previously ValueError and TypeError could be raised in some specific cases). - Pickling heap types implemented in C with protocols 0 and 1 raises now an error instead of producing incorrect data. - plistlib: fix parsing XML plists with hexadecimal integer values - Fix an incorrectly formatted error from _codecs.charmap_decode() when called with a mapped value outside the range of valid Unicode code points. PR by Max Bernstein. - Fix pickling pure Python datetime.time subclasses. Patch by Dean Inwood. - Fixed a bug that was causing ctypes.util.find_library() to return None when triying to locate a library in an environment when gcc>=9 is available and ldconfig is not. Patch by Pablo Galindo - C14N 2.0 serialisation in xml.etree.ElementTree failed for unprefixed attributes when a default namespace was defined. - Fix a bug in the symtable module that was causing module-scope global variables to not be reported as both local and global. Patch by Pablo Galindo. - str() for the type attribute of the tkinter.Event object always returns now the numeric code returned by Tk instead of the name of the event type. - fix tkinter.EventType Enum so all members are strings, and none are tuples - Fix SQLite3 segfault when backing up closed database. Patch contributed by Peter David McCormick. - Fix the tarfile module to write only basename of TAR file to GZIP compression header. - Allow ctypes.wintypes to be imported on non-Windows systems. - shutil.which() now ignores empty entries in PATHEXT instead of treating them as a match. - Fix time-of-check/time-of-action issue in subprocess.Popen.send_signal. - Fix --outfile for cProfile / profile not writing the output file in the original directory when the program being profiled changes the working directory. PR by Anthony Sottile. - ZipFile truncates files to avoid corruption when a shorter comment is provided in append (“a”) mode. Patch by Jan Mazur. - Fixed KeyError exception when flattening an email to a string attempts to replace a non-existent Content-Transfer-Encoding header. Documentation - Fix the URL for the IMAP protocol documents. - Document __format__ functionality for IP addresses. - Clarify that subscription expressions are also valid for certain classes and types in the standard library, and for user-defined classes and types if the classmethod __class_getitem__() is provided. - Documented generic alias type and types.GenericAlias. Also added an entry in glossary for generic types. - In Programming FAQ “Sequences (Tuples/Lists)” section, add “How do you remove multiple items from a list”. - Fix RemovedInSphinx40Warning when building the documentation. Patch by Dong-hee Na. - Update the refcounts info of PyType_FromModuleAndSpec. - Fix tarfile’s extractfile documentation - Document some restrictions on the default string representations of numeric classes. Tests - Reenable test_gdb on gdb 9.2 and newer: https://bugzilla.redhat.com/show_bug.cgi?id=1866884 bug is fixed in gdb 10.1. - Fix test_asyncio.test_call_later() race condition: don’t measure asyncio performance in the call_later() unit test. The test failed randomly on the CI. - Include _testinternalcapi module in Windows installer for test suite - Fix test_logging.test_race_between_set_target_and_flush(): the test now waits until all threads complete to avoid leaking running threads. - Avoid a test failure in test_lib2to3 if the module has already imported at the time the test executes. Patch by Pablo Galindo. - Tests for CJK codecs no longer call eval() on content received via HTTP. - Fix test_site.test_license_exists_at_url(): call urllib.request.urlcleanup() to reset the global urllib.request._opener. Patch by Victor Stinner. - test_ssl: skip test_min_max_version_mismatch when TLS 1.0 is not available - Add tests for SIGINT handling in the runpy module. - Fixed a failure in test_tk.test_widgets.ScaleTest happening when executing the test with Tk 8.6.10. Build - Fix a race condition in “make regen-all” when make -jN option is used to run jobs in parallel. The clinic.py script now only use atomic write to write files. Moveover, generated files are now left unchanged if the content does not change, to not change the file modification time. - Update Py_UNREACHABLE to use __builtin_unreachable() if only the compiler is able to use it. Patch by Dong-hee Na. - Addressed three compiler warnings found by undefined behavior sanitizer (ubsan). IDLE - Fix reporting offset of the RE error in searchengine. - Get docstrings for IDLE calltips more often by using inspect.getdoc. - Mostly finish using ttk widgets, mainly for editor, settings, and searches. Some patches by Mark Roseman. - Use ‘IDLE Shell’ as shell title - Rewrite the Calltips doc section. - In calltips, stop reminding that ‘/’ marks the end of positional-only arguments. - Typing opening and closing parentheses inside the parentheses of a function call will no longer cause unnecessary “flashing” off and on of an existing open call-tip, e.g. when typed in a string literal. C API - Fix potential crash in deallocating method objects when dynamically allocated PyMethodDef’s lifetime is managed through the self argument of a PyCFunction. - Py_FileSystemDefaultEncodeErrors and Py_UTF8Mode are available again in limited API. - Readjustet and reapplied patches: - CVE-2021-3177-buf_ovrfl_PyCArg_repr.patch - bpo-31046_ensurepip_honours_prefix.patch - python-3.3.0b1-fix_date_time_compiler.patch - skip_random_failing_tests.patch - sphinx-update-removed-function.patch- Add CVE-2021-3177-buf_ovrfl_PyCArg_repr.patch fixing bsc#1181126 (CVE-2021-3177) buffer overflow in PyCArg_repr in _ctypes/callproc.c, which may lead to remote code execution.- (bsc#1180125) We really don't Require python-rpm-macros package. Unnecessary dependency.- Make python39-doc building again - Add no-skipif-doctests.patch, because SLE-15 version of Sphinx doesn't know about skipif directive in doctests.- Update sphinx-update-removed-function.patch patch to the latest version in python36.- Last try before this results in an editwar: * remove importlib_resources and importlib-metadata provides/obsoletes * import importlib_resources is not the same as import importlib.resources, same for metadata * The backport packages from PyPI needed for older flavors are specified as such for setuptools or in pyproject.toml. If a package requires them they typically add them with a python version qualifier and the packages have their own version numbers.- Add patch sphinx-update-removed-function.patch to no longer call a now removed function and to make documentation build independent of the Sphinx version (bsc#1179630, gh#python/cpython#13236).- Don't require packages which break build on SLE-15 although we really don't need them (python3-python-docs-theme and python3-sphinxcontrib-qthelp).- Fix build with RPM 4.16: error: bare words are no longer supported, please use "...": x86 == ppc.- Update to the final version 3.9.0: Complete changelog with all (many) changes from previous version is on https://docs.python.org/release/3.9.0/whatsnew/3.9.html Changes from the previous RC versions (not that many) are on https://docs.python.org/release/3.9.0/whatsnew/changelog.html#changelog- Buildrequire timezone only for general flavor. It's used in this flavor for the test suite.- Update to 3.9.0rc1: * Core and Builtins - bpo-38156: Handle interrupts that come after EOF correctly in PyOS_StdioReadline. * Library - bpo-41497: Fix potential UnicodeDecodeError in dis module. - bpo-41490: Update ensurepip to install pip 20.2.1 and setuptools 49.2.1. - bpo-41467: On Windows, fix asyncio recv_into() return value when the socket/pipe is closed (BrokenPipeError): return 0 rather than an empty byte string (b''). - bpo-41425: Make tkinter doc example runnable. - bpo-41384: Raise TclError instead of TypeError when an unknown option is passed to tkinter.OptionMenu. - bpo-38731: Fix NameError in command-line interface of py_compile. - bpo-41317: Use add_done_callback() in asyncio.loop.sock_accept() to unsubscribe reader early on cancellation. - bpo-41364: Reduce import overhead of uuid. - bpo-41341: Recursive evaluation of typing.ForwardRef in get_type_hints. - bpo-41182: selector: use DefaultSelector based upon implementation - bpo-40726: Handle cases where the end_lineno is None on ast.increment_lineno(). * Documentation - bpo-41045: Add documentation for debug feature of f-strings. - bpo-41314: Changed the release when from __future__ import annotations becomes the default from 4.0 to 3.10 (following a change in PEP 563). * Windows - bpo-41492: Fixes the description that appears in UAC prompts. - bpo-40948: Improve post-install message to direct people to the “py” command. - bpo-41412: The installer will now fail to install on Windows 7 and Windows 8. Further, the UCRT dependency is now always downloaded on demand. - bpo-40741: Update Windows release to include SQLite 3.32.3. * IDLE - bpo-41468: Improve IDLE run crash error message (which users should never see). - bpo-41373: Save files loaded with no line ending, as when blank, or different line endings, by setting its line ending to the system default. Fix regression in 3.8.4 and 3.9.0b4.- Synchronize formatting and fixes with python38.- Increase testsuite timeout to account for super long running test_peg_generator- Removed CVE-2019-20907_tarfile-inf-loop.patch: fixed in upstream - Removed recursion.tar: contained in upstream - Update to 3.9.0b5: - bpo-41304: Fixes python3x._pth being ignored on Windows, caused by the fix for bpo-29778 (CVE-2020-15801). - bpo-41162: Audit hooks are now cleared later during finalization to avoid missing events. - bpo-29778: Ensure python3.dll is loaded from correct locations when Python is embedded (CVE-2020-15523). - bpo-39603: Prevent http header injection by rejecting control characters in http.client.putrequest(…). - bpo-41295: Resolve a regression in CPython 3.8.4 where defining “__setattr__” in a multi-inheritance setup and calling up the hierarchy chain could fail if builtins/extension types were involved in the base types. - bpo-41247: Always cache the running loop holder when running asyncio.set_running_loop. - bpo-41252: Fix incorrect refcounting in _ssl.c’s _servername_callback(). - bpo-41215: Use non-NULL default values in the PEG parser keyword list to overcome a bug that was ' preventing Python from being properly compiled when using the XLC compiler. Patch by Pablo Galindo. - bpo-41218: Python 3.8.3 had a regression where compiling with ast.PyCF_ALLOW_TOP_LEVEL_AWAIT would aggressively mark list comprehension with CO_COROUTINE. Now only list comprehension making use of async/await will tagged as so. - bpo-41175: Guard against a NULL pointer dereference within bytearrayobject triggered by the bytearray() + bytearray() operation. - bpo-39960: The “hackcheck” that prevents sneaking around a type’s __setattr__() by calling the superclass method was rewritten to allow C implemented heap types. - bpo-41288: Unpickling invalid NEWOBJ_EX opcode with the C implementation raises now UnpicklingError instead of crashing. - bpo-39017: Avoid infinite loop when reading specially crafted TAR files using the tarfile module (CVE-2019-20907, bsc#1174091). - bpo-41235: Fix the error handling in ssl.SSLContext.load_dh_params(). - bpo-41207: In distutils.spawn, restore expectation that DistutilsExecError is raised when the command is not found. - bpo-39168: Remove the __new__ method of typing.Generic. - bpo-41194: Fix a crash in the _ast module: it can no longer be loaded more than once. It now uses a global state rather than a module state. - bpo-39384: Fixed email.contentmanager to allow set_content() to set a null string. - bpo-41300: Save files with non-ascii chars. Fix regression released in 3.9.0b4 and 3.8.4. - bpo-37765: Add keywords to module name completion list. Rewrite Completions section of IDLE doc. - bpo-40170: Revert PyType_HasFeature() change: it reads again directly the PyTypeObject.tp_flags member when the limited C API is not used, rather than always calling PyType_GetFlags() which hides implementation details.- Add CVE-2019-20907_tarfile-inf-loop.patch fixing bsc#1174091 (CVE-2019-20907, bpo#39017) avoiding possible infinite loop in specifically crafted tarball. Add recursion.tar as a testing tarball for the patch.- Changed bpo-31046_ensurepip_honours_prefix.patch to include fix from py3.8- Spec file fixes - Re-added subprocess-raise-timeout.patch: now compatible - Removed bpo34022-stop_hash-based_invalidation_w_SOURCE_DATE_EPOCH.patch: contained in upstream- Fix minor issues found in the staging.- Do not set ourselves as primary interpreter- Update to 3.9.0b4: - PEP 584, Union Operators in dict - PEP 585, Type Hinting Generics In Standard Collections - PEP 593, Flexible function and variable annotations - PEP 602, Python adopts a stable annual release cadence - PEP 615, Support for the IANA Time Zone Database in the Standard Library - PEP 616, String methods to remove prefixes and suffixes - PEP 617, New PEG parser for CPython - bpo#38379, garbage collection does not block on resurrected objects; - bpo#38692, os.pidfd_open added that allows process management without races and signals; - bpo#39926, Unicode support updated to version 13.0.0; - bpo#1635741, when Python is initialized multiple times in the same process, it does not leak memory anymore; - A number of Python builtins (range, tuple, set, frozenset, list, dict) are now sped up using PEP 590 vectorcall; - A number of Python modules (_abc, audioop, _bz2, _codecs, _contextvars, _crypt, _functools, _json, _locale, operator, resource, time, _weakref) now use multiphase initialization as defined by PEP 489; - A number of standard library modules (audioop, ast, grp, _hashlib, pwd, _posixsubprocess, random, select, struct, termios, zlib) are now using the stable ABI defined by PEP 384. - Remove upstreamed patches: - F00102-lib64.patch - SUSE-FEDORA-multilib.patch - OBS_dev-shm.patch - subprocess-raise-timeout.patch - bpo36302-sort-module-sources.patch - bpo40784-Fix-sqlite3-deterministic-test.patch- Update pre_checkin.sh and regenerate- Convert few dependencies to their pkgconfig counterparts- Remove release requirement on libpython, it is not really needed to be equal as the abi changes with versions- Add provides python3-bla on all the subpkgs in case we are primary provider of the functionality- Remove unversioned files from devel subpkg too - Remove main python3 files from -base based whether we are primary interpreter or not - Fix idle to be co-installable - Add condition to be primary to provide/obsolete python3-* - Fix doc to build in versioned folder so the pythons can be installed next to each other- Revert the full versioning of calls on the macros. These are generic so they should really just call python3 X- For the doc package we can build with generic flavor, we don't need the our-interpreter based one- Add provides for pytohn3X-typing/etc to allow BR on those still to work when needed- Change macros.python3 to use full versioned 3.8 instead of just 3 for python interpreter- Reduce some now unused conditionals- Redux the -base dependencies to match up pre-merge layout- Generate baselibs in pre-checkin too- Generate the importlib-failed using pre_checking again - Add back the information about skipped tests on the pre_checkin output- Use %python_pkg_name instead of hardcoding python3 where applicable - Sort out preamble with spec-cleaner- Calculate required variables instead of relying on their continuous manual update- Fix the -base module build again to generate only the deps we need- Replace OBS_dev-shm.patch with the upstream PR#20944- Use the %{python_pkg_name} on more places to allow easier multiversioning - Switch to _multibuild approach for easier maintenance of this package. All is now in one spec file with 3 conditionals: * bcond_with base * bcond_with doc * bcond_with general- add requires python3-base on libpython subpackage (bsc#1167008)- build against Sphinx 2.x until python is compatible with Sphinx 3.x (see gh#python/cpython#19397, bpo#40204)- Fix build with SQLite 3.32 (bpo#40783) add bpo40784-Fix-sqlite3-deterministic-test.patch- Update to version 3.8.3: - Complete list of changes is available at https://docs.python.org/release/3.8.3/whatsnew/changelog.html#python-3-8-3-final, but most of them are just bugfixes. - Removed patch CVE-2020-8492-urllib-ReDoS.patch: contained in upstream- Add #!BuildIgnore: gdk-pixbuf-loader-rsvg to python3 SPEC- Add patch bsc1167501-invalid-alignment.patch (bsc#1167501, bpo#40052) to fix alignment in abstract.h header file.- Update list of skipped tests for qemu linux-user build, test_setegid (test.test_os.PosixUidGidTests) is confusing it- Update to 3.8.2: - Complete list of changes is available at https://docs.python.org/release/3.8.2/whatsnew/changelog.html#python-3-8-2-final, but most of them are just bugfixes. - Updated patches: - F00102-lib64.patch - OBS_dev-shm.patch - SUSE-FEDORA-multilib.patch - subprocess-raise-timeout.patch- Add CVE-2020-8492-urllib-ReDoS.patch fixing the security bug "Python urrlib allowed an HTTP server to conduct Regular Expression Denial of Service (ReDoS)" (bsc#1162367)- Add Requires: libpython%{so_version} == %{version}-%{release} to python3-base to keep both packages always synchronized (bsc#1162224).- Do not pull in bluez in base again, explain the cycle, it needs to be solved by bluez maintainer for us by providing just the headers separately- Reame idle icons to idle3 in order to not conflict with python2 variant of the package * renamed the icons * renamed icon load in desktop file- Add importlib_resources provide/obsolete as it is integral part of the lang since 3.7 release- Add -fno-semantic-interposition as it brings speed up: https://fedoraproject.org/wiki/Changes/PythonNoSemanticInterpositionSpeedup- Update to 3.8.1: - This is mainly bugfix release and no significant changes to API are expected. The full changelog is available on https://docs.python.org/3.8/whatsnew/changelog.html#python-3-8-1 - Remove bpo-38688_shutil.copytree_prevent-infinite-recursion.patch, which is included in the upstream tarball.- Add bpo-31046_ensurepip_honours_prefix.patch which makes ensurepip to honour the value of $(prefix). Proposed fix for bpo#31046..- Move bluez-devel dependency to base as it is needed for socket.AF_BLUETOOTH and otherwise does not work- Reintroduce QtHelp with the help of the new BR python-sphinxcontrib-qthelp.- Fix SUSE-FEDORA-multilib.patch, the platform agnostic infix for library installation is "lib", not "dir".- Move idle subpackage build from python3-base to python3. appstream-glib required for packaging introduces considerable extra dependencies and a build loop via rust/librsvg. - Correct installation of idle IDE icons: + idle.png is not the target directory + non-GNOME-specific icons belong into icons/hicolor - Add required Name key to idle3 desktop file- Update to the final release 3.8.0. . - New Features: - Assignment expressions - Positional-only parameters - Parallel filesystem cache for compiled bytecode files - Debug build uses the same ABI as release build - f-strings support = for self-documenting expressions and debugging - PEP 578: Python Runtime Audit Hooks - PEP 587: Python Initialization Configuration - Vectorcall: a fast calling protocol for CPython - Pickle protocol 5 with out-of-band data buffers - New modules: - importlib.metadata - Improved modules: - ast asyncio, builtins, collections, curses, ctypes, datetime, functools, gc, gettext, gzip, idelib and IDLE, inspect, io, json.tool, math, mmap, multiprocessing, os, os.path, pathlib, pickle, plistlib, py_compile, shlex, shutil, socket, ssl, statistics, sys, tarfile, threading, tokenize, tkinter, time, typing, unicodedata, unittest, venv, weakref, xml - C API improvements - bdist_winnst command has been deprecated (use bdist_wheel) - https://docs.python.org/3.8/whatsnew/3.8.html remains rest of changes including documentation on how to port your programs to the current version of Python.- Add idle3.appdata.xml and idle3.desktop (originally from Fedora) to make Idle3 full GUI desktop application. (bsc#1153830)- Drop intltool from BuildRequires. Doesn't appear to be used.- Add folder version to allow tarball downloads even for beta/rc releases- Revert patches from Fedora (F00102-lib64.patch and F00251-change-user-install-location.patch) into their original prisitine Fedora versions, SUSE-FEDORA-multilib.patch refreshed accordingly.- Correct quotation of platsubdir in Lib/distutils/command/install.py- Replace python-3.6.0-multilib.patch with two patches from Fedora (F00102-lib64.patch and F00251-change-user-install-location.patch), and our own SUSE-FEDORA-multilib.patch to allow better cooperation with Fedora and better upstreaming. - Add OBS_dev-shm.patch fixing bpo#38377- Pull in just gettext and let solver to sort out between: gettext-runtime-mini and gettext-runtime- Update to 3.8.0rc1. Overall changes from 3.7: - PEP 572, Assignment expressions - PEP 570, Positional-only arguments - PEP 587, Python Initialization Configuration (improved embedding) - PEP 590, Vectorcall: a fast calling protocol for CPython - PEP 578, Runtime audit hooks - PEP 574, Pickle protocol 5 with out-of-band data - Typing-related: PEP 591 (Final qualifier), PEP 586 (Literal types), and PEP 589 (TypedDict) - Parallel filesystem cache for compiled bytecode - Debug builds share ABI as release builds, also the 'm' ABI tag was removed (irrelevant since 3.4), bpo#36707 - f-strings support a handy = specifier for debugging - continue is now legal in finally: blocks - on Windows, the default asyncio event loop is now ProactorEventLoop - on macOS, the spawn start method is now used by default in multiprocessing - multiprocessing can now use shared memory segments to avoid pickling costs between processes - typed_ast is merged back to CPython - LOAD_GLOBAL is now 40% faster - pickle now uses Protocol 4 by default, improving performance - Refreshed patches: - CVE-2019-5010-null-defer-x509-cert-DOS.patch - python-3.3.0b1-fix_date_time_compiler.patch - python-3.6.0-multilib.patch - subprocess-raise-timeout.patch- Add bpo36302-sort-module-sources.patch (boo#1041090)- Try harder obsoleting importlib-metadata- Update to 3.8.0b4: Many bugfixes, full list on https://docs.python.org/3.8/whatsnew/changelog.html#python-3-8-0-beta-4- Re-enable test_threading on aarch64- Remove xrpm from subpackage tk description- Update to 3.8.0b3: Many bugfixes, full list on https://docs.python.org/3.8/whatsnew/changelog.html#python-3-8-0-beta-3 - Patches reapplied: - python-3.3.0b1-fix_date_time_compiler.patch - python-3.3.0b1-test-posix_fadvise.patch - python-3.6.0-multilib.patch - subprocess-raise-timeout.patch- Add Provides: python3-importlib-metadata- Update to 3.8.0b2: Many bugfixes, full list on https://docs.python.org/3.8/whatsnew/changelog.html#python-3-8-0-beta-2 - Patches included in upstream: - bpo-37169_PyObject_IsFreed.patch - Patches reapplied: - 00251-change-user-install-location.patch - distutils-reproducible-compile.patch - python-3.3.0b1-localpath.patch - python-3.6.0-multilib.patch- Update list of skipped tests for qemu linux-user build - Don't do profiling in qemu linux-user build- Update to 3.8.0b1 (changes since 3.7.*): - PEP 572, Assignment expressions - PEP 570, Positional-only arguments - PEP 587, Python Initialization Configuration (improved embedding) - PEP 590, Vectorcall: a fast calling protocol for CPython - PEP 578, Runtime audit hooks - PEP 574, Pickle protocol 5 with out-of-band data - Typing-related: PEP 591 (Final qualifier), PEP 586 (Literal types), and PEP 589 (TypedDict) - Parallel filesystem cache for compiled bytecode - Debug builds share ABI as release builds - f-strings support a handy = specifier for debugging - continue is now legal in finally: blocks - multiprocessing can now use shared memory segments to avoid pickling costs between processes - typed_ast is merged back to CPython - LOAD_GLOBAL is now 40% faster - pickle now uses Protocol 4 by default, improving performance - Remove patches which were included in the upstream: - 00251-change-user-install-location.patch - 00316-mark-bdist_wininst-unsupported.patch - CVE-2019-9947-no-ctrl-char-http.patch - raise_SIGING_not_handled.patch- Set _lto_cflags to nil as the package is using LTO via --enable-lto. That will prevent to propage LTO for Python modules that are built in a separate package.- Update to 3.8.0.a3: - PEP 572: Assignment Expressions. - Other (mostly small) changes are on https://docs.python.org/3.8/whatsnew/changelog.html#python-3-8-0-alpha-3- bsc#1130840 (CVE-2019-9947): add CVE-2019-9947-no-ctrl-char-http.patch Address the issue by disallowing URL paths with embedded whitespace or control characters through into the underlying http client request. Such potentially malicious header injection URLs now cause a ValueError to be raised.- Fix metadata of patches. - Rename boo1071941-make-install-in-sep-loc.patch to 00251-change-user-install-location.patch which is the original name, so it can be looked up in the Fedora VCS.- Mark distutils bdist_wininst command unsupported with 00316-mark-bdist_wininst-unsupported.patch - Remove Windows bdist_wininst executables from runtime package- Update to 3.7.3, which is the maintenance release without any significant changes in API. - Updated patches: - CVE-2019-5010-null-defer-x509-cert-DOS.patch - distutils-reproducible-compile.patch - python-3.3.0b1-fix_date_time_compiler.patch - python-3.6.0-multilib.patch - raise_SIGING_not_handled.patch- Remove building of Qt Develop help files.- Return distutils-reproducible-compile.patch which is still missing (still unfinished bpo#29708).- Update to 3.8.0a2: * List of all (mostly small) changes are on https://docs.python.org/3.8/whatsnew/changelog.html#python-3-8-0-alpha-2- Build nis module again.- Update to 3.8.0a1: * The most visible change so far is probably the implementation of PEP 572: Assignment Expressions. For a detailed list of changes, see: https://docs.python.org/3.8/whatsnew/changelog.html * Recover building of nis module properly in python3 package - Update patches: * CVE-2019-5010-null-defer-x509-cert-DOS.patch * python-3.3.0b1-fix_date_time_compiler.patch * python-3.3.0b1-test-posix_fadvise.patch * python-3.6.0-multilib.patch * raise_SIGING_not_handled.patch- Put LICENSE file where it belongs (bsc#1121852)- bsc#1122191: add CVE-2019-5010-null-defer-x509-cert-DOS.patch fixing bpo-35746. An exploitable denial-of-service vulnerability exists in the X509 certificate parser of Python.org Python 2.7.11 / 3.7.2. A specially crafted X509 certificate can cause a NULL pointer dereference, resulting in a denial of service. An attacker can initiate or accept TLS connections using crafted certificates to trigger this vulnerability.- Do not require full gettext in order to avoid pulling in the glib2 as a dependency- Update to 3.7.2: * bugfix release: https://docs.python.org/3.7/whatsnew/changelog.html#changelog- Stop applying python-3.6.0-multilib-new.patch (which is still WIP), and apply the old proven python-3.6.0-multilib.patch instead.- Use upstream-recommended %{_rpmconfigdir}/macros.d directory for the rpm macros.- Upgrade to 3.7.2rc1: * bugfix release, for the full list of all changes see https://docs.python.org/3.7/whatsnew/changelog.html#changelog - Make run of the test suite more verbose- Write summaries without em dashes.- Remove python-3.3.0b1-curses-panel.patch it is unnecessary anymore. - Add boo1071941-make-install-in-sep-loc.patch to make pip and distutils in user environment install into separate location (boo#1071941) Set values of prefix and exec_prefix in distutils install command to /usr/local if executable is /usr/bin/python* and RPM build is not detected to make pip and distutils install into separate location - Remove finally python-3.3.3-skip-distutils-test_sysconfig_module.patch - Remove distutils-reproducible-compile.patch which doesn't make really much difference in reproducibility (see gh#python/cpython#8057 and discussion there).- Rename Stop_hash-based_invalidation_w_SOURCE_DATE_EPOCH.patch to bpo34022-stop_hash-based_invalidation_w_SOURCE_DATE_EPOCH.patch- Add dependency on bluez-devel to build support for Bluetooth (boo#1109998)- Add devhelp subpackage and split qthelp into another subpackage.- Remove python-3.0b1-record-rpm.patch and Python-3.0b1-record-rpm.patch, as they are not needed anymore- Switch off test_threading for optimization builds.- Update to python-3.7.1. This is just a brief overview, complete changelog available at https://docs.python.org/3.7/whatsnew/changelog.html#python-3-7-1-final: Library bpo-34970: Protect tasks weak set manipulation in asyncio.all_tasks() - Patches already accepted upstream are removed: * 00307-allow-to-call-Py_Main-after-Py_Initialize.patch * 00308-tls-1.3.patch - New patches added: * Stop_hash-based_invalidation_w_SOURCE_DATE_EPOCH.patch * raise_SIGING_not_handled.patch - All other patches refreshed via quilt.- Add raise_SIGING_not_handled.patch to fix bsc#1094814- Add patch to fix importlib return types: * python3-imp-returntype.patch- bpo-34022 still not completely fixed, so we have to keep excluding test_cmd_line_script, test_multiprocessing_main_handling, and test_runpy from the test suite.- Update to python 3.7.1~rc2: Core and Builtins bpo-34879: Fix a possible null pointer dereference in bytesobject.c. Patch by Zackery Spytz. bpo-34854: Fixed a crash in compiling string annotations containing a lambda with a keyword-only argument that doesn’t have a default value. bpo-34320: Fix dict(od) didn’t copy iteration order of OrderedDict. Library bpo-34769: Fix for async generators not finalizing when event loop is in debug mode and garbage collector runs in another thread. bpo-34922: Fixed integer overflow in the digest() and hexdigest() methods for the SHAKE algorithm in the hashlib module. bpo-34900: Fixed unittest.TestCase.debug() when used to call test methods with subtests. Patch by Bruno Oliveira. bpo-34871: Fix inspect module polluted sys.modules when parsing __text_signature__ of callable. bpo-34872: Fix self-cancellation in C implementation of asyncio.Task bpo-34819: Use a monotonic clock to compute timeouts in Executor.map() and as_completed(), in order to prevent timeouts from deviating when the system clock is adjusted. bpo-34334: In QueueHandler, clear exc_text from LogRecord to prevent traceback from being written twice. bpo-6721: Acquire the logging module’s commonly used internal locks while fork()ing to avoid deadlocks in the child process. bpo-34172: Fix a reference issue inside multiprocessing.Pool that caused the pool to remain alive if it was deleted without being closed or terminated explicitly. Documentation bpo-32174: chm document displays non-ASCII charaters properly on some MBCS Windows systems. Tests bpo-32962: Fixed test_gdb when Python is compiled with flags - mcet -fcf-protection -O0. C API bpo-34910: Ensure that PyObject_Print() always returns -1 on error. Patch by Zackery Spytz.- Add Stop_hash-based_invalidation_w_SOURCE_DATE_EPOCH.patch to fix problems with SOURCE_DATE_EPOCH variable (bpo-34022)- Add patch to fix build with tls1.3 supported openssl * 00308-tls-1.3.patch - Add patch to fix Py_Main calls after Py_initialize * 00307-allow-to-call-Py_Main-after-Py_Initialize.patch- Add -fwrapv to OPTS, which is default for python3 anyway See for example https://github.com/zopefoundation/persistent/issues/86 for bugs which are caused by avoiding it.- Fix ownership of _contextvars, _queue, and _xxtestfuzz- Switch off LTO for distros with older GCC - Fix %files- Add dependency over libuuid-devel- update to python 3.7.0 Complete overview of changes is available on https://docs.python.org/3/whatsnew/3.7.html, these are just highlights: * PEP 563, postponed evaluation of type annotations. * async and await are now reserved keywords. * New library modules: contextvars: PEP 567 – Context Variables dataclasses: PEP 557 – Data Classes importlib.resources * New built-in features: PEP 553, the new breakpoint() function. * Python data model improvements: PEP 562, customization of access to module attributes. PEP 560, core support for typing module and generic types. the insertion-order preservation nature of dict objects has been declared to be an official part of the Python language spec. * Significant improvements in the standard library: The asyncio module has received new features, significant usability and performance improvements. The time module gained support for functions with nanosecond resolution. * CPython implementation improvements: Avoiding the use of ASCII as a default text encoding: PEP 538, legacy C locale coercion PEP 540, forced UTF-8 runtime mode PEP 552, deterministic .pycs the new development runtime mode PEP 565, improved DeprecationWarning handling * C API improvements: PEP 539, new C API for thread-local storage * Documentation improvements: PEP 545, Python documentation translations New documentation translations: Japanese, French, and Korean. - drop python3-sorted_tar.patch - drop 0001-allow-for-reproducible-builds-of-python-packages.patch - refresh python-3.6.0-multilib-new.patch - refresh subprocess-raise-timeout.patch * new C API for thread-local storage * Deterministic pyc files * Built-in breakpoint() * Data Classes * Core support for typing module and generic types * Customization of access to module attributes * Postponed evaluation of annotations * Time functions with nanosecond resolution * Improved DeprecationWarning handling * Context Variables * Avoiding the use of ASCII as a default text encoding (PEP 538, legacy C locale coercion and PEP 540, forced UTF-8 runtime mode) * The insertion-order preservation nature of dict objects is now an official part of the Python language spec. * Notable performance improvements in many areas.- disable lto with gcc versions below 7 (results in link failures)- Use faster find subcommand execution strategies.- Do not mention the testsuite disabling in opts as it was moved to main pkg so base is test-free- As we run in main python package do not generate the pre_checkin from both now- Move the tests from base to generic package wrt bsc#1088573 * We still fail the whole distro if python3 is not build * The other archs than x86_64 took couple of hours to unblock build of other software, this way we work around the issue - Some tests are still run in -base for the LTO tweaking, but at least it is not run twice- update to 3.6.5 * bugfix release * see Misc/NEWS for details - drop ctypes-pass-by-value.patch - drop fix-localeconv-encoding-for-LC_NUMERIC.patch - refresh python-3.6.0-multilib-new.patch- Created %so_major and %so_minor macros - Put Tools/gdb/libpython.py script into proper place and ship it with devel subpackage.- ctypes-pass-by-value.patch: Fix pass by value for structs on aarch64- Add python3-sorted_tar.patch (boo#1081750)- Drop python3-tk and python3-idle recommends to reduce python3 always pulling X stack bsc#1081751- Add patch to fix glibc 2.27 fail bsc#1079761: * fix-localeconv-encoding-for-LC_NUMERIC.patch- Update skip_random_failing_tests.patch (for PowerPC) to avoid test_call_later failure- move XML modules and python3-xml provide to python3-base (fixes bsc#1077230) - move ensurepip to base- Add skip_random_failing_tests.patch only for PowerPC- update to 3.6.4 * bugfix release, over a hundred bugs fixed * see Misc/NEWS for details - drop upstreamed python3-ncurses-6.0-accessors.patch - drop PYTHONSTARTUP hooks that cause spurious startup errors * fixes bsc#1070738 * the relevant feature (REPL history) is now built into Python itself- Install 2to3-%{python_version} executable (override defattr of the -tools package). 2to3 (unversioned) is a symlink and does not carry permissions (bsc#1070853).- move 2to3 to python3-tools package- update to 3.6.3 * bugfix release, over a hundred bugs fixed * see Misc/NEWS for details - drop upstreamed 0001-3.6-bpo-30714-ALPN-changes-for-OpenSSL-1.1.0f-3093.patch- drop python-2.7-libffi-aarch64.patch: this patches the intree copy of libffi which is unused/deleted in the line afterwards - fix build against system libffi: include flags weren't set so it actually used the in-tree libffi headers.- Fix test broken with OpenSSL 1.1 (bsc#1042670) * add 0001-3.6-bpo-30714-ALPN-changes-for-OpenSSL-1.1.0f-3093.patch- Update RPM group for python documentation.- fix missing %{?armsuffix}- distutils-reproducible-compile.patch: ensure distutils order files before compiling, which works around bsc#1049186- Add libnsl-devel build requires for glibc obsoleting libnsl- update to 3.6.2 * bugfix release, over a hundred bugs fixed * see Misc/NEWS for details - drop upstreamed test-socket-aead-kernel49.patch - add Provides: python3-typing (fixes bsc#1050653) - drop duplicate Provides: python3- drop db-devel from requirements- Add missing link to python library in config dir (bsc#1040164)- update to 3.6.1 * bugfix release, over a hundred bugs fixed * never add import location's parent directory to sys.path * switch to git for version control, build changes related to that * fix "failed to get random numbers" on old kernels (bsc#1029902) * several crashes and memory leaks corrected * f-string are no longer accepted as docstrings- prevent regenerating AST at build-time more robustly - add "--without profileopt" and "--without testsuite" options to python3-base to allow short circuiting when working on the package- Add 0001-allow-for-reproducible-builds-of-python-packages.patch upstream https://github.com/python/cpython/pull/296- reenable test_socket with AEAD patch (test-socket-aead-kernel49.patch) - reintroduce %py3_soflags macro (and better named %cpython3_soabi equivalent)- update to 3.6.0 * PEP 498 Formated string literals * PEP 515 Underscores in numeric literals * PEP 526 Syntax for variable annotations * PEP 525 Asynchronous generators * PEP 530 Asynchronous comprehensions * PEP 506 New "secrets" module for safe key generation * less memory consumed by dicts * dtrace and systemtap support * improved asyncio module * better defaults for ssl * new hashing algorithms in hashlib * bytecode format changed to allow more optimizations * "async" and "await" are on track to be reserved words * StopIteration from generators is deprecated * support for openssl < 1.0.2 is deprecated * os.urandom now blocks when getrandom() blocks * huge number of new features, bugfixes and optimizations * see https://docs.python.org/3.6/whatsnew/3.6.html for details - rework multilib patch: drop Python-3.5.0-multilib.patch, implement upstreamable python-3.6.0-multilib-new.patch - refresh python-3.3.0b1-localpath.patch, subprocess-raise-timeout.patch - drop upstreamed Python-3.5.1-fix_lru_cache_copying.patch - finally drop python-2.6b1-canonicalize2.patch that was not applied in source and only kept around in case we needed it in the future. (which we don't, as it seems) - update import_failed map and baselibs - build ctypes against system libffi (buildrequire libffi-devel in python3-base) - add new key to keyring (signed by keys already in keyring) - introduced common configure section between python3 and python3-base - moved pyconfig.h and Makefile to devel subpackage as distutils no longer need it at runtime - added python-rpm-macros dependency, regenerated macros file, drop macros.python3.py because it is not used now - improve summaries and descriptions (fixes bsc#917607) - enabled Link-Time Optimization, see what happens - including skipped_tests.py in pre_checkin.sh run - run specs through spec-cleaner, rearrange sections- move _hashlib and _ssl modules and tests to python3-base - recommend python3- Skip test_asyncio under qemu_user_space_build- Add Python-3.5.1-fix_lru_cache_copying.patch Fix copying the lru_cache() wrapper object. Fixes deep-copying lru_cache regression, which worked on previous versions of python but fails on python 3.5. This fixes a bunch of packages in devel:languages:python3. See: https://bugs.python.org/issue25447- Build the docs in .qch format as well- update to 3.5.1 * bugfix-only release, dozens of bugs fixed - Drop upstreamed Python-3.5.0-_Py_atomic_xxx-symbols.patch - "Python3" to "Python 3" in summary * This seems cleaner and fixes and rpmlint warning- Add Python-3.5.0-_Py_atomic_xxx-symbols.patch This fixes a build error for many packages that use the Python, C-API. This patch is already accepted upstream and is slated to appear in python 3.5.1.- update to 3.5.0 * coroutines with async/await syntax * matrix multiplication operator `@` * unpacking generalizations * new modules `typing` and `zipapp` * type annotations * .pyo files replaced by custom suffixes for optimization levels in __pycache__ * support for memory BIO in ssl module * performance improvements in several modules * and many more - removals and behavior changes * deprecated `__version__` is removed * support for .pyo files was removed * system calls are auto-retried on EINTR * bare generator expressions in function calls now cause SyntaxError (change "f(x for x in i)" to "f((x for x in i))" to fix) * removed undocumented `format` member of private `PyMemoryViewObject` struct * renamed `PyMemAllocator` to `PyMemAllocatorEx` - redefine %dynlib macro to reflect that modules now have arch+os as part of name - module `time` is now built-in - dropped upstreamed patches: python-3.4.1-fix-faulthandler.patch python-3.4.3-test-conditional-ssl.patch python-fix-short-dh.patch (also dropped dh2048.pem required for this patch) - updated patch Python-3.3.0b2-multilib.patch to Python-3.5.0-multilib.patch - python-ncurses-6.0-accessors.patch taken from python 2 to fix build failure with new gcc + ncurses- Add python3-ncurses-6.0-accessors.patch: Fix build with NCurses 6.0 and OPAQUE_WINDOW set to 1.- improve import_failed hook to do the right thing when invoking missing modules with "python3 -m modulename" (boo#942751)- Build with --enable-loadable-sqlite-extensions to make it works as geospatial database.- Fix source list for previous change (add dh2048.pem).- dh2048.pem: added generated 2048 dh parameter set to fix ssl test (bsc#935856) - python-fix-short-dh.patch: replace the 512 bits dh parameter set by 2048 bits to fix build with new openssl 1.0.2c (bsc#935856)- ctypes-libffi-aarch64.patch: remove upstreamed patch - python-2.7-libffi-aarch64.patch: Fix argument passing in libffi for aarch64- drop the PDF subpackage (removes the massive texlive dependency, and most likely nobody is using the PDFs anyway)- python-3.4.3-test-conditional-ssl.patch - restore tests failing because test_urllib was unconditionally importing ssl (without really needing it) - restore functionality of multilib patch - drop libffi-ppc64le.diff because upstream completely changed everything yet again (sorry ppc64 folks :| )- Update to version 3.4.3 - Drop upstreamed CVE-2014-4650-CGIHTTPServer-traversal.patch (bpo#21766)- Add python-3.4.1-fix-faulthandler.patch, upstream patch for bogus faulthandler which fails with GCC 5.- asyncio has been merged in python3 main package; provide and obsolete it - Remove obsolete AUTHORS section - Remove redundant %clean section- Only pkgconfig(x11) is required for build, not the whole set of packages provided by xorg-x11-devel metapackage.- add %python3_version rpm macro for Fedora compatibility - add missing argument in import_failed, rename Novell Bugzilla to SUSE Bugzillah03-ch2c 1714653704  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJK3.11.9-150400.9.26.13.11.9-150400.9.26.1     gtk-dochtmlPython3.11Python.devhelp.gz_downloads6dc1f3f4f0e6ca13cb42ddf4d6cbc8aftzinfo_examples.py_imageshashlib-blake2-tree.pnglogging_flow.pngpathlib-inheritance.pngtk_msg.pngturtle-star.pngwin_installer.png_staticbasic.csscaret-down.svgchangelog_search.jsclassic.csscopybutton.jsdefault.cssdoctools.jsdocumentation_options.jsfile.pngglossary.jsonjquery-3.5.1.jsjquery.jslanguage_data.jsmenu.jsminus.pngog-image.pngopensearch.xmlplus.pngpy.pngpy.svgpydoctheme.csspygments.csssearchtools.jssidebar.jsunderscore-1.13.1.jsunderscore.jsabout.htmlbugs.htmlc-apiabstract.htmlallocation.htmlapiabiversion.htmlarg.htmlbool.htmlbuffer.htmlbytearray.htmlbytes.htmlcall.htmlcapsule.htmlcell.htmlcode.htmlcodec.htmlcomplex.htmlconcrete.htmlcontextvars.htmlconversion.htmlcoro.htmldatetime.htmldescriptor.htmldict.htmlexceptions.htmlfile.htmlfloat.htmlframe.htmlfunction.htmlgcsupport.htmlgen.htmlhash.htmlimport.htmlindex.htmlinit.htmlinit_config.htmlintro.htmliter.htmliterator.htmllist.htmllong.htmlmapping.htmlmarshal.htmlmemory.htmlmemoryview.htmlmethod.htmlmodule.htmlnone.htmlnumber.htmlobjbuffer.htmlobject.htmlobjimpl.htmlrefcounting.htmlreflection.htmlsequence.htmlset.htmlslice.htmlstable.htmlstructures.htmlsys.htmltuple.htmltype.htmltypehints.htmltypeobj.htmlunicode.htmlutilities.htmlveryhigh.htmlweakref.htmlcontents.htmlcopyright.htmldistributingindex.htmldistutils_setuptools_disclaimer.htmlapiref.htmlbuiltdist.htmlcommandref.htmlconfigfile.htmlexamples.htmlextending.htmlindex.htmlintroduction.htmlpackageindex.htmlsetupscript.htmlsourcedist.htmluploading.htmldownload.htmlextendingbuilding.htmlembedding.htmlextending.htmlindex.htmlnewtypes.htmlnewtypes_tutorial.htmlwindows.htmlfaqdesign.htmlextending.htmlgeneral.htmlgui.htmlindex.htmlinstalled.htmllibrary.htmlprogramming.htmlwindows.htmlgenindex-A.htmlgenindex-B.htmlgenindex-C.htmlgenindex-D.htmlgenindex-E.htmlgenindex-F.htmlgenindex-G.htmlgenindex-H.htmlgenindex-I.htmlgenindex-J.htmlgenindex-K.htmlgenindex-L.htmlgenindex-M.htmlgenindex-N.htmlgenindex-O.htmlgenindex-P.htmlgenindex-Q.htmlgenindex-R.htmlgenindex-S.htmlgenindex-Symbols.htmlgenindex-T.htmlgenindex-U.htmlgenindex-V.htmlgenindex-W.htmlgenindex-X.htmlgenindex-Y.htmlgenindex-Z.htmlgenindex-_.htmlgenindex-all.htmlgenindex.htmlglossary.htmlhowtoannotations.htmlargparse.htmlclinic.htmlcporting.htmlcurses.htmldescriptor.htmlenum.htmlfunctional.htmlgdb_helpers.htmlindex.htmlinstrumentation.htmlipaddress.htmlisolating-extensions.htmllogging-cookbook.htmllogging.htmlpyporting.htmlregex.htmlsockets.htmlsorting.htmlunicode.htmlurllib2.htmlindex.htmlinstallindex.htmlinstallingindex.htmllibrary2to3.html__future__.html__main__.html_thread.htmlabc.htmlaifc.htmlallos.htmlarchiving.htmlargparse.htmlarray.htmlast.htmlasynchat.htmlasyncio-api-index.htmlasyncio-dev.htmlasyncio-eventloop.htmlasyncio-exceptions.htmlasyncio-extending.htmlasyncio-future.htmlasyncio-llapi-index.htmlasyncio-platforms.htmlasyncio-policy.htmlasyncio-protocol.htmlasyncio-queue.htmlasyncio-runner.htmlasyncio-stream.htmlasyncio-subprocess.htmlasyncio-sync.htmlasyncio-task.htmlasyncio.htmlasyncore.htmlatexit.htmlaudioop.htmlaudit_events.htmlbase64.htmlbdb.htmlbinary.htmlbinascii.htmlbisect.htmlbuiltins.htmlbz2.htmlcalendar.htmlcgi.htmlcgitb.htmlchunk.htmlcmath.htmlcmd.htmlcmdline.htmlcode.htmlcodecs.htmlcodeop.htmlcollections.abc.htmlcollections.htmlcolorsys.htmlcompileall.htmlconcurrency.htmlconcurrent.futures.htmlconcurrent.htmlconfigparser.htmlconstants.htmlcontextlib.htmlcontextvars.htmlcopy.htmlcopyreg.htmlcrypt.htmlcrypto.htmlcsv.htmlctypes.htmlcurses.ascii.htmlcurses.htmlcurses.panel.htmlcustominterp.htmldataclasses.htmldatatypes.htmldatetime.htmldbm.htmldebug.htmldecimal.htmldevelopment.htmldevmode.htmldialog.htmldifflib.htmldis.htmldistribution.htmldistutils.htmldoctest.htmlemail.charset.htmlemail.compat32-message.htmlemail.contentmanager.htmlemail.encoders.htmlemail.errors.htmlemail.examples.htmlemail.generator.htmlemail.header.htmlemail.headerregistry.htmlemail.htmlemail.iterators.htmlemail.message.htmlemail.mime.htmlemail.parser.htmlemail.policy.htmlemail.utils.htmlensurepip.htmlenum.htmlerrno.htmlexceptions.htmlfaulthandler.htmlfcntl.htmlfilecmp.htmlfileformats.htmlfileinput.htmlfilesys.htmlfnmatch.htmlfractions.htmlframeworks.htmlftplib.htmlfunctional.htmlfunctions.htmlfunctools.htmlgc.htmlgetopt.htmlgetpass.htmlgettext.htmlglob.htmlgraphlib.htmlgrp.htmlgzip.htmlhashlib.htmlheapq.htmlhmac.htmlhtml.entities.htmlhtml.htmlhtml.parser.htmlhttp.client.htmlhttp.cookiejar.htmlhttp.cookies.htmlhttp.htmlhttp.server.htmli18n.htmlidle.htmlimaplib.htmlimghdr.htmlimp.htmlimportlib.htmlimportlib.metadata.htmlimportlib.resources.abc.htmlimportlib.resources.htmlindex.htmlinspect.htmlinternet.htmlintro.htmlio.htmlipaddress.htmlipc.htmlitertools.htmljson.htmlkeyword.htmllanguage.htmllinecache.htmllocale.htmllogging.config.htmllogging.handlers.htmllogging.htmllzma.htmlmailbox.htmlmailcap.htmlmarkup.htmlmarshal.htmlmath.htmlmimetypes.htmlmm.htmlmmap.htmlmodulefinder.htmlmodules.htmlmsilib.htmlmsvcrt.htmlmultiprocessing.htmlmultiprocessing.shared_memory.htmlnetdata.htmlnetrc.htmlnis.htmlnntplib.htmlnumbers.htmlnumeric.htmloperator.htmloptparse.htmlos.htmlos.path.htmlossaudiodev.htmlpathlib.htmlpdb.htmlpersistence.htmlpickle.htmlpickletools.htmlpipes.htmlpkgutil.htmlplatform.htmlplistlib.htmlpoplib.htmlposix.htmlpprint.htmlprofile.htmlpty.htmlpwd.htmlpy_compile.htmlpyclbr.htmlpydoc.htmlpyexpat.htmlpython.htmlqueue.htmlquopri.htmlrandom.htmlre.htmlreadline.htmlreprlib.htmlresource.htmlrlcompleter.htmlrunpy.htmlsched.htmlsecrets.htmlsecurity_warnings.htmlselect.htmlselectors.htmlshelve.htmlshlex.htmlshutil.htmlsignal.htmlsite.htmlsmtpd.htmlsmtplib.htmlsndhdr.htmlsocket.htmlsocketserver.htmlspwd.htmlsqlite3.htmlssl.htmlstat.htmlstatistics.htmlstdtypes.htmlstring.htmlstringprep.htmlstruct.htmlsubprocess.htmlsunau.htmlsuperseded.htmlsymtable.htmlsys.htmlsys_path_init.htmlsysconfig.htmlsyslog.htmltabnanny.htmltarfile.htmltelnetlib.htmltempfile.htmltermios.htmltest.htmltext.htmltextwrap.htmlthreading.htmltime.htmltimeit.htmltk.htmltkinter.colorchooser.htmltkinter.dnd.htmltkinter.font.htmltkinter.htmltkinter.messagebox.htmltkinter.scrolledtext.htmltkinter.tix.htmltkinter.ttk.htmltoken.htmltokenize.htmltomllib.htmltrace.htmltraceback.htmltracemalloc.htmltty.htmlturtle.htmltypes.htmltyping.htmlunicodedata.htmlunittest.htmlunittest.mock-examples.htmlunittest.mock.htmlunix.htmlurllib.error.htmlurllib.htmlurllib.parse.htmlurllib.request.htmlurllib.robotparser.htmluu.htmluuid.htmlvenv.htmlwarnings.htmlwave.htmlweakref.htmlwebbrowser.htmlwindows.htmlwinreg.htmlwinsound.htmlwsgiref.htmlxdrlib.htmlxml.dom.htmlxml.dom.minidom.htmlxml.dom.pulldom.htmlxml.etree.elementtree.htmlxml.htmlxml.sax.handler.htmlxml.sax.htmlxml.sax.reader.htmlxml.sax.utils.htmlxmlrpc.client.htmlxmlrpc.htmlxmlrpc.server.htmlzipapp.htmlzipfile.htmlzipimport.htmlzlib.htmlzoneinfo.htmllicense.htmlpy-modindex.htmlreferencecompound_stmts.htmldatamodel.htmlexecutionmodel.htmlexpressions.htmlgrammar.htmlimport.htmlindex.htmlintroduction.htmllexical_analysis.htmlsimple_stmts.htmltoplevel_components.htmlsearch.htmltutorialappendix.htmlappetite.htmlclasses.htmlcontrolflow.htmldatastructures.htmlerrors.htmlfloatingpoint.htmlindex.htmlinputoutput.htmlinteractive.htmlinterpreter.htmlintroduction.htmlmodules.htmlstdlib.htmlstdlib2.htmlvenv.htmlwhatnow.htmlusingcmdline.htmlconfigure.htmleditors.htmlindex.htmlmac.htmlunix.htmlwindows.htmlwhatsnew2.0.html2.1.html2.2.html2.3.html2.4.html2.5.html2.6.html2.7.html3.0.html3.1.html3.10.html3.11.html3.2.html3.3.html3.4.html3.5.html3.6.html3.7.html3.8.html3.9.htmlchangelog.htmlindex.html/usr/share//usr/share/gtk-doc//usr/share/gtk-doc/html//usr/share/gtk-doc/html/Python3.11//usr/share/gtk-doc/html/Python3.11/_downloads//usr/share/gtk-doc/html/Python3.11/_downloads/6dc1f3f4f0e6ca13cb42ddf4d6cbc8af//usr/share/gtk-doc/html/Python3.11/_images//usr/share/gtk-doc/html/Python3.11/_static//usr/share/gtk-doc/html/Python3.11/c-api//usr/share/gtk-doc/html/Python3.11/distributing//usr/share/gtk-doc/html/Python3.11/distutils//usr/share/gtk-doc/html/Python3.11/extending//usr/share/gtk-doc/html/Python3.11/faq//usr/share/gtk-doc/html/Python3.11/howto//usr/share/gtk-doc/html/Python3.11/install//usr/share/gtk-doc/html/Python3.11/installing//usr/share/gtk-doc/html/Python3.11/library//usr/share/gtk-doc/html/Python3.11/reference//usr/share/gtk-doc/html/Python3.11/tutorial//usr/share/gtk-doc/html/Python3.11/using//usr/share/gtk-doc/html/Python3.11/whatsnew/-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:33618/SUSE_SLE-15-SP4_Update/91291f9e4bbb9334077b514584d0e430-python311.SUSE_SLE-15-SP4_Update:docdrpmxz5x86_64-suse-linux   directoryUTF-8 Unicode text, with very long lines, with no line terminators (gzip compressed data, was "Python.devhelp", last modified: Thu May 2 12:41:34 2024, max compression)Python script, ASCII text executablePNG image data, 500 x 320, 8-bit colormap, non-interlacedPNG image data, 955 x 758, 8-bit colormap, non-interlacedPNG image data, 538 x 319, 8-bit colormap, non-interlacedPNG image data, 978 x 175, 8-bit/color RGB, non-interlacedPNG image data, 250 x 250, 8-bit/color RGB, non-interlacedPNG image data, 706 x 449, 8-bit/color RGBA, non-interlacedASCII textSVG Scalable Vector Graphics imagePNG image data, 16 x 16, 8-bit/color RGBA, non-interlacedASCII text, with very long lines, with no line terminatorsASCII text, with very long linesPNG image data, 11 x 11, 8-bit grayscale, non-interlacedPNG image data, 200 x 200, 8-bit/color RGBA, non-interlacedXML 1.0 document, ASCII textUTF-8 Unicode textHTML document, UTF-8 Unicode text, with very long linesHTML document, ASCII text, with very long linesHTML document, ASCII textr,L}Lrutf-8986c534b008b86acda8c8b67439688cfa7b12ffb249dfda8f938db0b339587b4?P7zXZ !t/jY]"k%ΰa IdǭJ|$5aJ` }%!vښUNa?uG[MֹE!"} EVXY#"b‰*n(۠T+,x>bc@~p~Tm_W7쫰w8XBD1>hɴ2&mx889pR4SdC&38+ WiSTd%Ezal2π,$5҂h 4Ś/k{RK9HDJWPS&ѐg=n;%7o_983F^\/8w(z:$[5GcUj= 9J;0&PK/YXK'IsINho &!zmk!akXgeXAqUa=d*'Y[ [2l"qi@*I7Em)ΠU+VT1y\ T͸AZfciilTh7$ @qwf.$Tk{X[pςU?$wƠ_x rEl8N T!*Q ?=_% iMM'*bg B= 2y  pR*4])dZ87e J=MFZJy>onqN?,6\5p^9@b}ɾZ;삥!jPbcTHkzGU. XY~wVf`QʞTxeT](푭 (XplrwdI$#+:8SAک%Y#LcS[dt2\#^s}fq"uyͪSxضl,wOv^yfs1ߌ3 |f:,:4o!;8F:?`p4%~%I>;)#c! 0jZNSfQɑadCJ 4-?$}RJ)ސQٰop$V!&xP׏oeʕǠ~ -j[8DQɮtdgSxJ: Sx>(j 1J5ի_+Aoe-;&C*x È'ģqHH(;rrx Y\3{D" Z>/"ym"KF?%Pl ƉbƱh%X`Y^@]뾍Я"Uks_pm*jM7>Qܧr:u[XnQuϋK)PjF` q]$ N6LEf/GH6 +Dzfy}j6FOiC +d .0W9UmaSEI }]A)Sf:/;\vȂQj[֜ц_|I 낸pw} }\^LK'ɤ8 GQ,,$ooPufSL]D\1[~nLXQa7)E4 KӮJm `wna4il\=B%ZrХ̛͸z] xJ78Ѣ,u Z3<:OBo#j M:a7Wz k>prgk@o 2"J/"oY"։ av(қ`cӓ $SCߤa)>]j+suRV ƕS/FR\nQq%Vw]9B1B@)rVh mݭ4 *lOth|J^Sے\hr=;dCl^@x∸Uy  #`ȰHx5O4;Z$*fw.| LۉCv뻮G9LS{/sݹK A `_s8JZ5ԒUq!zm{T7@r]}\t.ma鑖G_Ra_Nbr ;09YjtjP4gH`GSdD~`#:/-^RhFU쐇-?Z t -Ǯ(/T9և?A%:k!>៸``[*Cd!dY7˰qJG(G)$(a [c6!$[Od @;uﳀkZDbv<]6Q@@7{1b! P<_ofxGSДl ],Ōһ ^t"XˉFWloˆ!VF"S]Kv޺>0ꬓm^kxoa`(7NKG$&+v =1zWθV_KU{ H3rpaʵ cO%q3JhūU3kmxmJ MMa+o A-Nh0lBtĖ ps:j)qX$2fá9oovX#vymh-G}52bc4bx2~޶ms)q iLGu/6/U.8Z5ijJ0z(xelXtD+וȞ~k%',:պwmm3t*_(fonLܥ,fIuE[OD1rrمp 34tyX9|+̉a+.u[S{~P 0YXyjDcSwvr#\wJ=lja'YL`6Z8DR% rՈy0#v:T_V-/Ӟ)h(偆+<wXR%$h!| kHHBhpz5fs{@\KUGuHx s&ᢥɳW JV))$nFwʊC($(#  P?@ ݣyGgR%VTKX4ċm~J˝Y ߖѳ'[ܚV:]ts[1i|N,"|u6fzlfuΈ=~5: `4 ikq,Etn7cxٮa vo' OeϐSwagBSA,,/cH4UI6Z:ѸuRL$z::~OP Uͳ+$3耣|#V<0&6ORP_ iot5jV3aVYF϶|DZ1,7)<&jv !6۴x 0]@+9-T|aWj8m| NIņPfw_+#j27'T3=z٨R[b55;;2%a=X- T MBM]hX"`.;d)Osnjz@4u.wse)k6˝y%|<ƬCJ&P! x翯s<ÛgΊAsK?B!z𘶑zZ{! gPtwFOD'nz0A2 `܄O/Czs7+0WMw ߅R(tN+|pȂ.S vHy汸 &[7GןC5ʙ^=? Ұ)sth (i]oSXDf]?(+eB MŸi U.g¾0OCTaJIU!siT$!_Q՚bil X#QsTOI]۹ԲVcuԠX 0Y2ܙP>: +cEԉ`!2DxWL,h&3Lr?U%92>lmgV-ak3B(]Xvvq>o\Oڎ!42(S?W E4YO#F nr\ɿw{Ы ݗz]MZCԽ+MIEZiuY/{mW,`A|> 䗊},'l1KUYCMۀ=75򥍤2d?Xq>;rMuoCV&9m>G5={JJ<<1wehKc\ {sF?[ /^ 2ϧ<8M=O eJ,\ 5zx?|ƚȸZn ™dQBh.&8?gϏN+_ͥ*BxP聗l12}gG;>gJ T;EY;x ~Ճ& I&7-Iz^>`Sw=H־g50$lT+i<GQTKIӈ4^XF$aBxi(`]U(W<ԄO{e~6>WDòMXR~;/+4%C*v_[1 :d4Y[~e!P')a2=6@~ =͇RZ甥TQUSWPfe pѳ&cQ8L~"8ǟf ?dR\V01_yq!'Mo6-ҮGR OY13E<;SR4)IY Q߽nΡ+#R)@m)hA8Ȏ@U-vDP$FJ}Wauܣ c'Dv0" oqA(uP%?ɦ@UrՂz-D4T߀E.V"r}D9#d[& _N晈~ ? bZEjQ)zQ08\>mD%wf[ ]bC҅w-s'&_3ӃTʡ~DsH6kD݂``*2hl[*blRDu;[WR<;2zu"Dۘ-u|aMüdASVSةGs?7S*ٕFpvݹ0u{GUe&"”+!UM$}iNI91zEGb ,|n,$s#9q J|aLj \~y/u\# R#7{!mQ GNc"-NA-=nӓb"nI* |Hl|gyaΕr;0zўz :*|Yr )nή2gXooYSeP;aoRuVq>*X,%t0wZQodiFCݎ pHe 3h<ʩj{]Aܹʣͷ'A?n~//wŲqě .NֳwiSV^yxUlDy6(0όF'f WT0@~<SG8*zn5Z5Z<_4̢zd@8m!^x9w{M??ig;Ep', 2X@z1vՇw%n6_՜o=FE?spHQs$K,aWKli T<@FrPIu1H^NDT;'{6 -1% Pb eæsCa?Ykxם#h}ds Wf̥D. J0JPF2&[+~1)Wpe iyEUtt?#茄6#ZWTK[m?-qЛ067jC$ qMhWL̎IHBO9"0(sa/>وQ-@I->1-8u^N߁8Ox1ÌJykDB|=$17Ԏ9$71zI Fl-ϗ=FIglD5DXkR=HE}p,Qtg;.\\'f%Mnͳ\»RC󼅟$lI:rK\@FfÝF:&:\^)E(mmoDڪ99D'/agVl0x&)II[5&xLcq/EȻy(opd@@ ѫH14 wɗsnvxЅ*A4&d^ٿ~geC>D`xjFؙ`kCmiHlζ1`XmG&ڋȷ@xdc1S}0y ު0y”Z0ӎC6, 0SqTVVqsV}XwJ1Jv>v\l_f̐}~ ]1!^QxC ((+'&Kn]#A/$WYl&@ an,NpP.9G)-?p8T`%+5ǫ]ir6fB`v@ Yz9np_ՙH| . ƴ%w+=cpfJ@{F=NO⦜4_?A =vEz)s"mۏX@|O}gO[sjv`@ougKH3^p Wfs>C5Hj_Ѭ2UL b|[&Ş|?;];q5h \'Ap:qF9#wb51 ?54"E5jxˇO)=xxj7_bafvCAT1ӟх<,S (l6ʧZwAxGFJd`%~V&#B}|odȴp)_+Gj&Hy[0U<2vZ7L`)kf/"|̆$h ; iO" ?aTz}#犥<>dC7KƩA`(|9Ր u;72@Ϫ+1)/O1PӈPD O9a=7:ѩl'jysHRp| 1ʗŨGq@bz^]Jϑ6{)S(ޮ8$5I6H}:>"&h׆Ptu-P_WK R@A ֢8Ox3 '>VpO?epǁIə*فTZNw*$ڏϤ;B1{hc tKsq~w?|=^Lqp'"BYyJ_M"GfqoӬ[#\O>B7:O+LDs[ dxK%‘qc)QV4[w_ .$ҪJ]DtR\02?xCz2.ĆrNXL겒L`: 8)A*!@A%7V==}KVh;/L沩3gTAͥqq%^0'$5PE~HEm18 E&SZ_ҬYm'YEb_;NRCGu A-HjjgD? %uo˶ 8SāJJDs]_Q,|8$k( ΕJ zѨLh3@`T+O=j1Y87ˤ\6ECEl(CS=Oh״23u8 Ii? VfY_YG Ej&vv&5ӦDY?)Mb}.&UyĹQq3͸LZ wKU0 Io!@lFH&P/̌~^cmbCn{w4 "¤j$-%]bg@vkuP1wſt.X K!SEPT [49Y w>уcq)}6)޿Z+!>U= ]޳Ӑe b \{Xe`2zu qA:qAX7!O)B.ښb:7GBHaT/你S1gC Shf ^XH =s9DĈ|בcǮx5.ص uBu8SMB`@ rs(Kn  UR7‡@x<8,O>rt=FXLw!S r`nm9_hJjE.?TJ*}=m+dMJezPcə"8 UŢ7Y6J*2>9.=V]W=l\IWF+%xGek"xKǐffIS| E"Z[g3gXsDn=cvhE-yp& Um:]>b>•ؖuڃj_M)>@%TvWZ,:ߑ.T5\S-8c˜]ؽ)Q'fS!D/Ug 5.~J"he! /Ę6yXRngx)D(突'N#b2lbt6KfIt??W~zWU;_z>[z =AKŒMHR ̂A$z;7^>d U(g+G]nӆ$˦W^BєZ=MZƏ0{S>GP64"=@nfyXCX0VӑsF\ej˟ RH7k:#h̝:fع}9P镝ҙe"QTw8zCaovZ=F6xd$4/' 6h]}q5uVFj~l z7B wLr%n}ΟBKwE1&]JvJ.W/HUul kF_MSZ GiY~ī૵kX]қbkRz'xV+!z[,*aГVӛt޿Vn bUHٿ_X~vQ@/\$y1Q4ҳlc\kPepxo5`BN8|1QSpՕY{g-Sں? =T?Y0 2x4)?egiuTDŽ)}Wȵ,܇fa13@& Rfp0\ KꢳV&nD"Ap;8o\iUڙ1^q!C,, k{wGlj[#nFj̱| jf&-;W8':LK6A1LbOolC- &P׎5;BwjBÜ+s(&騶U-˙k޳Z(.I$%pfNmJK427Bf 6'"w+ܐT|l| cExĄPӆk-$ν!d`rIa6rh͔ޭ3Kn\gF K/`nkr﬚uqG9CPD?' LԿg'OTA ^HtpJ la+g\Y+"3i7ʮ&JQOp,5b,`S:ID(nQ#dx{\]E{Tdza (\ [Cr!(֗˟X (|)ed?wQF%Vt$b1m˽A*XQy. 'ź{)fYTT!\D7zRt6Yw _N.e.%PpO?yv A*;Ӄ`㶒oL`6H2]퉆Z"$HJf7oŒ r 31œWDњG*-^]4F9CkۿIZ(3 4wȪcN?7\q:QhFiYF X}) yΦ0W?{c}s8.zτyxa*t]^ڹcO Xqԝ7w3rHoQ2# φA(#;{;Xncɴÿx^/%fc6:lSq d/}X1=M$`4tT1՝)1.(=2QFƆoi6\T؋?X62Һ^98N)"*S3_ڿE 3cG3 doV-pA\JEkCLS"cƎ;/?QEt`[Oxk:_ey3faDLڅ A{$Lcj"(u.0)F|Ak\׼-63udLO{sL>/7 y-=2+RRak~=(f%-QϾSݺ% Y_2kPfV sקefr3 OWmkW{tf,d e#^Bh3 $wEg|pvw-SfH}Nc)/9J8w]L ™:)he (Lyp̑X1/4>/_t;=0gS'!-ʩaӇv{#أ>"^ǾA@",:k# &]6nhǠ<$*;@ q8v.i.aQG$X_<~[?41u*'?MaZmH9ϼ͚*65V9%FyRSya 9ˎm!/A+B\e$>%';VȾ֜U]&OuNčǠhBy$̀3~x:uXQwH/_Ï"4ggmdN.uPIÌvXa%ZsB.BXLt@mao|1d٤*:zۼɏi[{QOr$@+/R}*OvNk>ݎfYsUmww."r`^yVi ;,(l4ǻ.*|׾\J籹;N A4Eg8y&sе(CX38,( O- uCNYFK$uJv\돕pxn.R-(}@_$]8X 3}/XoҺl$%Wȸ~pUߵ8suY$؍+ͳ3g FQ=Q͒䖫TS&c !tm)#2f9Io?+O堐[eh* oc,We0H+o닜0vuRwWta0)l}e `zڨ,g?R bc`ؚ uX*e62?zxZt'^;ꯊXLUNi#h8g0 J1ʀu2:i=v ch*5*}w'1P^IE2*6k|x&ǗZhr_X,pŅN2[ zNQr`>N9ۍ2 ;`&0O aXe¿pb؀][5$ĉ$Ex6H&ςέktKA֕kP&ƭ蕚6㻰ߠ&'NۉMQƍ6d&L+(P_Z9ԯoU0˯r*6yWga؊3<2gc+gE|~qJa ^7g=]{- 07 `MbTщI]<&)hi;M0%'޹KG:J|4m[eW60'LsrY"vtTI{hp$#mu4"y"徥5h,&S'k<4^sߡ霖PP~ )$gGRrxNA7!]B *fvz6+@]A_,oϛ |`,R0 ʾ=H9;*ee# `6'D]y }+xF@`~Y&N\F dkV]pnJ]6T` ((oVxU51uq|O.SER֞LkbT_{8.s}Bg׫HtF:8?nbdb?~p1[Ea%ýr96hkzqaV09# 7 (#O$υӉVZgo>%޲ܼe7fgЌjnn8h2J{GkPO7`uL_,X1wVۅ19.0yK9@CٜxGwf_-"9$ITb @fJm0r4Ag3*qNY 9bԙ@,˱#EAjnOD%oم?aoRnigΦBXma/֯_(}//Ghm Uӳ|HO`8@Wɼ@n6'~4`uv6A0?KG>*1=Gc- RZH4b * nT RV#yэK)@ h8@Whw?^w h=Z\H4jKh2c3nUx;iNdb^&Cyxx厰Jr 4P+XDC,<ƎebFN9hKUyx]&}g.Yw׵4? )bN#[5 `q/.ةklG 8=Q/^0X &Fѭ_៑("]RI'ȷmuPw2Jp컎݃@km<ڽ[G# VM<0\B[1ght]֡u>^EIW:;Ykj<~k}"|TQP=mH:G.WGx-T&A԰(}z||g6P|JjT -37_tepbCǛ]Y{PeuP:7mhf@M,McD(څC7:gS)q]DQ(^J+3DkT[4y`5Te-{U8}u/4_hǮe^t7R:L:m~^f˷Ծgmc&`Q/V?*Ik~s g](vo Wp` 2a0[H2UŞ$J1m >x: g|On'>f{ :M.ld|Ό9װBF΂)f,ԝ'1ACnw-yo^-x[0ni7[C ^EFBیq¡&i_&MT3̸"H>tSRuѷM_xt`L?ǾoY,f94Ľ@k5ݷYҨ& J\/focr7O6ʢ\r /bĀTȦ h7}G`S50[{ C]v 'ZruFu>;zzItsz4_p>R1< aSϪpN>wPqD׿" JN|Btٷ$(_QL~-ڒ- 0A e'AW:V9Dĭu| ,JC[v gʾB`QfM>M=#)4GЩD2l{tDžz|5wq}M}PVB\N^ϧFVQ,k>Ab^ᒯt-Wt^4n\=*. pR,VP{&ˀU. ŧ5#-A4 kZ{6LOA0}Ƽ+4A1?l0BXRr>X=):,e $I|/# r3 vW!Ȧ8&Sut]-]2=yeQ%$M?x HO}X$Bx9"zm_ `P3k=e.H0nIMuK$Y3UwR}>+3.~^oKHa5(0䷓NiJbIZ :;M<(N=T38NJn4")p5XM[(%/z9N3&T嚈+d_%cO v&MSGv Y2K2$5APP?Z g1.0*MaV- 'dAJaANzd rT;oVL~^\ ren]QfZ<GCddyl.%BO>ZW|Q), : ORDі%UlI69z@`[Sw6r)nCLRMgt ք,LRd7R!dAdA0*gO⻗YٻJ-'WȾ@"[$H r|BA):Ku,Q2gn!~#s,1@2K)Rԑ +QZX`ksZǓ#x¨usCmor>W#{aIE{iJT,uk|6lsHth$)BՅ5 G5E2T+ԗm7Ŗ oT*Im2*ƝV!^Bh`U݆x:7k\01& ەy d&Yx3!!; ˰cB4oy\\{ͷ`O_ lK|21-9D~0Eir%Ěx9IaakvmCCQO9RVƽQlUc߽]Y޻oM *VW3KKJ>!kd0J^ NMQfQYJj.J!ksk!> .4*jiu,mxR7(35g8nR=Կq]smT!1&W,G˗:3DKQfL~WK`]tnp ~gxyBCPgB%1r{a]]r9*!18* mт }P+qRf cp<A׈Ĺ:95?Gc;i\f}^~#8,[k<q5]g0vrTW_[LY+7wI DxS*HkʑNZ@/a /ze Bn}Aw2">3[~[/ޚ; j ;\ns#COkJ[R!C)<}/|KCtJ]٥%=%^~=WBlJjPF.TOГ)FÍ;å~9QC=(˪a%%۫e҄HʃP{Jn^'LB 1\sD)ˑvagV|-ZAm@8Ʃ6)`u5vE C^SMsTmNyRu'> hB`!S~Yܔg 6ƅkl ]\,VWku xr F9JY-C8B31Mru,j'za}d7MXAK`~Sbx K q):j̘%,2^-gZ4kNe|,,%\׿4],yJ]n1}U/vw#T[/˵ P} \B]:K^A#Kb961dP@ uMZg)(};0%BχZXl( O0h?UI# aEͱj66gE4 <}nYαǟM.;QY[enJgnPJ 2Rd--12v,~/v j c9wDLo"4|A:(av? YC (d9 Y5nу|&dd}b8_NeshVC3ޫ;6A;;n9?.#dy `vu Zðˉ ['| X@Fa҄ܬOƲ^n.|7figP-CHgwG_ۦ]pq["Q7U~KZ90НP !%cI'O 3&noc[=YyL-OT5%~߱T?vf' ͥ;Wc_yp#wFF1-Zpe Yxfer#:9%U^c9OcOfb {hPӺW,[;,`p$!Ȁ(˞z0;7& ,v9"7ތGϢ/OYF Q]rX6B$@%uc~@FT8] (7@?|n Ě=R$6Hڍz y#N]Ǡ£%]%Rע2qů CX2j QkB/8u3CqzA~}{jouمrc3+2! {KP:DghiC7D6ür90t'y%wnM$]~W- feMAgցJoxNu0xo,ܦoJB_c[ɪn:.Mo݄ǀ7|TslYx.'is$4[Uaͨ_S侤;iOZaBjO)R /7 pxV.p7J;/.wFD`EДŰ)F|Y"F`{t^꧊Xݒ]oxYN-vą7叮̗9ګ{PY_-i~5Ӂp(i j<õ^+ U $i2PgȐ"%j;c;ftntr_^?i*[1@,+%Eei?P׳?fb i,gd6z_;14T_y%YBN=8@WQ&; TKii^OȥA2 W5.gg:etѾ DWOf%DMyW00ʁkFDd,hʎB=OzRid:ňq5*ZwBZT5,`qMhM#nydnl!RV5L$+Exm~"a|;\z*TXAOT[,ל$*J]ܟ1s*Kx7htO,nCTe&TD#E_ s.=gugQا7,{dk̴ K!% zl$[,bϺio4ZJ]PCp]ntIU3AE7`7QطI^{(#r+3pUg5ȋχ1Q!*"g;ܒ&(m\8 Z?^eSߧwz!LQ_0zIcb@jr-UK l}E( %)AǬurBѧ+D5O|LHRAOkl,N(|#I,f=Y'R+-=U5P՟h{0QBsv3rey31Ki7s.JO4Pi(tE Y$DvUFXʏWJr-t'MI+H=_ XS†MN T87+^v+S* jfLr[ZfPq9`j -V2pr%׮eRGWE&e*Z%yNBr04({x앐G6H($=["Ɍ~T r%Ӝ[{7%#bg_Zi%W;@-2 A_Jv(0Y,TV݈SJSa)]4)ԥAd+L rR,ӵ~d(JNpu x6ep6vPd0K]o7 򛲡jV&((m`I7 <Ң%C}+QYFemEaXKw_bH>kZWGA͟,wِ8+q4{,<̞n^m)iC82cU+.]2XoJ%bHeR5l[_Ͻvȋ>E5V#}w ܐ8 OLm<)€Z~ D#ZNv9-u z|$H!GcCg)11LHcdWCAbuþJ^%"+M6We[о >((]+w5i+s d%z*C_az>| ÜG=V<ݺzteX69k ȶ L6%S=@[M{Hami_1,3$7(`OG* v:6֣_!b鈴"ӂ۳T0i}2czd5RVDYp:G34T}/ 6pj690](cyG oGP5cJ,uMO;%a%Qu8xDžıap?O FD&aduJ#`Tz$X)$ U##ll8wb1%·1jd`*!3~YRD~B O:~9sR4ugrzT_4Ve!;J! *`E6yœ&/eg, \I gŔ}y!5EbPhx7&.mR>lR$ }cp}#j{xIo.?S<<2 @3q&)'*yvΒgSY7^k{xCj,̀FeW`I^ojiIJb|#D&G.YNA eP('c ?{>A!C.6`Ķ:c!1I >Vs  䦑)UG"ZMlmwu)s=$*0ק[?QԺBr v$yQn?1Փvhu4d7"R31>r؃e:6x⋲oH]q5k(ioCZNKfz"5^Ƣ0cDU`ݩ m: Sa=a#A WvYD<ǃ@ (_Áj:7zGRvELWr"W>% >2r"lq&b,xe4ݑHJOˮ<=TeoVhhBJ08ˉX/%B5i DKO;~bmzI9[wZU%!czW#U#M$;@R\ITVQr(쳵GCψigV6~pg,r>n_ K]R"4  ` q( 5%#?J.BID~oU^1bl}e>֑eHOг^Y;2N V7H#51i/XӻGc4bԩV8fX4c hMH/vlq.d~%!hnx*\ڽMfL$i@Wn8Z{l2.bf!hĿm*:tʋ^ns$+tg { g;}=)ĭ{EaͰJq4UQ2X>՗@m1 tfUf{ q yF?Oc͊?]]Q;P%$E2 s+*CJ79E>NbՇj=v^Xٮϕp+&Rj2#=!ЙMQ@f']3 !ʋ{?Je>qR[@ HO4Q.* H-ߊU{KltqƝ|S;C^A'9~,=5Bp~ݧ9ޖJ["}=8œjuN3kS?ևTu޾3n[k/5T"O1ȿ4w`$rXRNc$ D7SZ 3..ks f$-ⳓm$NEf/75+>\,'ȴEhA{ƀO jen?1`^M_Bġ 0 p[Kvm2@0T2d UYV~AX MUG)Mo5ڊpRY }ڽMDdH0 Y|^?nΞUhOp#9q&Hf2u.RoנT21M2i)-gd>m-Vε95rtߴ.Mܡ*m zS<}=6ze* g!]kAwNO( \Gqac4pcrs&FS) P'z_mm;q r =VS #IGcR%Ub܁3K`.t&57`AeTbă~:&t @VZBXAr2P]1 nTQ7 5et,bE?_!ml6T3;V\snfsmάFZ0OzO ndM'RޜO[aVzlV)=K+N8ol]~"N"p&TӔ}Q&2#j}*0/,X$w&DmExҳ#CfY7B`bQ| >ٞ#H~Ӂ$)[NG}b.P,\g*yA~RRddmM4\Ƽ5PxrigG yeiȥ]3b ỸpM_[W'2 _XY)@E(vj!!70c|ߪri] >C FHL@xH,D`D|<Ԑ<acB{q"H[ӞNН)ЎMA‹q*ְ$bе6Ht1ƯodZ|ݙR~ec={9Z< F٥i:ya8s%CmYȟ3uicgO #Z-G| &z@41ΚN~Y՜j%9cѳ]z:ۂXs'% P}8tHdcriܷ"址}IH0'(1 c8$ܗ-yte۱Oؐ;H:t/#>BbL4@'"!xGO ዉ[pFK~p!|9Cnͼ_e /ܵh\A=D(jU[)ɴ!҇gTރ17a@OLR@$w?{LoXFeċ+ M,|vU7 f11=aIERE0h:^@}IL^}e6];?x@f!3羂OEؕ>c`֌è|![69KQLP!\i-aUPý NjmZXm"j^#C6mP> enQQy|=LCČX{>錿$4q MF! 4i ~ PaL}7qLy7%Q\3 Ϻ5tX7&2=x vFNUٶGHѣ/[Kzw0$-|r0_ԬSvpj D녖ʄ[2Sꈬ/(Rߺ7gjD=gg'R`? oPO%ǞbC/ud!ۦ& ,dt`jνY!n0GĜI@g&t3V;6\ mt aG?ζb4P=x2 \{fJ__2 gwNn|gm[DU&Gt&MHSo7[Qvky0&F1oѵM1;Mʒ"΃s.]J7ԐLzz f'D{r*ҩLGx3'hz=]@/Șڎ@=Xuܮ5}8f3\S `KX|=4z Y帯T! <&I;ö]+ıߒ"M`<]a_vo5*Jx&De g@\]/΀hLbLbpoU5wz^Kp}d".TDzrb>/? 7/]"8 MHC&=MNco'gC,Ob|cL+sk Y\h++oκCM9B] :.6@~ ;uM_j$5ʾDiyیP"棐#oU= k}~Ai6[~smA JS׽O)iۃRu PVV:]Rzy1#}TD>MLО;!cF)&,fe~ ^Ea\'@$@W̗2L}?u׳͂`}?ׂh+$C~}lݼ[EalٿM>qC3{鰚<0/dt Z_ O v%8~ F=ͺ` Bv?89G؍u=ζҾ[5jWl !;d+}IՀ|@" +Af/\}EVKz6RK탤fS@&@=rq * xa4$2M; [c.9.)=Q;dq-ii9 #PMޣ!b;O;l EFf۔|dߤ^s$}4GZfF@Bl$=uoyfX)S. %"4T|L,TLEM.Μq7a8)mq A4d2du0XEϡ*]r;D^Ŕ:c鮈*ork߿'. Թp|O~vP,Nz˜%é99gѥJ{'tJ_Gby q^FsDKO |'P2J\;FN v͢Ɔιa/\dc m}F_~Zc?sED!N?@$ʢi;7G%.vM_=p?=yFDU77@ >VI]cBr*e28Ao0mcmءӨ!ΫZuԍ}]!9{E.a(>?98V^&-q3u7n)eutQZzQG;텧|XJ@fb*lC#R_$b/қCUfHFUٿyF7jf=ܥdžvMNyπ@. p;J/(|6LCf~+dʈF=>+խ#K 9g,_``3`$_ڐMOT MBmslIS7ǵ|ˢwM#K▪Ź/6>QqrON3nB0K|Q?g"Bkdr; Bc`ĭRljs{rU9 xdzD'P bX $ th@@C6jÖ0N\RbWͱ~87dfX! Nijhx0a[ qr5 <|>emq"cc JrPm72L\2p.d_1xpJv¼y8ƚ+ڮaʎ̄>͎CJZ`MAtMXCdH Rܾҕ9FLb@ ]U1Ҍې׿a Xx"UW`j0a}ͳ?P,ת)c2+9NՁhެ 2J1鎀V9w NooEHD[TIAFoITqb8fWi1p8o :EXa'wvd:u\ ?}TmHAb,I[qx;+~_ Z~li)Do>˙o4 "1蔄.o?şq*b*m?UDu%80Wra2-yDxCH qzgmd2iI!^ߌA1n$Ddz+P 7SdҲC,qy,]L->@P3Rב[=rgC(@<#9Dt]g뎖:qItm f lkҚ&8`*3:FmY&x}g̓iy2F-$ ¸hz »+w#Wq[_-9 gF/H?!K |_&CO\>(SM|X:ɪ2oY NLq)k3pڈCMGٸh.\"ָDkc.qT I$ T.XN2rӨKhu{]{%&hhKXPDڇˌŲm?JLq`ܜIr(-P([ ӳQqE#,;*H~χ ܓiy":3NhOrkTh=Ԏ텳Yoz:5 7NjQ(X>˹6Zo|?{ +tX-U;5_FDCh!7V<9dvtvA5?&k;/h5X e}ᨥMLW3c!6>aMw u&FdID V0OzKoL.@/m=]~l/r#J0]z) &[|aKVʞw1Q̓Ie>FRI#ݳ zWY7d^=~xe3833l7c;L7;l'-T+ !aF {1d"پx&EZz92H!x&9M 9 OvBPKa)4DR0y0-D"ސt2v~ 1;PvW /YgF74X0>RֆIphOEwk饢"PdS2O\)=Q4~wҿ(gH/ɇLt"?hxMpo.[S7b[1LDCl{8%|Fsnf2ڐEnMTI 㽾X[U%_, uF{XB~r))d5K[KKߒn9lft庈JG7#1u QhN}Ȋ~>rDzXd c#jaK[m4b1m8}S^Vg| X)sKFfwKL#Ƭ=0 < +JPŋ =0?&.:78 nAixI*]ʈ{Md6⦍;{U7(:j ;ǥG91Z ؽZj=JuSx:cdʣֲQb4I':^ y_DyU$Gޘ {h;BN aHC)%]b&at#-$XԈwO$6uv>UVrgrzs {[Owh\oYl)RpƳ["hL Og\r~bN0/ -?tۡ!5q5` $45hup-+ʩG޹X j@fa=6/!>;hDC ۻWf會O~\B: Ͳr PZo+nϔ0s|C$v',X{[A`>[NYugLFhsa3XcBf]Ҵwmz,l&IN߶d\YX`:{kGi#6^\pdg.0̊ {6A \K-kr}0u/ZoB ˬ]uPQR'؀|h=DC"C s8Wf4ס/jVhz@z Q̿RcO-mKJSeȰmJdr214K0Wv/Zd)6$6 6.`{׉zŗ3Jb))ok3~,'[ jDžLmc1n+M~FE %}i3,WD gh~p&kŧ %UMkϪ y(D =Sg[*q^_4܂ݸ\,7B G%yFm"hId?/?Gr ੥{^ Sꗗ Qy"ny t7%3TE!u"E Q$Yrͣx w*BhlXyϼX3XNy?[ShkVo(BޯqH(Ă_ecGB@aM%oj-5y/" zD)zCOm$~n)\аQt$R<osy4dhKnIlCEU/%ya0͘C_ѿukrb\*o!N:Y15r'Ph&0A  A??k.fn~Q24w淃5vsVoW j`oDi%c~`w>C3gN\Db3koƞZ>SmGfWuzx_@d&@'&uipz]ckqˉgˑ+nGvN: NT$G,mnهYNMmGo`/j$&o.1֦|f }LE_˅6 <2ZȬ_ &uMi Qw0j4ú )eX\n_qE@'MT-˷2b);ˁ>DTr۹;P*zb>/Y_Or75\2Cu`˿VvEߕQX/9L, hK<" XÂ!VEF8=ʥK߯lZ=jetڒOq(.kfKR=@Ok$S~XfHz ZI_e (]^{Ԧyz{|Rޏ.8Cro ϟYIX%ސt*+Ir:Sx'F<=$QWXO]މLژc:qIvE QxRͥ`}¨BVM[aDON]NE_3!̑IUһ]w]*xB+f& M\MQC<0N}*#zU0Encޫ[I(js3[p`^ Yl} pyCf*h=.b8az!]J? uL [.'*wK"YGDY9ve?"C_/8+o1Q)< 6%.[Ƹ `R2y>Sӣ^zc0hv+@-kA>_T]DRpYٺ$HnF]M/+eA(Ŵ-);z~p H2#X>=ZR>6B =UrȮDsth鑩ղPAC,ah9K1r4$o!pq#ʱ 1љKG =nŷc#l6PîgPi#/E$Ig,?tn̮齼phPo~U3vNHt\I=I C0f5~4xldP*0uU?5 ˝%3Q#SA:ܽqpaCI2@;r"UŏBtU 㾠6]_&aهs-؇ÜJ`AZ? qG0* }wy iz] x\{@Z &EvDzCX@bځ0iǔUl)ұǚr-*{tZSH8@U,t=]1i(?jGԵVݢXM|5#x~H^c*9 ʇgg5 Wl#|W|{wH4<7j H҄o| *N8'ʮy)2~{\^lɂdWae*'?lCʻ AVӋ[@nky\fWV؀sti`cf'IG!26OYS迌wlb^sYͲ9}M7ޝ̧^) NJx)HB*e.vg@˒$qYCo(jlsae:&abMJ2L(r&$Nivl;*QyI G;TW{W}6I!|JOx%Tac0t.^"!\B=QTi G`RtQa@3 \ bU)4ѨA-Lq_0'ƝM;mʞh$pFfǾ!k7!KzD(h+#Ŗ㤦w~G6H%n_?h=%V%)0nCWb~&qE^]Єxfq z-i,:]+ JDFbX2gwHhQD}3U2**(;h񇡸eu5,HB0% Z[|YpJ=i:vw8̍$˪5`r.iCjVQgeCE4ٔO)x;D+C^&!{·ś9I6dMfe^SQ0ej_'b@8v:ơ2BrbL䥍] PHFEBOFu+ @a4TŮ+yE ˞Ǐ(Ez%WR85 7#uTd \7;m*7!]Je[,-m]E=(O1\*!%ixE`iɣ!}B8ZA3Q2)&lqux)bo]"Ue1OTrK#2uz|P}<(>okUGp0Og+sficdK[ ŠjO" LhUvBvj175MDJzeM}о?#7L%QoZyi(Xȇ)#s,Vy2.?l Ԑ»PNp; )Jq@Kd0f.ITEXjɅ gdXل(k,Is zNNYVU"68\xI|%uU\#r]}I#NEN Q>VWbRlVW6OqXBcRȀ:\kRTE[;yh(O'La_ғjp1mŽ9Gn!_pҸ:ڧ@-wD5̄$75YëQp^Wdz 3-ybɪ m"/oUPhABF_h!kz2.W"Q 0\-=TATL*?MIAР*$(#ٽg^ӌpE&{S GεXAe_#y!xUY;iAb#I{cā⿄d <+BbzS.35Zņ*Kx8_AɺqOB'c=F 1 Ԛ6毩BJ)7ea{3X/Jl3T5/nOf3J#UV [=Q]8L5_NcO:$g]4_9k*jEXhqEV롩*wQC ^me]A8 ̹^ P*?Žw&q8ݵ:{:>1jКb4丢b*"rvv/3p{|bu5,] s.>UfkŒ'N}VfF-մ%A=-9JaܳUG)b.iWNvvX.tL/(f-XBݰ緤{sі> 6u--!Yj'՗s =uظU~w>9,U^ Q 8/A#Q=ݸ؂ϡĦ ^Ccź OӅL6l:lm;1<QM3V$# ,*zjy y 1V˶Eǚg;[l=6\5 ,pп4fuf! 鷜Vkϼc:GkʺtS`ǪCܐ"L*4 ݃;U!W\R?k4Otzfx]V ȍ5:O.q9 W#YtW8h}DjJIJ,YP0!%ګ%L_:Y{aiz0vi /؀ ,gh)|KGo%#! =b7"J~I)Ͼj2`Sw_Ҙi;rߌٖȤxoޫBgӠ];o U]U,ضg=D#J-۠3L;Jx#z<3@L_ẘ>*KZu&0K,v8K1)'ai&MCS _}+Y7T?iѩuX~t>B[m1R/ꬉ3${ VЙ-=zӫu)xEaV̖ JOMQ u̲mbwTV~.SًpĐr2^I];-ihuAnWĺo% )5ջ"A )MV(KxN5{Zqst!N4Z!"nNs\Fih4zW}vﴎ=}x+&T0 SQw9 5vdfɥA8ž5%?')xߦۗ5ǨLa1 ӯeI-{as;M$&;_`0UzIMϞo9pӚRŬBh=/i©:dT%+6z~!=kKFKգqXeߞ5#;뀙 R/- P4 :zT;&*=GWm8 uHz_VxmS9vJ-"Mբ w7;mB#ۭ^ lXq9n-N1Zkf\UuǂbK#}$g_Uj~ tBBCXbĹyQrC׸i`f{[7"8{R?ym޽>Gkgfv^>j=RrڂY[Ϳ}G=~]锛¢i]{ DU~O6I@rQub+IK Pwp1*K agToQ`򰺯W"[]&{,Y)8‡VhnF߾C5̫ ?zyJ[Ћ@ {9eGZu`nh,(k7;)~cךfZ Z/? $%fd[,ǘ~-ZC~@puĺkH:mF"L 5XQ!AMfdG0>9r9YllP'ԩ}l\)iYͳ-d'z>/S]t;+ Urp- ly7V@!V%+."zD:sLCwL9JȎwk/bii@&^$i.,z1GMq3B:њ wF߈8tv4 XeZa 8h8R婦S/, Dt9T!9C0!R2yBh>JyJ[Y!z$wrriXrNLMDVvO 9q:2J3$%05lr%p+ 4nhd /W]^%& |Sh6\+kHc7_ST!Sa[Ag+ɐ#ι)@pT-ūVgHm̱Qz77 Y~(PM&;nc NU[TJR_|jq[`s>/Uk̷9Zsr&6 v ܋A-O(UfkUl!<z|14q# ܗ9_լ_1D' nM]S?3Rs".28yuonV9Ts/VH{Vm1KltNhtoN}ؙ*#֞=&{QԿ[~^Dߋ &Q'-0ތwuiY=ak@t&s{sEVqt^r4<i; Zz,o./mւEO|.6UOkGhz35(_t fܤBa_X?{MəV |D5uNr1Ҥ/cueݤ`M8!. W{u p [MpPLL擊 &$ok)lz]UZOawS4*5 ^40 6ECESAכ.,O~7\~}BI4to3`[CP3zTRCp%UY*!HN*<'E!6Nrz Ӥ_!ө ^8yAIԧ9NՖ)| 34nG{15zݝ$:K_9J؇45]О$V\bT &X2kzzx~ﺥl1,W5jS6w#!5W$pF:%Ŵ:0]2t\I55xS"v&`oWt)~w*}@]K)}+%>A LK曽r1O{$桞<%_Z+y-QS"@䉝uԇ]:1 8AE_`6z9 ˝l6 !t_ZF2O$"&|B\J 9LHrٻy ?~$͟.-' yµPL<wIyA?^"||Ŵȟ,_\(4nt:40sXp)ʻE4 9^ǻx턛 .7:M/KWR\?8^aI|. 8S2s\DĠTw|[DsV>or} cQ 3")tc ^8` =f_aNzٗz"HMc^ZjCB#I%4$yMH˱Fˍ+h.8#$?9Uǝǵ\ 8p tއj7Oşf"gMӎ>GLbi9 ")zĖ"u)WLQ,67lʺlH8 s5s={M#T G}(dߢAjQCpHq}IIKop?_I929z>:@#[:XMPqH;=8Ɉi$\MHzLG/RUˊ[ӢK8HbdV%Kq'%KTt롸/}~Iz/BXOrnhŽ 5v'*(% auRȋS$mmohmIcկjQJ9gH0"zNnӷUrgWTWH"f 9J娹JgldYtY00i6Pv[_Ym]a~2*+S(>zTܤ /.E7ewE~flI\λWi +gN5)Wuڦj`ƤaqeRkpo2*)*>fAk93l^؝A,gʖ~+k Y\g Z Ey=?$d/2PȑPJ~CDb~ 2JƫD3SMI!r~_t G%ܙ01S/a0m.frV\p!f9ވl!IlEKV^( ͵u.޺q`Z'eyvt"^N)<_KU. OP[\+WSAԣ۷9LfɵʠKSw%Xm6_}g6Uw8K*gcC9ޑΠ;Ln|@bmzvrL='lZna9d4 0+TQJ-TB E?VA1'wsv /MsjqPg /t]B#+&%/? YRt4KDYp 4EX;|4yF5$?mhna6R\,NX݈}ŷWkTN5ZwS-_)qȵ>8=9:1CF@|8 d;bzu7s[9(+/L⛫Ogs>3m Xlvn-FL;4Ɨ{dY  ޕLXﮪ@2g ,8p,}6rl!NXQCp6 I/"'Y{?y|'}Ѧ;~Ic(6c9biﮒF;)XPb2ZФ7S=|Ϊ*ڱS'DƓ3rp n.I 7 =#mLErewu|^>s%2+?1ޤPPb4tZuq05/ ͰBX~9TrSO* k?/a~ӊ&|kɧ ^hY: JcLspjgDMD7}b?<1IjuNz)QuV 'h\pLpD7WR~pi*zԯTuAwP, ֕OZz߭Z98G@i B# h>/7}_N'bt "[ꟹVnON!*UyH wan` FJhRf03U3zK)v<_wy0W-Ү;vFII-.Zt]fiمd{4߭[r{Qz+ ?7h7M`Œ6僰CaV% L$;$w`CHaC,ьh% 5i#F"m1h,i{˂{c j S!_JQ+:uV8xb́)LEjopua=LcAF~+MI~YI)\cOMj3H dY%DagJrW$ߐq,ݗ9`u ʳ_f(cD5$!Vj½Sd6GC$a귨(ivIdR%OBQGd{Xr7UdڭKl,X ᄮS&'yU^SvtQh;tцCJbHr.lܾ]*>^;7H~+q=9ќ!4rV ; ,2@;y=ހco(;$lҙo&"QmflN7Xc0-F` 4¼ܒzJF [<8ߴ>:5:B[?B JZqxb *ufϓ$aQ=ĊTlݜqb۽O}0 _|]-/p+uނfDs7ھ(=& O,օҙ:gQl%KY5;J?$*s=)mt%=ELzP9Ü=O{Z}KTߥ9gؑ;~X"$E9X\;:}O2yJۇHи֛oqU{˲^1 [v.'cNYNSܯ])%K"9יN|5_Z~H4 [XJBDT) Gߦ.$ T&;h̒Obغac:>y.3(s U`OQ͆98@70DV<,NU[!.hAz򶭯\Q.J q~x[Vp93ľl=D}D/\@?!Tz8`XL nu<{ Oˑ$聫sb!J'2B|IG&GMr>&qJNb6"?=Z)l4Fѿ%xQi#0 GZÕ\ _$o5!CM 5vZ_®qg#n7 c,ovk{%VH[QYsDnO}w9}9~_{Ȉ \t/hN!zh3QL8;0Ϥ'LαgQ("^T2s/jmޜkgt+xJ/8|8 <7 hS(Hb1Q΃rF#+4uېD_@i[,J{c>^{̣(\i(TH`ߜj%^\+L vMejopӫ4k`!2Obŧ1췉a/OV9OJ߬ڜk8j)pF9_E9 R-Ob[5zgaifMAkY/86[Ĭx1ƻyzzkW!?Ƨ6Ugۛ]XK*#3M9~ڶҹxw`E?@ar)oeސATabbK2b=BgAGB-sIt_JCLo%E.s[ɽ\h lTنI-7L5t4Lj#<ˋJaoÞ_D$S7dz#}0w {:#JTߞGf4,١cs'bņ3%+c7 ބ0u]giʶzorU-m,p8e+.R0eWF\e/YچH8B6bNz8!k/\!J*PXCO:uÍlx%]>xaT ? d$ jшB@z8kjEEF 1٨7b #@$C(ҙ=.AS hw(,cdX ϿObc_9nf0=M!s@] {ٵ/@7QPRJ*R|VWOT@*ke=LR: @]C5hl&h~ gB!:!\B6C{ k/AGdB>(M.$Zu61ʻ5pisA&r6,4:KVj\2 !gCɝ ;! xN,^hȇ!~HJ?Z e{vflՎ4Xa=~L?\_s;t:jl`sE<JߪGԾWw گH"Py[=HQ}ϫm N?:i67^Xj?IIΓ_?gq0SƧPQ2T5>=ٹ}+Y6NcɱlȻuUPI}Սx;Hx˿Rn=D~p;Ofs;ˀnǣTtʙ=nr!pbo s m6@`sot3 r 8FD 6Rb?k@)vY@iNrl>} 5U;wb|ߘMr@ oa-o #lR`VeZ[sP&H[Å5pHmr6GRd0Q$!jX5gۺk8D e؜~ǁ1vPMx㱱[ ۫$9%y:#QƼ8g)wS.KzΝWuLvy(o ͬ1h^$(Znz.NjN"9~H o >'rǔaޙ_iC,rޡ i̿@ז2)$íKd%Sʹ#ŷ*2-UY7jr"Hsʾ6ˆXE| 0}M_d.I a!UZa1̏_#&Z1s+d"זbӘ^G<0!E/Te"zԗ6=JHsMCw&})sP s!OY:NDsնly8Q yZR_Ю,X ]zO&Ri~C[@g71KB?4'ٿ|[z GJܵ r=~{sA@`3b!җx Wv*$n Fm]G)!(2P@،/A^>.5$ZF/ ͕*ѻ9H!u|;.>\!|}-)0^}I^{xvsCj`f>gX*r++ dR^0ߤmVIx2d7ns]\JDOLiOw0º9 ^̤En$9Q&U`Q9ۢT ̶! `j2/ = *b;e!Au\q_gqN_%CX݄aPOȖxA /T7d9"7YlRU+w/` xUG cD_1 J铿pJAWyV" aYAf h&m 5oǗ'J*g_=< a#4uz PmzІ> kz׌̦҉p:+ei@oU2+=KO O]@7i(fD~hkǿݹ9 hUrƻbGJgs@B+Ay@1d%>/ qV>ʓ5`g=2Pk!vZgl*D*XTEɀ'.3s%'5AT)WحMp}6(3#[OGL4t<4[+aͻ|qMq˗I_<ۺ!|PA=vZ)9,@{"ߏ9TxyěϝpB|1Q4#~iNbK[rp(%uG; l Auo%BK<"hw:F!F^ˣ 0Gy5Ӑm |GGroi't572P=}~\B[vC,D¿iYOvE*ae}ܟ@ )"M7h^n2-H`rI7y"Hʰ}@~ڪaiwdJ<Y ؉Y".nlR] %s ,0H25m|IԚI*0MQ7KJq5zat[c1/\tw+ ] eqj9E[P|$ Y˝mĞޞ8s? (4s0OtGв 2!PCdOf!ĕ$Ujg|aGzŶö X&NSMwCNCN V9}`9"B^Q|ꔏmYI-x ϡ$m2!o4k+yf1E}t!}I|2f(A z{ ^Btv7cЇgsݴFh'LYu+%]S+#~5IJ Q'qHTx{ω.yK(c͍BH^8H]d x JӾ^*o6$Ǜ'ZǴܫ_aM솧A㈗$w:ZRTz>8LWu ruTg LJ 1~SVMXn;2r~;'MqӾNdoh-AA+o˞iW!w[ք_{ƴ;1ѡJ.햪Ԓ7 f&S]I6ɔws33`$?GK|8u:gj}!.lۡAS0o6^Մ"?.6u1`u鞕X8x*ېF9)0oX0+ ~:6ޚl}!'2@X^|*8E0z8a|o06u 4N[مoA&/H=lg[jGU"߭,z |BsKczG7ߊ{"msٺ+j>vNv̤H(=ُl( Qf9-2_Jnwދ"TT0 .F U@" 50QO.QZl셙œ+/$EeZɿ͕i&MGN Ŧˇ lpց)'|J }AloRqi{ENxb|lVd2ΨooNbBI5@4yE k~'֪`#=J'2Ԣ#g- \D8S`t/4F>? ,_y\I|='Q(sssc+;Ax[(| H R4ۡ@!Z׮{";a=.GP5i/Qg\%'I=+7~4$, H:z @vAV5&}R3;I!h^Ƈ;22߰5n'>AĽ6dKmb{n%D5 0y։2ؑ3 U /5g*ccY="ʕqydo "TȆdeDi b-f{zAM[9]LG9EW5c6B/thE%0&\Օ8Rل>GfrDxl{'>}6Q ϑD`ƴ/6a`N1;L;2V>Ń_Q!}Ϩx̹S,W7)Q8c}T?,4^{xxB;|: v {REoP_ݲzi+ S_N e';}d XqQd.ӎ/B޺2EvQ  p]-jA݂7cwqyZF~x3EN2 Q5+ _{JHhܣ\efq4AFk(GR^`|c5B!tXq0|оߘA9$<͆_~q澥>NJD5L\[om*GKY&My)h&ZVUH_V}dV8xkj1/si\|KY8N<*uJN])w`$ɍp L6ѣ-|,RDb >ߡO$ 6|h&l+ƁjX*yx*ZUzS``P1=MSaYM#nw8YɭF^Q2'\ש9A'^pu0u6&M \3&!'8HL>Z`{+d䙸=تC7 a,=XE4ڹpAJA >|nUafEi*0ORf,-oz0hMdQ* ZT !yay$(^*{x&z,V~ӁDu:ij /A=tYE*_ЋdF 0oj<0ͨ 7}Q@i_%И~cjc]ĜDw82x<>̫Ĺ9/CH=lByɣwU,b3ۃٚ0p2?],uVW79P7HΊQV& .E cCr'7Oe> p`#YUDB;dX{.HTX1+6*>V]J}{l[u[xDDVGšEwCOuit(yiaֱ=Q {ԛ-Z:E60\WrQ­im}y)Mr`FbpiayD$n@"RN[/ Jv 8;ֳ#;WL,(P x[Փ}w6E C ;mQZUi:4i")EU?]]Akada?jq 1vat,.Uq2Ku3ԴfSPT1-H"<Y l Raᜅ2m*mb-%F֧ zvVQ7+(ЃE+=KObMTP4VmE{ԸIN@3Dyxt4LÈqAѡ9DLQ{kN{ /?>: a`Ja? <ؽUVv 뵿'Z9nd]ŻŬGF>Vw9559 M.ӭ W#@b^ITFdmvah%F܊$ߚ7q1rN(>दjLsK x6wmJuKkA0͕ ܄'k3E’S 2.ex!\ix vY&P#)DJo1ŗ&T5S7CvXQ;+cnQy[)̫P? Sf=4eQe{vfS ^r'aBcoS5r `?S4R]'Mo>쯁l6_'IMBɎ|Q.|O]x&Iz>2Ǿ\`J6U_MxiQLѳևniF01zB),&j٥pLGTqT )O8g^PxI5e22RM[NFm~"L^VVΣu14*#F*0:|jԑb Kՠ-v[QV%W n*. }QƚJ65\~{%^.o,u[UI?C_:LbtcA]ha7BAaTdwA#&u"2rn(-9CGd^(xPծe5i&1 =}gw~z:1z8.q)V˭g}nJ _P)pζѸ|3*% E7DER{=-'."E*+L<`z\TSf9.S.[ ="c| 1r AƅJ`U]_Z~wMs|ܪfg)5~`!Tz:/X[BP]Ch65jy{(&' UT HBth61TV1gOy)ĸ;.]["+N1)%J &(.A8~e/f-}!9;J5vV@8(YXHb??)]sQ@ĺ (m:f["xkscƲfR9!8G_4ݺckHlb+OqMnC~e$q2#1ϙlfˁ%r`oLpID$k tR핱x4= PBn3*KETQћφwsTڔ6^ ZzW{`$?D=ݥqH؃&Q"d{\M`c_4ҋu}'|m?^p)c ?ʉ:yCo;~k94DryPM^ Y+Efʿ.k`_?;b:wo G ^%;)m{S'~-t*<ѣ"Qw6Nc񢝩Spƅ4iEIŻ_:8qt"H]&{Wlh˶gID)^̴VhYlؓ~ XѨ 6̼#NhxMNi^ e \ p ~Qs`xE0b[N| ]~ȕn - xBqld6e^R+ &T6Ζgk i_ZJI([|XWeA)ZuZY ,&ҩ 6pYX؅Ye$rT.|*OcA"GWY[t>#$悩mA" T1:הy4ҨYG<*Q#ae8xC ZEAńৌ굳t'3pD6ޮ)WÚ&P3zAcESg}|~VKk\KH_5ۑQf)I ṫڣ 8]*-0vʁ1zl4sB# }cpu FbI@-IJ|*.:YJvZ(#dS;PQ6sqASqY͢AO˰Ʉv-D)vO.?:>6IZ DMc|-g ljg=AkU\ˮo5se ,)=_/r)߄bP@p)jEi#8OwlԿqJKt<* ynxGBÎyl:*goov.Kg>>ܣq4"(=l߭]عA&g\Kgwu4r'z#g#~YvāV!bY?JbɁ<~dX!ǰ|\ <9"nWI=u=j9J x˞ʮQ$yxð), FmyS b 2gDZĤ f)op­L=CD<0wy>SvopűQo IEXHH7[5[JKL!nK 3ZC C͞Q?m+O]CJʝ\u%w}3E^gxGmZ{q1j;22%u7%Xk Tkj‘^M+%2ƼѶ>b]Ū|I$i)i-Ch*q2`X5= be|hvVH GMO[ٺԺ5rITف?VTBҳO#W2S6>;)$f@@i?9C91e;K.^c$ևu.q?q& vf+[t&m y6{P؞SVΙ9דULۧAMǽNuH_$I;D0I;eEJY{uuكbPI /wHW0y0rf~-o&MdvwK#GOV$ʮݙxPIn=0F8xd~OӴY:IQ 4^U"߹ɫBMqj&ϡ }cakw$ΜRCуďaWYn=' ?,ɏ36&8[ju 3`JlnXu+Q߅aiII3&OJ0CTq?9hO',ѓ5<^U#c)wjT#)wa2ѦDI 䦗ԶrO]ׯu^5VOvpT~'ɰ3zd!(h>z`p{;jlV&-LJp$lj7@ ^><ײ싽? 6=Cֿ1 `p13X`D"eV39WPl6[W?].R}_3`lA(c["SmʹT׎Khik)<@W=DvXH'vQ_(`bSϯW s<& /cgS擤 QwK3<07%D`)7=zz'_N],x;#m_$S[CL}Qtn^,ĵ QTDK2Q{Dnw &WMDgא.;|i=kG<(Hhz{l$fn:r$z %Lkm^ûW oPVPQe ri8sH>;"O"g09DֿLG"|u ^ v$ /kKn+7Dl VFSq;KВPԋCV?89 ?䈨 S.xe{)BFUbZy7[jP+w35P:)Hk/-DZZa뼥u H~20)[coR Ga~-b[JTVJMfe:luL[m:AopOHj(EQS:_|70V{$NdR;40ױXăUB~,bJWPWu,_iI&s;! h3(p]H QZַA8! 4|XbyR=`) 4 Wȝ*+zK4jo boKnoަ-iXF[9e& UURU&}+}}F]·hWGJUT%.a7~}P&J-HT 4Os1Jx8atqW,#GCHFզŃFRIP.7 s H䟽`u9oz&EW09/x (=4Z̠u۫!O[V.,490trFilA,yV¨C蔯V8Y)A‚[ro\_Cj~Zp"ɚn煎CRZlY:d#=zrN?S+ͫYfCQ+?(듿p.ыc9+QYTè(~h,we3.$HJ8YlgNH tnӃi7EQ15DXp2#8K^,8dɑ5h"WHޫ,7嶐Q߉0(tZ G*F95f!oڌ\x{Y`Y_8ZzQ!~*iR1w/N$%b6´;ErTl'LAFm7OMFT\ Bş#A[׆. 2;@A+D;i,/ᗑI"ht2*DsLG< x&`5@CrZc<>B.}` \ MnIG.(?rJ'[Sہv6^qc~wW>muy HJ6j3';ڴ@lWs>p ?9I,~Zm;J} mzF xI#f o}У`V~0iO`+:҄5SQ*:E' +ׂB[ƒ>%;'MY'0IkJ:n,:W'[ =׎ZLsM8 oWs|=|z$=D ϙ<rl[!Vj#ZreK[t}YĽ2*W-ʻԑ1ɏPoTg+HIjSznT)@[ߤyGNɭo`6o9ijuw_-?y4;ɐݫVX =I[r~"!d̥bGs~O<Fm6h^}gV9(cUI${LzG7O \:Z]tB.g_j-|')7q)ưc~&7^,xj$J q8ЋIAԘ]^׿fN6HL) 95q}&#d]+zqwFwu,Vs C< 6! 4<%^eSMobxJ֫o z.m68{m!M`򼙹WVZ0hRlZ dc*#ۏpȞ8*ueW2xxۺm^ߟ_&k>fckZ#~.kxu5an\C> (s FYk8~qq NV`(ޛ~sa\X0K6%#5;4@]u&QX#O:&C> w^Pޚ) N6 R'%X}H1<*Zfs.'H/;I6CV,n=[MMbȯϑ /*unn]bEīY e ̠\9҅EOx/̌&ݧm-c,o,`cƦ=~ZNeSH>BEx^ X>\s+ƴV5XI=>P]7X |4?lA)zS 5'%W@6Ō uSx-GѲG韓;,n$(M5*E`gĶnfo5g" " i9)xt)!튃*NciUzFė5c0©bx:\84emXonOrTφ/z5^6w8l %)׵C $s߿/UĤ96L=r PvEN6I&';حbRF 9C ث&rM8'чV)?nGƏ i= vOV d{8[Œ~ϗzԀstH$[Dd;g. ],FO$~fCjtmN ?$*%dv CO?hKfPk ?HNjy ckȇ)I.Wv\\&EZw1/2+QF@!X#?s?1-_w#!&}#P1a $(\ Jg37Z2 j)N3m ;?'9#oq=rt;D\WГըҪnJu*ț+rcIOBڡ@Tǧju_nTLU^5fMm9r$xi)JNBbd0ćk_$X ~dZ"9Ѕ|KjR;[R7f?SK` `.(p[SU E-V4,X*Hc_7=3H<82{3zpnxrMHOB}~34ʿ/w,i'lӀ{HC>E҈DiTe$L 88#9U\+y@nORa"G47{%c$A,毽HZglMV`3ͨLj& 5Wi RQm75(u T)L=exx.MVא1S7tfRcsVRH3^Δ]\JR*Ghӂ\go>pU6*/ #+!WHD>k}(It0J["3ni[.Z{Y^ "ϳ1e.oj RB%3Ġ~uOrMr{@42Ǻ8&Zy6>hpxu"MVTq{.jWc&/PG6I3`UQ{(D;DF`60Ts)O7_պމźX|=>ǧc7O yDէ8KOsө}:H8ﮍyǖw@@U=߳swe?厫 ]CЊ}.^p0Fxa1Cb)#R,ohQU_˂C`EVe9" z-\/U> o~ Cn 1љ{D@;С!<|um8cA/pRTrY>IZX^`ƷfBߢ2hm8U=zp@?2FA+x`܏dZ<:ȗoE.qsH~S]Lo#x [xA}˱5ѨzbSGX5~2V1Pw]vۀƭ.uݞ:{ P=]ghIQset5匈<Dȶ>v[o^q'1wf)sњ<}YHȜU,vQ1S>A&|`.Y$z#L$:>4LcYއ$[Yn^Fd7gHꕍ4!Vc(^%ɫ鶿"F7k9 EX0~!FJrU@WڳAXT 7H^\?pNP#: _rX3#6ܺ_;B,Ir몥_L߁D+eT}8nIW.TO85%L6vޅu \/bGy8\00Y$NTQClBz_凣e?&Šcq<. =uMv!5"C6v[,Yr15]<_@r ,E&$dQ y:#~h.= Pl#2ǃCp$|0qm^9y:rOٴh^B<۽8gT'90e|ob Pr[bŴ`epåUk]J=;ϣ.ܵ /-=۰[: s_l9X~1Й X cx-Kx{.[2?Lnb߶==$D2fv. o6-|j=zL˦%dʚ;QhKd±bٻݻ brxM? =|~'|$q#ԁeZw9.qɆ7{J7*I]uȲ,yV4M܍7mHr-%/HFrz&ҙJF3ghPRƿh $[oIrr. oDM㨒؄{<ɋ;m-$s՘n[lj@n5 ꅚUVf/ m!J\ t)L@Le?ODD#؀p{#s:cܡ˙]*w=(`rh?2iuak<9P?3SY׷Ϋmp䔧~Cv,} i.Aس; f8~ G޵{w詞wyxSMquZ̈́;wwDQՃwײa㓰PXWU;|9X<@,'U) `[&`GjtT鋒"4̭ [v^*<m~!6)d -6lL+\lS~ .jtq-OA/_&Xl N Iۉ 9y яYOv&z6Ȼo\g2`@F*YؒNOGJ*yLE|+IgD{2b~(^5=3GTW"*J*=ǽZi :m}`AkeET$lݰ&"sQL޺6̮h=uebۂy%AT\6d=F$C#u&J[; &u'q{ xM4ICfjĮx t_t\R.DfUZ ]üaD=>  =GI]~ ٗ@݊i뭀Hy Po/-6b;{Hv ǧĭ,vՄ~5>MD#y.;RNؽL: U|;f* HGc`HKŕ@x5~n{C488 @cԤ*dS"U\@`. /8+}[+@c1+Z7+Mm&_f5RTlGnZ2r RE}W^*T,Ȫ[a8TM!S8 D {b'M701NhKڙwGwtE%kP'~"%[4 +,٥Xo|O9(,*t2pf.b#i>U^n,8M2uf(FoZơBrXh{Ai`pOiST5r`YVs*P"n!Dû?*@ e=mr״7 :IOQVm<;bqg+ eCfb <;.;m73 KL%g0Qل-Z/r;6@m =+ ^V ЃpID=(1=%@k<ʗŢr}i1L`G> |WvЉQP(Ժhe!D5{r\}~D? E~!:S2Jʐ<-p, qm*(\baL) uXp f*1=2n׀6P.#pLi:vߦ!4-M-@Gr`) }ۂl*Vw{+6 \ :w0>r"C$U=aekkO1}]o3$V~VV(%ZX::{Z7ݧ^/'䈷xym $ک]D]d(EQi9#Z VroThd*.TczS%/?s.WU7hD|FrB+r1,? .(\XW]|M͗uX6wyS`?2dd8k l6dsjCYWdJn,ӮT=Mftj%jl.,]-[Sbj9HsNЦ -|IBOҚ$Z+_qkXM_-wo<2)ߕ>3-#_>siQ~A$/ERα' H]bb?J!FP9&tT}aTrl^kLS"}H)2qO牨lc|yw؁m suo-gʐn_"oq+|M%B9xo2jv=7ƥiڀHUD's72F*m:x^a Z}`6ſILDW߅ 4T"<Yv<\ _k7JgVR*.Zg@Sy]ƌ4PXSEŚ̾G߫3 ={Kel _|GMKZ E?NefӁ^Ѧ!-K(P0,NDSޕ@8uU`+_M?cKrㄙUw+h!j"#Iqv_gqz.v^\jx33 ĺLGhib[6\fE?؄e͟@x/BOH-|/Hv†[U[kor`7AbcMi7`S{W?K6ɸ0gÁ}1 5cZy;|H H~4fopggzJ@S4ZW/&Um=>/,̡&ϋ|^KysCV8mV JV.%z kF!Y#f==q9\QҴ~#|'8DH^OhG'V(c'tv7`HN%zAU?n8@ O._~L 82(2t eH0=Ij9:|7pZA]{qʺ*#MS9NP]i:' 2 +t÷!(C {3շ5Y{,G煫ӳlܼWoGNF}?gOe1fVB!~\Ab*u)6O݈#YUOw9Gwbp.=߅}~t.=@ Pض~B;IlD9 ^qeaSHE,vfz8jso@7/''-#gg~6,k P(;=?`h(4\Fv-ĨGP دzO9BOrgHKveanZV{$PnPz3`;{C懮j1#*n-.CM3 |hUm:u}Ctvr TOohR 53 jȸ|Y.zVX}ir MN 82)(sh0 它d'~[;ۜ1 0y;[?.F0iM!E9vc]BPJldVhVվ vA\+4:[*G&َCrjAʝXyٶ]OeHAbu=e6O#/%DM'mv@s$TѤuɣN_kta؃] ׉U֯D5zUNjAs4C_+JwZ#F;?:;|f;|"o zBDܢٖ;-x j_r6Y~甪6`:OIqmញ|V+z{wv=mZ8$X0lSzPGa.:ɻ(_L@mExᵻO1q*Yamrk7HF3C7pi_&`JsdȟIVذ&<@n}m@r灎O˲7~;KiR٨j߅> }Wf 7dLNR*xؤ<e%@ 0gM"mu E IWC}Pqȿf[0HA#]bɽ0&Ym-F zezj藆6 ZjhLKq&.J?Jnו'"LDC@bl1s1}{py<ђ4_g߼V XLޢdQݾ/'c2u޾5`bɡDgunAȊpDuY;h*UPUlg^pM#73"(7˞wez8ݳi P|tqNUd4y`=7U.j3\<ŀx;e4.Ӧ ]sM̀>e̶uauN~N |_ZN5xxT`_'y<pCwa}7dmXX{8An=\y+^mh_R l]#y譓{]FYeHeb b̾A33 /䕵vxg\U&L3ˑ$cȇ r[#ΨQN*rq=h1G=oz@ &V0='*EmgPS}Np9!B8v޺͜ClHG%wPj_3ȔGbGj[xA& Bז[$NnkJCQ/e>Ҕ>mߊ7'.s&%'rXQ.OQo*y \9K`dD͛粰ӄG*>>:@H6ஈx! 4+E/ HJ6d.$vl5Q_?h甡˒}m;Ҿ+EfQ_ Tnb :MދK7s/=0#*PX2?X΅ԣʕ2  BZ;Yۙ!ҭs3{5^ tjsEQ^m20Hqn1.S2ŴtUsY9jTrc=!Ρ+gc݀c ^5r|UIg˙T4f^rs@[CT2cfkP+ ǝQ2R6탓R$}d'Ű:ٮkw,/K'x}ŋK)А9/KrDb~y'[zoTs'ͭs}4wV~)<F:br@7SީBCﰦ(ɧdۛJŝ tT1qi/@;Byw/ހŒ0>`NEϔ*ڟi_.Vx{:^g47{lщwRaj+zJD薥 S4.EsQ5>PDr[oN^ tֶuSޅz1T5yӫ[ !Ҧ r_܏B5j!ۍsڃ紞 I^K Cz;l?9>k牖y3ǽs w3ɫ+Dixo)D}ЌbNg'B1 :!ڬ/BopϋJ@MZ6Šïh :<+OipٿWEcӚ#:&zϐ.k[nc% N f% ɹ,MaJV¥n9\S](VGuLAp>qT ި;yH\V{)ߣO e}[C ڪ@:寅]E>1FL)08~W^ J⬯Ȫ|jK+WM<'qPiȬ)iu*pZKKtqUoA} qˏ|C.ÂW+?Xxdc`&Dmm{afHivS.!2Xwb^tRru[!KI2Ի\[RK)T=(O&V5: BgHW0|w醡IMAkpZnP'f)q ~fg)3K)SVšjwBKEF*؈;2fL t'S*]hoJ|9H6ByU$ ъ.ǔJU2շAD%L~{Sڪ|c+_jh$1@*{ E>:"ePfPz$_wrJمɞ<7 b/32kB>Ko@[o8Zyr +WX8'|6ߔj+8#G?W:f!c_mTkv`j0ĭ˥"7|,sc1ᖳ^4tjJm VZ[ Fd2@?nA'QBNqW/R.o<%I>廝+TDJQk1ŧ1l 2U_~Jv^&hr5'Y 9d:B!Vt-ټW_jX΄6P?|Zf !jP9(*ҙ>z R";g]Wƨi ( B"a  O)+A, ;q8P8-~bQEM<=R*4zeD#%)z]oZ2,xaa,<15Fd?ͪ|#y {Uu;Yﶣ;|~Uy=nbN1]Y-vˁ#EN˙ÝRzztXb?Tkak&Nr8&"i7U $; o8MӃ ~#U)ܢޣPp՘5$K[, wC6[^<I /92"訞]]^R"510j erb~LBT)3WMo5Lku q~ibkuuؔ3 ]JÜíP9OX'Qr 34reYyLSz Z_&tO3z/)cty2uCO#0EXnʱ>ҷqR>+_w>7=af_L&Vc ޥF yzAz8!,RWwzW:q֪rFqb%"M?7jmynRW嚒|tVUqUC!Co@?2/{:L(Оsa~i qeh kC]d]!@0IYQOįjz]-2cUV{^RWC:}^@Lw2!N0\1cZ2.Lgq'stY;|8dD!& PIOľw!{2`dCy ϭ Ύw ~bChp8L}$SGI򦶃(DAs]q-;,;wCL:SwOXScX]1%,ת"/e%l*Y^)aژ="vD*#6ott.E w"5qAK ϱeפ4By\G蒱J Qz gJ0uبd\eZCxND1ecT%fTӊD|7w?0,:p?mP|]!}vh aLo^~xX:v1朲\Pag"7$bDFVԬ :Y*KB}^X@ɚ7g0kYGB 1Qh(UQ4 Z*ID%O+mP 2{_}(jLC" yBsNr?0z`OhJ1 .jIO_рze1DYzC&COU=md +a(n[l&6х0QE7}f^[Tc/@-ցOFMM326jъ? U F.EZzl`*Ѡ<8;fKA#kXL6C:}G&]Fx>ceC # 2g#_e1 ?|<:b'*0ts@~l=p%bB};6Wx"+%'8csyWy \7IRI/?0e,nبZk=KH)Q+Oo|\!@W&=PK{'wT.zD+O!+be uD+^Izc=T,;%j fmk,ݭ*a>icrr(ER!q0+7$؉fa3T-"V#b(JKeHXOeI,N2p&/22a /krՔZk#pķ>y.0h~TkPZK2;GXrJZUy+"H3`g^VUA4:fiv&_݃ N>jʦjwCK3~G槸)h<=vUv<O?e|{i*GHeū1CLs^d12dϖx9GGȝViWH1ٌ0dR4R-綷7)C2QN23+7( t|#0h,*[i$di-v3sX~ ֆ?~ksdB>!gF|S.bcBj@at@ J6>/0)*r"v(2A\B :ntv'Nϲ<HR""Ћg,AofZC&v#*:,PAHf:PPܡAjufm`ûm.)l̡QWdUYmKG!?Q{-[{T5z:ޡңJXa]8֎g?8wk,j>vCdNBI2_{/SY+K fŒDKv16HBA\;'ff]ו|Of|G^-h /}/E]S0mzDmh30p7QP"gHҔnz<}RG޺z5zMbj5:MxHuH.`ZU+_CJgh~067a쟩u֭F=yƈ.+|Zd _yL/6'n(,̦gv} ٴK|110KKdu֯M+_|M ƝMZEjV#s ݞ%Rky4H|* +![\ ƭ0;>0oe/^(Sp![/0[*3 >ݡ!x+O*;kh3%D=/!BO!boڛpKE{5h_U G+2/A"O֚vWőCRׄ2*=#rػ*H1k& ?=аVob:3j+ܹ`aC %9U2 W!B7$92(RtR=^EA~+^'G)yn}1RK"{mkPggs.Nvk*BU\c3y,S ڀ1A@y{K=ΣsA]Y n(:0Qu5B u}Eas?CJWYxe|)xd[G#uUTeEj ;bvy50ښhIK+v=gО'82+S\)\>o(=xs5)JėLTIQ}H:zl{骤ED6Ldn树{&GQtݬ--+ǹn'w{;oL%Yl'ۅ8Ǵ@M I~2)kC'd8U> Z2ҩN Oсdl*GՈ'˹#IE=ypxfQ:"L&6ɊC.I 邑uJ#ÇjW /jKLFԆL [A蟩UM gO=Ϟyy9[ķRÙwDfc}ԉ{ F'юxD(q5KScl0Ar Hzw{/JѪ{zQv#C7Pv۱?3 [olSj1CJ'<"N-jer05xj:TxBu@ Ndtԑ2ՇՎlxÃy8|QľtGb:2 ALp2K\I5xYrq{&:FCƼI]chT:%)k;jчF.-< qey>vmN 0Hw/-VYv%gŽPnfY-ɢ2,s˰Jݛ͍Gyg  !,/ 󄼖;uUr+@v^]uG|5KWE(BW&3G^(+cѹ]{"nY{N"NYܲ G+w^zu򹾋ʕ|B:S'wː=MוMx,0KYzsbX̴1x8(p6hΊKpVWF,XY]Ktup(LnYj&dzJ'q]sѲlffw" =n47Wꎾ5à%W;:]$Kb:I6XhZ&rG*@,Q403}UHL>Qгc&|)K3Oz }Jm}X7ax5!ʙ퍌VBQ&~ZM^Mb 1V%(}K+mo%ȤOfv;.h7GsW`@d2F:kj[,[ŋe|!_%~wcjmAb$=EdQaмO9l͈م>hO{Ntx,\.{9E?ZW޺8X.8]yJib\'u\^ ISBoѲL]C '$''T=|]=6? j\#ck8 2a.3ؾ9>nL-] l0jT}u%C5!epي E[dE7Eq[A>@뽣/ *TpGU [` MTϑeMx=n.<ZQahB O.S~^Hx"B!8h^XJ5WfK/##xalK-ʐ"nЪIH&:p"eǨZ`j "U;'Wpi=R_7#4T-OVyi 2z'kcJU/&UĦÝ0zC#ZׇE4|Of``\7{qœl|K?Oq9ft2 %Sif'Za'0HkNn)M{ȷ_24b|/TFuDvu _Q$@@Dyfy?~ H@/e?n]Ϣ?L@#ÉR~Ǡ37\EcTBoV;CjŠxaltŠְVT3pyN%y >꺴Q:}QޒOmDd. ɂ$ )$#LI n`D' gP98Z},jj>Q#/j=ފೞg0#c{P7*2&{w=Tc&86\? UY7-LAu/貃LbUDiVӴbc!CdMP>[{%nU*nR-t;R&]A:ScVDaU`LeP0U6:R:E>t/$c*<rDzXVbu}c(R:HN=}ƙ|O@LE臿trstLe2#)Dg(2e=[jnroD9~~8b.:E0|;ZnH iCʗ9 4sp~b O,xJCwO,ʦ׺@hX.4?Z_6 V:+>E(@"`"0tft AQ3HL*v| `Oo8KV<0C"ע~) r>/}!>0!ts. } Y$S:(, ы ,qq{ _^@t0HMԈ|/,3w/i xH a&T[JMddHK* ǥPԼKkZl3v0M`e& f& RASxfvF/KKb /[pas<Ş~ojES7RzΏ~$yZYg`]p/( 0*#lex;FU;t@2@$ } 5 7W V$_-l<$/_t%#A3,]tA>햕TNK#LA\c0#5Ӳ:9_ FQA\|r*[}]p镮dEN1dd5^g46pw{nb)=7CsBy2q9ʗT^qf=N]G>I~k&?><;FNfl5/hFJ@WWN*7_B) A=;1s>~*gC 4+BtIHpxB o@%!j er(hF%yJѤ2tK:i' 8Rډ&-T*Fj913rq+<>~5g|Z!*Ojlí1sYj͜^`84+kmPL S% }&s LggxeZVd b0#0eFR&W:j|*0qlCX/.籱/hSfV2!&6/d~mSQ¤(DVam ٴhq|dA_vFr8ԼnTmܳb24f,j,;T',LS#2|݃G\YMHpb1wP,9.dه9k,EiȕFJyTAp=Sd+6o7I$d A eepy,1;\%QvȜ4ڦ1tKw?L !ƕHyg)r#w y赳nt~r$+iUfIzg. >VMA=O{ڙ4CZ.TQeʡM+WyN__%5 rnZ 9)UeC pnhNtrbU&ڰإXߺ.3Šݢ]_SD)9- w:bvEehUnis*t巴(O z XikLMהjFpj*T /49uf3_e7O)WR匡*cSxL*9Iuap ث&,as2[bYΖ%:΀axyO.Mێ*V^!VujDҴVeoEUW?=b,jϲ8Ca|Y1d)ܛFY&0,/ʹk$vS~pV*?&.e<׺?A qψ G"?bяT9h9> 4B t,ߡX 'Ws["M- ws9̭f>PC_  O{ ~BDCv+f77& $/d}t)3U9G\)ҼJ utOP|IWw~p{z_To9Rb¥<:suLQ;޸,?O8~,ޱvѡ1Q~u*N;]eۏط=2ntҼ+f/?}7T&=(]ap2B'[L!,I0Tb5>P,ũ UD s/+RGd o2jF0x!?,a|Ebđ&^%EŰJsi=A}FkX4g@Lp[6_dU+b`g>!T,!a G13x#2p}x@cQ&d]3[au\#vTZIt~X\| [i,kQ,gop2ߨ}+_Ickڋ9=}P Rҁ' y{6xv[E}ze)yDu- du֬*9X2ƹi\|6wBwpV((2B<^żŽƢ+*1 #3ozduSR*} ,^t[yxV$%U PibNӊ7YԕW.k݃G>d>- GGw,5E@q53tX~j3CMe?7Քp |TNrQ $o|+/h!k^7[E,r<AiL޼;eBp}ڑ`t~M@'4Ie>!Õ"??+9"0dbZ…D0(m ,%߉(.jӍ̂/a';W9 xN q gXRmz9cɌN۲hb^w'h Lk~lT7,p.+ Ղp,Ui %vM%cY}L.> /h^SA:P2s\~]2!ly" SkւWfYz:sao~3. 9*xY2;@_tYWTm`"ӣ oj%4?FҾ Q 9WY=hGR*E]/OnOM>! q/E@spKu,e_KD':NEͧNͧ֍*pwj@2n25#\cCNe&y.g Cڬ'/A ~0:"Б#ӻ yZY\^sv]ekgUVy}UI6m"aolA嶈/EJqu9v1 R2AHuװ İi2T'ZQc''Ɨ|CKM8{#M>-w-Ұ)RS*K3l{:k੷82TqL/#(4.XDʴ3RZ۝.m{ Cz&l vuBqc'Cį˗*>ttt z/lsj2o 2E*|Ffx;=veQ's9(8 \ûJgtfV.oZ 2=vWxסA5۵ϱ1߫T`\GOgpߢ>Y'.E@k6ZBHoᡰGg;S6ZeJHf!  B ŅQFi7#]f|Zm߮"^U0 {ϖdzC R#_(A!Z'\_Uhi;+u4p^|4lV咳+5xqe:`y*5Kr%gDTWC~a*yk|=5(Q9:+.|E&{"6G5 i3T>Jybl2Dǫv$j¥8O Ŗ0eaC`ZF@;>3ܡ3 hˌݤ\lad}ILF;qNt8pTdz 8cEg[ߑ#Ӣ,ze.3HN?ɊY;qt5 C2 YLD pzzWdoAŇ~Qж+8[.#gfGo|sf Z&o|tQ[.@4kjM9iw,JС^;ÎDq Gv،'YTB{iKq(yؠU%EcHd{0_ܡ?~8ʯ2mvUU0+S E3?uVP}nb$MEyY,/lo0 m0-=Xn=Oj4^an6Zف+a#؏Bϡb/keyU" s 3lꉙԏPnA IY"e1{>4VxKRKPߜ'UzQy þYcU.thNKJji=|A< q$lGϨmQIq/#ίaU$$Š |3j~hc`L 1]ʄw]4RP[j x1&fDU+SW]YU0]1%RU..aD9ʅY쐯Ӄou ydt.g o82if<3p#ZHkg1߰t9;nUӓ8M䁙 e,]/j,t s]S~Gibz5И@cZbKe Z"HbNAVh\zvR%c0n*N3n BFfP KhT'mbJӒjܰ= {fHi()l #O`V2).]2* YquZskF4LڥK`mXZGdHmesbƇc| 518/?oP8ͅoM(}LUo6ٵwNIJ+1p&{|H*}}``1opC.}UbusUa^”m4L/U@T$ىDI&&|C!AI4IO^Ú1})o6K_ڛ%ꣴm?iH~U lW=0LX< DzETkH3| P~]Z(E]Map7:yswfx,. MQHHC 9C26AqeNZHwzbȄLi.I@@n튂{`2FT@{s^L*aNp?FƄN!A="6?)MNj}Ӱed"^ST4ab=CwLFB`ˠrZrVJ%`6!]p)Cy$2~$`^a0aa1 1,XɢH 6Z^$էr8#9лF2IEJ4n7,1X84#QXLreV3J`oYd`Kn>jI|KI]aA j_oZY̭1L1i{( ,)ڸ4$i"jAD*S0]=(@v.QP 5h(Ƿ"iH|תm)vVF5 u'vAQ`vE,3Kp1r-Q5]W8q?AB0slAH GmJ3*ճb|R*9I >1j0 gTgLoY'S&߬lRQ=PmuPQ\W5r2nm#?,R!LMO+yɵW9`* M3J\.+xr(wI|ϒ/X aG{ӃٛSvwsgLP}z(?Qo'wMY^4wއnz;[/v:)&_^v;{h7ǷxKvbD\Ja AGozpz~-{}Z m;?`x >Bv?xW` rN95*8sC:;[۳K<=ӞE:;uqGzg|nX85\`ed]]cjme}v3юB7//4]d0юZ<VluY#ï#cW-T-  sX~NB G%vv&B_!Btb(DL&vN7quTGLDBG99 岎qL)6L?;VՕ *ulk,MwՍȡ~vfh^,<&FJ g{loH&v*GW囿2l 'ȹl>K] MDo3:m%;AV@ e?|1?c,ѓ ~ppQՋ49>Z_.Իdh[`Z_5k>(*?@l`KŋG%31īmכwia, Q`{4+.&C.o;"TfKz \E) E>"btH;I1kP{{,^stOs>W3)֞KObNֹQ?5.nXuimE; ^xu-^ⵎ(ݓakY 2D Lܿl2U#QOo,SAm;W]Ub`Ԗ>խT43${o7f|8پ~g |N#hzkAnLn| |Oue;F_m5:1V(-OF$1i* <zgd4  aҺ((D  / M#߱t_/sv8LgY6nUcHF2HSŒKo%iҤ\Li dV()z]}DW?Oޗ&CAFve!+WLh!=2Elgū-[n v@YT,IIsBhKYC`pC E<@ԏ#g_dFҋ+ 309jߤ<*?((7PY%<.+OG\pɶ^c;1"KE$I(0o!]޽4h؉ys'"Y2T Q3/;/~{II_<6(WwO"~"#L1EmZ@Di /˂<[ș*}n27hQ8Q⬚7紙lOZDN6[@3ț;Y'MBMᇷMoM^EG|nRL5_U٤_9<i$ǐ. $_ uClWg\nX>"u[0лT/&76&dpn1 # v be}CG[WKә1qs@ȖT-Y<| v^}ú0O+_6Jr,n!KapLuJpkxVD¨Ɯ-Ĩ{Fҫ20'>_d.,K2jxܮ I)9bar9, J7's?=/ܚN? {)&;:p0^""ո|mBؼaNu젙Mqd,OfG{GfUTjmsYh28\M7Nv(%&"cה5p fυ?)y{oXسw,L?p}yU { $kS ,Ɔ{ _# -[[zx}-7{5f/p X2Bi>kF`wnwCr rou*bc wzqXjKT5$%TK Գo$|R_?#/#3/mы9T 'LpO?χƾ]D(|!<3pOJPUK1%9Op{DͬWIr.- gT4 Z_|];/^?/v?Ͼ-Qyt]ԅB;sR?%(_?9<:8r(o_+v 1{8q(\!;6esp_q[2h !,(J_uR;~,{.ˋyIۂ2et _Z^3)Fv+yd& 3TuR whx 1ImZ~jue=>jD[fH1"7c8C7wJB\JgLJo-n6l1W E,qu&K*:mS +޻)qLCV&OI&I2M2gbc̙ XfO+ڀ!1 :ܩZA0"܍pUOftdV9k~\k<ޠIeL^+דi/QvGGSs9ZW`oA <#Ia#& LXa4ԧCG.No2庥kxW0QVA;IdgG줝csHlW@2ޔn i4c3Aslʸ2E>j5jCGIa5Mlފfb ~xb ldf77տ}Lɂ*I;@\8$ r剙F هMuíѧFP+hFg,YfqcNF ڄgk[>Zby=bCѤ0};6\]C`gaźV9j9j xF`aZIlKN=*L͈_xxqCZar&mm[l:֠l}40.d*Z煣xC%zZ4QV*3)7(RbrsYU ZD[[[`{lnkc}Cބ$%!3^.Q%p 2)".m'3cBz`g{^g$)uGn׈?Dh2M{YoWwAsy_K?AX*)K;Sva{;i~_IM6P7l}0uZmrIdٌǍ-XWyɩx7I_z^)076a>O5>?B뿎UY%F. @TԹ|m3^MhgΚⵙcβw6t,›H@:P;Yk6}S5%mpݘYw+X$Fd֓WBk?5G=^'5XxN.ȝBwh7{1j bĪj>_|Rp^IYM~]\ėŅğ|PS i!S6[$M12 ?m@Ha7*-p紶 `dہt@8}{ s,cg. o>ęʮY/m^~]\c|(ٜm7Y| 3-SYYoxЧ\&^!q@66&@5p Z ĵTe=Ze-:h]bQz'f<:nAnAq#W^'fbc'}쿔?Sc_U"q sd0-9.lcМK!).D{l R?`e.4,n-2N"Ne) +~?8:VHSbRmPgO&mK@3P+!3f&fN$'%R`ʟ@#lYf~A_e`淒,OFa2&@{$o#X8 Cs7N@叫3}ܢi .)J,AV] k~4&Vɑ[M_D0!O^.JRQnF3$/9>MjMj~-׼~[& Cbip1CXr.n2A+Q|mκ_2vJ 7`Oj$o[Z"wQ]vK{y 9ņR>2SFLnjKw4CIqm!^'tdz$_$Nt6p=rTz[_ * C/"57P!#Ǽ7`h\ZS1 |jLCp2n:ӾtvӚBu^X h)wt%|J!蜸Z _[yI6['}:l#b:I9οLm`>kS Jޔfpۈ]a ٬F{9oʺSYF:;?Z;Mt v:>yS!ViF.n+{dҴ 4MOqXY*iڞt'AT&샏DHۼ`ᔖ" R-n^ԀMX:c?;Y60%}$u-lJ-D YZD:KHz*eotcy\ݶRX=RYx;EChe.$Z;~bgIA)E馸 ?2bzb Tˆ[ؕJ<0IlN^GS3z|nl wEѱ\^~71%Q'R&Lso֩|Ӵ|Y[{ڶ{ILɻ$t'|}X٥! %ZO'0BHjZ("mh$Ĥ&mDF?g뭊\%AM::IM?; /$ϷmfΦTG(Rbl—f{7iә%M.d#O-3=Gt=OoDōsujB% ZPE'5ioh3nDNf57Ml!7Zi̷S|>pa결ދG r>6i'/Lǣl9mۈr h],.oX'yiwƳu%7_6ZNf?hSb mved&lѷ Dn{뭷Wu`vV`:ʹDt6wEg3׬kkDaAKՇ^pe.%]xixXE~9B`4[;pZ}<8i#Bl;6Zfѿ}$[:[ڹAa>ܹw{(e8[&~ZN"{h s N|/ A(rt;9hƴ|B!pyrm^OQL#̓{~(5/=@lVɑ1Q0%+ }l)lbϫ2ǵk0Σ0gpD? .:瀙CƉMlvu`q&­ZSFlbOʶP}E^ O)#w1D7F=Өr] a3K`%V6Q:^{Y -b#0 ᨭM#0iÜO y7{UZ8JHO'OG?;8Z-40@LigEDM,.#PCM1+ jnrN2f)Ӂv F@ ^{LK~9Əb,f ɕ(\U[]rH.gB̊֜x-֎7+Y2JlhNT,T&wKKu~NMK KKۊu:M]yF}4߱lS6OvnR&\nUIv5ٷiHlgU2`]AMHuIV6.^5UM`xW6޴iM;OAxp|?US~O 'ݚC0S/}b *;'z#EZAZ }Iđ}%jbM76Ohv{s.ؒ/dՉþu@o[ ڕJŪ{Zmcƾ7`ۇ~v.dq|C@/T])T^!6H岵8ŏnnΐly~y0{xQJ2]2GyZm2?@3>!g1΋aQ*MB'q8:M+byMq֒<$P[ۏ仸KBE'OyuU&1829#>A([BlO, dg1u 0L4 4h2)]Ba%C`\S3jn:DE5+ei~U(Nr8t:=s*wlU*5=]E:n 2&%p w#7_oTⷱu4ҕ"n'wna;c,g炲Co㬅}>lj̅Cv ~_]7JrKǁ{M~d4̧(%&?=VaGoxѓˀ~;@a)]ߗ9XP[bo'`ܰM$M0xr\SXD KkA$]ml˄5lxLt0a؎?s1al-1E~+>n]yQX6mA/5*Y]P[/w1U/eRe&2qKlfB' g&|h5|GZL~~|)0?~?8۰1*i |'S+sqA{9 'E*lb eJ8)}?pڸO}f> |*6p_ڸ/v u/ӫ,Cvކ?`N\9 77!MOS!;>qM}> T/mܗS~k~;w6wS~o~+eQoR*;OSz AbFǖ02@Shj 2ӯxZ=$6J߀AF.^ioODtvIVx^Ӏ=n V8OOrIo1senyww($^] 5V߼[?k+bbhy[QWVs|YUǽR]|Hê#+y!18Pd.L^{deN:?j?N\dژo ZqyQGAYQΓ162:7@bX_cTkeC}Zq .#lGx51 eLdutR+v=iV|VeFVZN^U:]7mo4F ;,=? 3P{Z"Id9=Ґǯ^Q`%yH@v2~OP+iʞb'ܘq a$F`oAXORhBә5q]^5ꝯE[xU1mj1&NJ'cQ"yzn˻qjh̠%e"4qm8F}eaG)n|?Yx¦ HHW\¾/$l 8KB^ȋTBFၐﯮȊ2 Za/UQB~N(׷7RP0_T*0$'Fj|oDtJ _5W֚Z_ XWWt.S@A9(`Mo,|7zvs/ 4 >֎RKՒʼn8LB=q P9Bl Yy9V2` y0rlnPƋƋ%V*S0JO's{\~й/<L?`3tGƒ1hBB{#r5(,o9'p+/=3SHlfK,(6~L +dU:+=4)d 2LGG^v;euuC_IYǎ:H{bEHd UeOtfiErijUdPY'$F'F>U}[|VyT}]G;6íŗ_Dg6 lThG:$yiQgP "O& 8EIf;yp:w^Uj cQ LK1oJ2Rb)uIZŪȃT}\eصe~S ~]`400Z]e5^A,f, jեWw#eWP4ì0ߖ˻;? D²HJ8``. nJ&Xl}/ Y5G#fpIh-Ǥs_V&E fA:CiaOZ9[TsN $b3!giY=Fbɡ$A('4i9b)/,l[zm?%u&;8IܜsVАJ 9;G<1ѓ,6sN6MC"JZ3:,l+4T.B(]*p{YhL_h= ~"MGEْ:gV47"[A,8񒜀BG$E9]uu6eVTyLDDW46#$C{J_X?8/{5\NpQshAgܦM滨(/Q,w:H5840S\[mRܹG5?wDR IjoXYfTK[V()IHKkBUJt!K}JB4%'82^ͺ{V2Ul qq6x^C k&^OLjiߠAx^R@ D'ɡHA bgX?'Qx|wQJBP-C0"/wtq(Lg9Fk$jdq!Tw;O~QJM2Q|Nw D^!5}P2>(7K5p&լpZ%"9qX#{ pЯM)ʮA\H$BR8G]gv*W@3F(^.Jق[E9 EI댒[mVq! ,?J?W U o|tSk[TৼK˼v :DhM K$,^֢qmgq'ٶG3C3C<}\$-@ͣdb+lvH ċ:q*#!ٝ1h8-Nw>̙ 5ߺe33n%ۑcLY? ہvņK6 }KԬZa8L6B.eѨ4) AQ'x$+ղ;|I*t8[͵ɐN> AB _GZbI.g?(4 Ц4,yTwTs=< ~zAԫ½/xGe*TԊź$֠ܧMxucei@ )$0߽k#xGq2>o@Fl<.C4%򋦏"Gr7K쎯 "vEa„ ?WiՔZ Y2c13 1+ 2b99n5c-,1 XmqPu t+J:z2G{mf16Y ޴y;im10K4-\E2Erz"t N]zjeYG-'j/ǵ`wwdZJ_/K ҾtyrڤPbi?L>?Ж *[k7xR5jwLr mlf i8`I,ȵĵNau\uH-ǘbw_BΝ8V-4Vu&ݝY1̷~ Yl>3h%`JN vf*7r8Ʃ?C4NQ-G$t(Yfyw @$A1b4cI /|D:'Uasً}lԛXUIz}z5Kgfa͐a>?$ RY8Oo9AHExugkFNm^ a I+ oЯͽmw +z\L,&9tk_4zz<<8K􎷠q,Gop|6/%}raZK %I^cW]3#Z/[ ښQQMsvٺ$D:ƻFlfƉp롙rQ-j7eY H>1\ .$ ~ (B5WH y1JDi'#}δdP|^ǧ";Q' T.(^ճ!B$:|/vUD nIΔ++t;H$ܲ8N}vڰmEɀN2AYM߁ 0gHJ$5WȏӍO-)qhz7Yrx'pa=W1iot.&pY:Ө4H;˩ȇfn"O7.kКPq݁I'3n/^\u`iyҫL?KaP^MRS|G8Ck2.8̂`Xsk vYP8Gzu\V-Ri@94S0,w?KʅI?pzgCOшA,xVv;G>rl\``JCӕ@߶^|IH>Z8xGAB=mk2h1{P,/\{Xr,WdMu>hP ?ۄȻqz;v{[p6ףr-.J[tA( 5)3F9:Izd9Jc죪qJ fo?q?N7yCGNIz8H.Sf.5{2Yh4C #i(NVrQ^DwB_K pߍsb`%'Yu`;7>9 @"d6Lptxe-w!c4to{8/JU F<Ɇ!N re.Y5a>I;v_(!UZ&$|)uQo ZL2"z!3Nfy\l[YO_bG)սt7TѬFd\Nwmnz;\NJ*SmfQ5#-MEPUkBj7tͫD*K̏hu<ҵUQǝF fljr$g:[̔6f8VBn(]7D{Fb V J4GV}bE.˘/7WW MћE$݌[nx}H$5eP,KǼ$#-/9SQA ^K̰6gdW4 P1 [tC0/B ! ѥrN5Sp<&[",R~1E:jqtfiEHR1Pg߅+a]}K7UZd;ͩS j@B؄&r7ϿzkBsX:N&:VD]DGFɾI)LrBȢkqJuuKj@@gB.&d4%4(Ҝ1#3l l(@M`dqO\]Kx{;[69q<8\qx0݉9+lcKaY~LȈB㢀؋0wUP{bR"a*r4#pF_u*0bO]&\ CϥP8IfeP"QJ4Wn$r D Rr|u-k*|",Bzg1%Lф33.A,qxV53DE"ďkl\Ghfe3Qm1jjbMbխf7'; NNS N'' -Flnl`I :|Z _#+{yЪmNZQ G9'!0"}A" AKvnTUyMPn50~](iYYW6Hry-[%%G8\.)7k+;cz|0끘b0cΥf~C*,2:w%俐Tf/Q*fU.|UdubnN|äKIPSC*4xjОD%0hsrh!M*xS2+3 +3@j(8Wi $RGT"37ELC> Kؼőz zDɺ[4f<7@^B}(G[8 æ*1&z ޺NL^^Z⮿dk?Zdaΰ7Ft-W{)8H&1Bo= -qGEY~Q`Oe}2tUO(kw{ `50tW.@88G4(Npyd;a#ҝYApbVNJs;¹:_TV.U9HAh6mqT6ɫ$[E/ao3W5<4 =g` bv}7Wpf2VLQȔB%Uӿm71b3[LXi4mu8‘kUưĽ8G\dj>Hkz+NߟXoQn`=7#&I2kŽ&m{5iRb2BZ9 Ԁ6U$*r${nxt.c<VTIl;,- a=1ov^*WUڷL4x I\kr[ۮ PBDT+A\aڲѬ  |M9KԷQ.1 D)֦`[2l(mbAbG`O!sHUl& O?9hBFh6#*H6zQu#pR(od*V/י:V4QY}! y*C5'p+[bo~ H3P#iV땼fXze13e/*1ˀ:^uAWSiťPVÐo!g%9ZӉ' 5\v> _}ae ^l CC{SNqGkGܫg|Z'D96ד q'첌DWao†/DcBws;_yw|͛\ !MQd-IjIlTIc 72#}`GR7딜ڃNu>TQ:M8 * 7((UZE>?^@SeA7*5hяqsQf($u Lohck/VZ\+8x3GsL%w~ff絉f<ͻLVnZzqHB4G>†,ﴟ;&r2z3*]H5nvfK>bKEJruz9Zo"w0UЧS#"%VfCxVwg^ud$6[J @z?P8]42uTj,8jF8 {uxZp5̃hqU$}#tIޫ,,lC=8ИF}=Ojx2 Sieg%\{7_`A/u$N*7Koc֥h . MBosl[ !+UDuH2vAǤ9df4gX(5*jqlJNqVjX1rce ؂(UX]Ľio],Kj><|{h&@E3%!Ihu6YɺZYPm.>p&X"C#b-un֑>W^Jj5kNt[\Aq'y`s>)|IoNVVz4(k;((j9!*WbuXzٿ Wtȗt^ r1nb@v$YpsuX]rCuU]M%w.v>#^g`󫟗qo4( $es$pѳE D4~ f|"[PP~PFA&sܒ])^f@G/M NPTQnVvxBy^8egˁg5r]~Dk,õGĹ$ 'ChCtȁ*٭t vj 687ܨg_1YߵdK VHꚈM>P*8`Mnnwǫt͕i3#DIVfِoU4j$1Bg nrɕu%݁dkEbVpZG*EDFNOFU#$+}χAr~{uQY~o^sk z<|*@0W@K%PVJцp0`pËa@z`ڐ4,O 'GdU&bɅvD;d'v-f7_ NGUmN|&ڜZi5H~R3Z`nB}/{ܧwzMJ* H-fV]cDQ fIhH8m'AlXH{!+@_iR4{Ii60%vL,UTu룕Hz^{8'ېw[2pѵU<AoM،;z;Nis'[6uk9۾,ˑ[ *۱@iXh Ըpǃw7aj#;j}˙(/:kCoa> j $ypd6,Vfx3)Z`FK2Ao4jcF'S|(,H Nyep5 W7q : d0Ww<9&+Tss|5Q$(mvϢ|O!j+Wq"N|gۅ휘,pVe%z/֚Zv7:[1Ã!k1¡/Lf`X)q/g0GK#1FU4>zo0Q* lW [m}jU7(a7ϚD˜逡f$Aef5Y3'XYF$|;5e#6p]sE$fM6&P_UZREG*!>T%A!JGT9!}i5ITq9UnMir3v1T|BύX6(Q:0EE]bBM1P9W _]ԗ~Olarc7e|㲚ř^ Vp``,#58xj{5Զ`-=ܛfjp+0Yq+3s:4mYs![+D!ƛ.cW\fF('ϙaܢ}RESY@Da-*V+l}MRpS"e"X/F"qA>kd1xA0kl |2A> T䰞 JC?DtQF`7FpLQXcA iꑜrTO vS\?z [w3r# ;^JkU30Qfsd OI3V\ :LnX;틫Sgܯј^w}LKE P|Uup'>=ġd#N6YbCF;A_kxlʮ|q5lwݙNvm'VV<[ }o>l>l;oa}\PiЭ޷,=LӲ@=[6e}oꞈ)ec&-=8ͳGk h񧇁=< {j56T QթdV>x=S}Hи@Qcvc2p!1m&6 _6Mi9}uֲkCxu= ]O@-L1;&@7~֩beS妳 {2<YI|#S-fK{kGAء$?|6WFܦw2lN(pVـUrg@-w"PwZ&EC-lݚ&L]n}soVJy3V}D8,0 %m]תz;& `%a+DA:eMv RDRv:M>Y*֓q*sF4kݸVCI8|gfU_›/,7.W/CݰpQL <_.oopMQC:O+H/.U1͑^D/v E&XcE-Wx|v\[F*'_9aܥϫWesLP 7m|Z-3}.60Hۍ2q',eI.Ww%]2ZS6t?8AVo䙜~|c,v8z  OӘsOqB>ھ!79Dt't=6G@/_x;w,bj 0rDޜ|eA{E17lMuE̋6ov+nYCit_ZL")Ldm4yBbbYЯ6:Y _иnQ4þ|4fO'h '?B5?Oߺ _[$@vhn:f~&O6tH-C:̶P %'f0^MNF\mņY19 Ҥ6eZ$}.Kx!fA~ yJځu3D$$VՂxQ즒q9_ rS }9(2wb() ^6z#[DX`{Ubv+TԻz L\[ 80 $ Lrg48 ,WԢa`?ILBbP| sі1 z".\C Gr!r>T:r^Tr~T:rr\9P{+뭹9J{.jOi,$<' FGs4Y,zq ԩ ;-,Yfr{`.~jafT,;L.62őGW18:v&6$f_n${O֣Boa QG/>Gkn1;>X~1CG ?+ѝ7h~!Ҋ%ٓk8ؑSə nM(=oB#hv$2ҍeƤQRHsDlʵtz;gg|ԧ\Tu\vuIÓMh5u=?*+0;ZS\[ili %/.VAeͼPxj B'. ؘd!а)εAp]Ewm5C7| "`-.f B9 le"ĔJk;] B״rv{MHjB ƾ#!oM]}بU`fR{c=Ν&?$*ӈa _ir_M9B@.1U[ͩlԞj13kײwbgsO#|2 ~dDSru\PF4נg+Z,+^+:+: -.t:peHS]ӀSstyC"z?&U4}} M?L˭)r3 1~uJA-ZWbhmBZw֬賖14u[du&u\b(Lx9 ~U(@d!sN$&Ic-H0T̥ =CV#ћZ X=0D^!;;z)ImUCiS)4 O*;LS4X:(@uF`UEy)Ml COaZUEV2~A}r$K fߘGLQ 4W&)Vcsw:m]=:itafk`%-=ww*c'W\ZJS1f4? 2,~^g;s2ԌF,P=C_&?Pw6yyqT% >6e(I[ehj ږz|%oYA{x&W/DuLFX{ݟ]Pӝx&LD/* ~'bUKBnJdo$F]i"sJ#?lx'ut >6:#Հ- o1Pݬhcz4 1$@|;yj ;rX{w0"*O~Kߍ̼/bR<zJd&sB3!QqcE-8jAgb7ǹEug֮h[ J }[+YmhU۵=ͅou|6PH˂зV+Za]Vtj$g<ޘYg]c>Gu ^OR=?CWUeGUVJZZV]u1nY] ~2E;g#I{0' \ZpvΫ&̷>8#RQ8DF>+њVN |Ծ62<@cHC_ہ:g4U]f. _ø AQ}# >GcbçY.r L4d`F 'v! u 3r)^цhԻ2[novN^7l9XmLfKw~5v2m$~=\CfyHU23{)8I u# 4(#Gx\g9t!dj!qCt* v|/Ax 5n&hK>#jQE;Lg+x Q2mpI  7v3AZ/xU~(epC&.HDH`2Y̏Szด(JL^40k9Np*'e'Z<$@O)H뽔O/GT_@ȭ)YU>cf4b.<%ۙ8[7O&H\q ݔefc,Yr&JlFyifXgL/}xCdPWñl;=dHE`!t(~LgaX'V+Pӳ1BhF16^D.((nj ?@jE4*T=WZ\{:e-4/h0?!];^v/|D"Gޟ`ܕgSnvԁ43fmξW˹'k$ KtdI-z?pmCjП`$ HH~H,_X(ِ٘!F (ve Y ҡ)Cz&-+߿> ٢TCR9^"MA9 c$L6 =JE m> ESMWP:ثs(š3OR |>~0/a4f}^\J]٤E~󘪓ߗk2Majb2NQ:sc$ާb~ߙδ+8iP`t,#2#[&\nH܏m|e{5c멻8F?m/-*( T/KWQ0^jEA(^j;~׈oU)tUn@h f_&NPwR*6VO;|C,Dnh;5EsU#jg8ۖQ^T=ظ5c/T܆K`wiOBb b/Fdz08G,ΎJL,nP 㔁`~ns/ &]X/{p!elpY6g؈TIOQUC 35y%EW .@4l^_>=k唧wgml_(G;؁79-h!禍#Q\m}M~-W[l|[ Uqz?t/9% nTbASF`ߩhSGSPS6eKWXFtc@&YvT: ccUAWdkg[Ck1C!vnJslOCipN8&k8@:FNijvb/Y"KV mUf0:e]Juϥ e% $br򷽗6O90SWzw7ihJJqZCtdA}GЀE/`ݵ +voV!u͐e(T썤:Y)3_2:{Ƃvk?V օ( ]4}32'v oKks DSl0<ۅO S:I$M <9hUJO'z &Q8SOڒ`Jx 3 S`M5zr.V!fk@.rEQE+A)&94g/+[W<>9Eɍ FCUöo"N;' (:/a:Yέ.3{K'CpB\3E1 Uˆ MyC3F+y,hA}It&DXʎ~_ [ĒS ,c7c'>\lY!+Ͽ$RM \1WGТϣ[LKfDO FgZz}|[?mQj 6^)owI;_.M] Ah8sUr,8d{l_F1}*I?^MvfDS1trya`r8Tv Eg`.73'TN%du߅(=T Tܚ@*XBɚ>>,w8.gs6b6Kbv3_3x:}7Kz #5$1a(&@-\w$ Bb MAkx8$Ozʿ:,Lkg2 `Y2K1؅TSR/k88yTb a9$$"K.#֔kvf^lbhrԻ\^<ܚL/7%u1L W9MM\"G7Mp;PdI:V.G͈D8=WcWN YNӦ , R-FZ&y:0Ԇ&*{x40JLYe K/DAͬ.+Oɟl 4/St @R"V(Vy2aV5`aƂܖTtG{r6mt㔥Z)͔7C*mIp6]=ggqr_<ʀ)*pHϒ錧80WAzx ޥĚm/a\FoeN3ޛW{A6 XZZѽG(ܗlcf+諯| ?4jajo&N4ܨx5&5o<;:r@&*TEuIPar3xX~N/{vX pMk=V.V`/'?ob9MUq\B!{gu9(JI(cqiSmjaGI/4 &?͙i\4,BbWxcQi7B5u(W'CXg*X=ҨGoyΥub{QXԿX]U_,KLA\{1^ioA7Oak˕=M4y1/c+x nP& %^|YH7Ep\JRhiz*"av[4'ӠIYe6F &@ ;S}$V*KQ{ZL}bfеL˰x.gFRDCyC:B۲;'T`yhܟ׺&6yr[nzd5HhOѩT`(%fjH?ɼ//>1gǜL(ҁ;gucTȠ3} rw-0ݔyp6(ZуD3ܥMoD*=\#? ga*Ɩs*#AdԜZ^4<r{AE،ǶRν6\ILsC-xxXPEK㏖\{ȊOPqYs0˓mb>S_mg>qz[1ܜS; ̙M C)(% *J]/BClq|٣"alSȿ.,obtU \ԾL<MUODXzyK8hHWaW-L0}(Q&YvnHGQc̼7d}bXtF3Kf!'KT)O'LHwO .ůK%+#%4B-3'Dr $ /#E&V] @kh<|_]@S8@dY)7T8Cw̡AM h.|*YVJ!e4E(+\-mBnۃ:&Ѐi댼˛EMӀ4Bփ W]'-9༳}:> [Y.#' /3A]gv`:^k # vϝ3(<{4l:fվ5]ٻfvױ m[a8ϕ7<ysu5-)הQ%mg7\ .QRdxvßx:0 ؇bS`z U7LoDs,]_CsOjԥoIraJڝibZaZ6X~6C,܎P )L$iwEN4:y;dQq:X:a)!G~׶6 \s$s.5Bi6[qp 9ۓ I>*cEnٺPw-/xӅfWIu[l[hTbrJٔRy?Kev5L!^%K2}k:C&YOJ:ȣ!KY&zI L=>Tx1u5:嶖CMycSsQQ ~N*OV!!<*~7d煃hC-_YXi}˙ɐ_pmVV>ʷ?(sFgn%r!>W y63qXLӻىUP۱<.3+Cҵ;Ѳb$åMǫ>A7v&gI F/GCL ;'EpWn9mG~\y:bTI I+ 8EȳQ9?L SK&g+.NN5J6J+UfA0t5ɯPlVϑ7&xH{E+۟4Ms{Y"D&^(nBӑLڰݿMn=py& bNaJI b'rl/QT4L ss6M!ućh2(xnЄ56Y32Rb- KFWf{`THUn3t3[u̎SMe QOI"^"ۿrg4=Ҷ Jj$JV,'4>N!Wx*aa'2A  \ObFME~~MgK6lq=0Auۢ [Q2 !ǟ|ȐȉvD^q |Xry џB'-邳h=5ԾUe l85/yF(W4XQhl|X6 rө7E%I~E__Tٚf4*2]$qE{] YĔX6JRFzrVmmpW(^Y*ʡܬ(.,t̡5L!d uAj=I.7XR]\skInAj"dNMJLpG.l{1bӼQa4Yub;-MN6fm/YQKEةe&ky̜|$;cTt-}b/HGj0⍨<[9.V_aO՛h͑l#e תь2eFeNJ@e _I6x=>3nq?{1AI^Txʆ}Bң!v'hZI#;lJT?ndSvy̢Ό2mwu( :RDmzMư`i`thAHÒbeI.,% 7ؘ֩ q#K)pa*W"S,x*$m VEr+&S5<ڹKv"-3Cuc2<͓3ȞEaNf4t0rQ)YqlX.OXkwFC:.{ &cp_{5{ oJG$dIF6 ;4n8?A0TV<0#&!b {(-\ʝ|(q܇pUYjKx$aLȶdwlIAT dX>&GUΈΘvT}(?я:ˇՎwڐk Âm:_.A JEg\EqDww^L__nRPL,&JKi:'F9z'ƚ}(xh!>CwiRڍѱ?SPLn{?5??f3K!?NLHcU^H °ƺ 2^sa!{~VK MT`X-[հZ Y[k j6QT$pb `p9 ?G)rzQ ݅Sk&]vmDL`!Wa_?ͤ BIC'pBoy%jl}`F*aQ36(Cɡ1ى4x$'zI`m*JĿZL 덒ȯV} ^AW=;q\$Ik;.HmLҎTj2rUzca S@ܨvV, A>?F%!I$ H$q/dTZgKo "rMr%7f#h)jpD[}K`D/kjtp}iZ ٌspɂk DLGm);ƢͺN ĭ՘i↟8GmdY&a( sno?dP42Y͆}Cq=b'[geP!4єczE%64iS8ّ^I*3!g56[Il_ i|/I;w23VS7d8* Rm00oq|Ck* }|p+7lu|GhDv'n v%x- ;1Q1ݿdN"ܗ="(wu;uQ<#>M[4@aΦٍ5T1Psd 8HcP ^vK}2/۝׺ѺG.ۍk'I 9-=s7mKo4m-?oX$=r=D#քyOT'o\)9kb,ǝ׿aF{f'sS#[|w5 /AϹq +?Mԭz2E<]E׮" mLҰhWt|r0r]GV1}u~9y'{M݁RTw.w߇yM^D%hfyeһjTDuB5ZFK՝a=47gtP!Z""P0?֣{uOȻ8;&2?F8 1=꭯}yQ#ƋG jwe%2^*:ʊzr5ʞop O~]#W`PZ΀M߲s79+( ljY4ߣ851?M FlgY[pCڟgBUG8s_S," .(5q⬔a.fe  *O{fOVP,MSvQ]k) %,O@-2iYcc9ٸ/(d Ge]%$Ke/w¯dV,$4 .)0L0/ḫ!5@)h:(N|.>]~6 j)O{HM+id D*'kqXU6Nkju(Y:q=Ẏz-3le 0jdd -Csu1EvHoAմF_DBױR[-+k/w_`SHjy6YsE`mo=45udi aT#gBRGywqZ!kZa FFefY|D! %(dE .B.?.nW‰=r1>Saq3GwwGy<1{/ JGyq i>PTfrlwNhɎ:\TVOU ;&٪.B#r,D"ȼ=nJmeYp ܊w[1քĪ\EtAZ./ oV_'dʔXi&rN'cva\h\,+u*94bz`LoL$/d\28qgtꢎBnU!jb\l]k-ĹN[b,0u2.._C )]gp%=UVHd=Yn8.m$q4-RPyh֩>f$ȦNs$T% n9e1of{C#A{(yww Ta+N$@0څz,a/͊RL&FZ'l> LD0ҽb p{e5}'52I[eTbᤫIovTZz#Jz31pWd0:O-jqWbb]/L3G̔2)Gڜ82sutiHrfǐ^EBdPXZ@QqmÍk9-A e8"SJ>pɝu A gpB-uwr̍}H]_Er[S7o9,$ z?lVPz}$1HVխ7'h)n*R7^:`t0!c)Im6kRxBp'.փ\mvd`NJs9r F"&DGMRwcϾ,Oق-3Z3LXzS97(dd;R?;n/Aml,,!z4E&p3,X<=def$V#uU ~Xz_IH)غ&~$lɘ`&h0֐fRTEW2u{Hr '[2g?%JƂB Â:?DM3 $r$fuvgp%I'~@MK\RX&^ӴS mEN=YxGn >4 R=--3h zOةSBٞڔ2:vYag2ab`jmZy鑭ܱf>^͎7OW>$aM+% CB5HlRB3n]dQ/vmF#>w VP!#nI*%Lӝz KHH W<r4Z7KOJJjm0h؝73tgU4A@pXσTe:Y@y ֥RH<~E6AIohE4еp!z^~$B.cA1t9YAP z5L yTÌӡ7TO_JCn+pP(!W'kHAi0З)1U[m,AmP ]_+D8.{>@~JPQBb6Z`/K݁&luiQnnN~w ϊ`g?n & u~%u܀5:Cɕ콫?̼Zo`NgKmZ{ԥw=-<[p55+\AW:avQ4ġIJ5?waQb6%(/%չFvpsC-h]ǣh3d } 9/fJn ;j`Wߔ u)Yg%ݗ(@:j4;5^RbzޔRa痊>99Zt@Y3Vҳ>JzXBȅ+ttgbpH%. '<kF>:N~9Sɞ a .%|?[PL(C4(\džPE9FW`cW!7藊J0+Ն%=V͘Eذ `&G%pV(?~TIvyTT3hwA֌KANM.x-OX8~>w̘3K *[f*=uneRN}40a3Ce8J"Z`G=ظh fZ'idShhdGRufr®Lb"NPL 9bB, ye3 > 1Xjyء yIBL=CxX 2?4kf>L;$L_¥0Cyܺ߰(S}g7+^!Ruguӛj \OS%Bn[T!OoֆZ}WL01SG8lUOڝd=XI GN<07X]M)VijfU JZa/-+ Z_`i0=U94UXSƗ;s1e( jN rӗR\,DO!FrLw=_ko9 9H#MFJ.-Xk(D3b[-Xc6|˕c5+,r'@Zv}3Y3Ip w􍴨 ›>v n !Ş+_q,62-.,%92Y"&DzBAzoOKcEl]7dDP_rkd%"a$o,i :*&ݔ Z!UByo_Wj5Z* vok2CrD!wsp'OAp+jSqSKCQdt Z>x8Dl2!uݛj5:xu#lG_יj>X e-ZodXWc\JZxNa{Q[F[RbXҷƋs1o;>Чa\k 'k8$4 '{$Wo{LZQ *l _ Gq 3d-NEh6xpV8\Q,B,N7V6R$#-#hy:P/sg+JT 2ԱoϘa_lŔ|]/ UD603#U 덪]*-MJ؏Mxruhߺz4k@RUm a>X${H~F̄;AS0ͣ;2" ,ve8!Z*a*߾:$9S@^GI]! M m]4X]˩\ٚa]v~ ⃆ܩ*b Mb}АQ Y>ɢg\~6#t5nE,Tu6 ~Y@a sz#lw>-"}j:t6pߟMt[3s͈G.E \TO}_ȘYMh[nǽ%~US(`d~w9Xzë&k`>G(:2_ oTA۔ty0+b}I]O;d t](Ij{6BǎS5ǿ2jh]Ss dF{5q*T3Yf?\Ձ/zP~pƭmB_x55@Vp0nM;r\^v-0s'Pc*y6.`/6Kz(r kȇ[ay#tm;ΦW7 Gʉ131g`0[G[ '#~EܨZ_͓p;o p y{ԶQWh|Q$dӆaύ9!nVy77-շc`&]=a]m( 'ev9VOlΐ;*Hbq5ZIѤ gO%'FH`;yTB?W?Fh1ڷ.PQ%V_ U&hvԪGo,VTʹS|l:28ubp FY;ׇב$kn9}OU:j@?66dh4;icsc5.D-*wT+ >{Q-y3y*n{)\X:b9>oz#r0שJAE4b;sD+;͗-o[_4n`jV/w-ouw9M#'iy#}7-oP/uc:OrXnShN_Փra-k>SC}cP f]%\ӆJIM_\k(U6K44o*0&YEgd#ӤbctisB M|}Pؼi:XGng"G qWx޸qlphs{A<CD u .Div_AY%\$=Aʶ~ǧz:U ߂>mU-.HJl j)Ppw VhPa^ Co~ D?   N{%= <6(Yo pR{3ޅ5[cԧ0}aUOb?Qz~3ZR{"9X9^wnBVsx+쓋{yskךOEl>[L~b 5P˯]NKvڀ˯Y~דHӿOV=LPՙu3-է%m#\J #sf mIh\}M[|r5r.߁Y(&w<]*d2W)Uyoi̪O$ K}sيFobR)]ѥ?7S:qi Nϱ3Ko~ClhS4-Gk.UwDRxpWMH@$ٻ1#B XXn*鷜iUpgr_vם8)t?GH+ȺojlU,?Tھّ7ڦdNTfN*OBrCCWWAj͟cw-p2&7fmoD:Lm߱-ģjpcj6xSoS}!= VK|D7r w4EVd0*ɛY@-}Pa7]t}1^y?WްmF2ڧ}ly;OŦ} -cDT!S/O7wf@}%'k;[7Y"CM|3vx`+4ϰ5sč76%ʝ*9Xw07jԳ&jp3Y}LGz{eq\JFij=?jZhޜw&* ;1oװ#`eՎ 2mh`/58(l4,vGSUyQ=ɑ~`s䮫:r|5k ۷@1]}̐TbF`ͨ{҄n*:`#.vp =a9`y"rz: αýȒ;zϮ[miyF-"W%a~Ygv=#M( i=B%Q-4X/*d ?`Sjt`d5 |f1rӬXj`j@zcZƟǫ3oO>Es2 ߆14 Ir?`Trs3o:*W;v݀0`L(lS=բ7ח\ٕ/:W~`7HxSY{"o3cl} ~OG˫e1=:gCWBCAwyNc\3>MU_>/\@q%.KyʃuۥlmRes^S 2+>ᎌ}Fyn,[c7MMDؔ|m{n+;G5ۮ(q~kMUkfqCi~ad.nSQCU i%i܆G 즵QS3jôtit֍NN*q8şUK_W-h>[G t3ס7w,J[U' 6}i6_IX:M-򢺕#+/$rgOwylW\"Z>ԠiD|cqc%+߭*hgYPr×*Z{=Cg{zk'm{S2^vFdMz'6Gvڢ^Fbݑ-#l~"BT#g;hЂ=C#,@|z0 a`IMƗ .*6q=VRi-tsM ~㰕Yq]߉Ym$76'vY|B_vp{Yء,H TAZ'a2C^u ʳ^ 4`ԟ* j1zͲMymɺӍ Vg 3CGYEdhw>OmlE6أ[0agQ%9<ћ-̍'Ji>`sMbluTrtja76v׳jXUɼ`a|-n/8mG{E{] +ᆊ.5V w|gQn yjG=4G٪?"jCBk~~#3lbcM}ȊnYjkb:.gVT/@FG[t[2{)Þ@'B,UlNBġ ?uh6gmk->v=05ttj,s2\e|ݧ:+%"I+ztk,&CnV QzL[6Ԫm'M by W:6w~G5Gf,G{aG;z0Y8U.k ZeER JEi J T%QL"Jz U-O2a+XHvD~ =l_at}oA /uf (T/M(>,p@sM#q?.<t3mX]ѶK l~MrBb9w/qm\ge`ė~O;O։A=ZJ+Xx !{a {A]}FN- U_K^sE-Hj1g H s"hzߓIGC+܉m/q3EA96W7IC\Neu Ww[ -u.KBv:piICtHhi0;G FN ]kĻ~ΐe (  Ni^\vNW#UzM`kG4ϔN<B.;Q+t%&M~&#KO\ q_(܉uQ'S;c1&IMMW+6 >:owRhN3M&%lYԂ*{#{)isэw\j-EE" " )x~ U4y*:*h~ID@tV?bW P&J8߈@hF~ -G?6q-`@wؕqd/4;4]#. Bk.ߏ3'DKԪ|'uai6"J Z7, 9D,9CҰkD]#(n%_D LoP6P0x005N ۢ2@v3-'KUk+dWŪh3+gM BZm+1mAF}>]:""^It{E<}a=AS>ۋ̞" jX- Ɣ؟4)ߎ }.6e{z\X'2 ;!pFO)! 6ۇ0E)́)]qL+e؊QS잔Nleώ/,ԸE+ˊ<>tGYV׷^(r&I]^8sYTZ{ M{*I (ftF(0[I]n\/C?4ZW-|_lob[)c$(~OЀ) `DTjIHEBiSeHu,1pZ/S@Qp+> |1ݽ{{ר " ;;DZ\}0,}|k1v7=loլ^X[4x#k2Hp ea?1RJL]hiE)|KerKy#C'ǫ9u,A2avQDЊ7In%ew0;9#Oe;ŸX.4 ZsEZ.]Z³s$$Q^f_v(nR%MBJj/-#DW`!g5Ih~ ,#8dt׻_I5ޓ_oWx4[pV[sYH603E?8_'3LMZRv<1߇L7:'Al#}_X~YfB',;3UB$S4r5Ϧ .y_1eIL`5A1FJ npm1^J=7vš,mBa?]?^?"٫oH-?PNcu pikǹNHy3tv6& 9dXᓎ;=Q#1u{g,;1-8|Od3,be^ڐdI=E’c՛3E>]@C&)n,BTCMi@gL,1ӴIb$?0) r(ƮYXpEEM'2DU[r%ik+"+\՚@߼_@uR6jRj`}\<;#(Cn5WqEi4 +S ̈Nȕ-/g1&[ZJʪ%SsW=ﳛrBGEP$Ժ!jC hڒ"̦WZ/(3[Mg_fKXo<而QӾxt!rRLn; RBkW5g8JhǴ/ @֘`K)I1mSZc7pU(G^>k4쀶IA瀞 X=yU_M3 %#{rfe|#}LOj4rR1mfJJb]XZ&;k#A|6A..UJ Ja<\.֍ˡxVWޚHˆ,@5bbIF Dwa)_r|WP;M*s@T&ܲ_5iwų9L%hʕ":){u[,) Q~[mQ>$/ghbL+oClE{F] ɰ^+JA KM(\qZhQ. 3\QJ5;Ō&D='!MYa}7~,_UjTMɲjmtժPppWw}NþTmylFvP=j}7,`{<2lQL&\$2Q&t2Ve-h[Lp@LupCCf$!*70 f.j-eAN/n.lIC/5 ɄWĹ'Rf_M_ iX\2QЎv6GKu0XK5X 0K)fC"rzra,yad%#`[9giT@>/Z/KAW5_ ~V#WElRJnAł _w(uM R+KQ'!fB1X$w:!pAAK$Zru3:$YY} /3w5r*xw2|T#;mJZ T)V*I+ JE_m̈́J3%S7+Ύ2b g7 u{7 V4 eKi?%/4k_}W_8~W[pHJȍM`vTWIY\=ᚁ,#@rH\~-b~ׯ{;a}{|6Enh]w=^ %?{oo8nv&*IU9,o)_UֈQehz8ij8D`^"x`|=Ӊ r1%d2qGZ8 {" J3C( jʉJ܏k !}H1SwqQZ_US{rK8OR:CFҗ9~KZtLcMG,E;z_11-ojhdw3M>]AHt8Ve4;HR\gd}5m,@1ߤ1]R&fx,&ɞDi%(znk=g \ oI_ [qvśTK~Nwt:|kڥWHYt>^S^tB}>]74*i|C>LuNjuG;q|5(aWY@q`~~DCXJ3M,ꀕ< 9aY|\ pA06,y}XXK`2^4FG7tSVׄʙ[ǻNʵ w-Ahݝ7taSp4Թ; \Dz[kǨ#=ؚYl1f_ST>kn\r`w |c"_)cGMӶ !:ҟ咪~^F. ^ M' 8^HT!" 9^<8nQ"\+Qf7;N)c!vgu W^pt;X  0q`Q^-v@PV.$4i$JXX܎ kv:CJ]"v\d_] tA6O/.o{gM6[>HjB#hꨄ9A,`]!h.EǴcuVN^F:Ee co0~܌G΂ޭ>Ƣ]sXeܮWyOOcȾ3.6$6]7U3jJ!~<^xCڨ=(,;umosk.?^"'_ wPH%+ɆqC>ɤ 2m7z:CZJ/FG)Xߊ|#Gs(>>>>Ri\3 4n|nB1N<(GmgC#Oo:\*hM++b/W op]Lc 39\\jP^K+`RɔFmE"TQٯ,){,j2V \#?aFj^9gViz䰔Zʫ[ *g"GƋMp(~J!hP3rbq6msݤ݇W3CcZ@ًoQ4lm_ ay)iOإ"nҸ*l)nd荑-j)@]6TSU*s;R. EZ$]kΎc?)]Қ\.f&n"EK.xT]&6q93fL=5kqAQkYiLkMT3ͩtc0 ׮N6FmVxj29uyp v;y-COv@nCc`=5J܊ .@X`ݖ9I|:H78N+q.ږow@,h ,`'=Py#eP E*;;?߳zQe>{e2@$?`esV5H$;KIdC#)ȑTx_qY |QȿR4؇h&% Y(2VI!B$ڏuuC̯K$\Ub)XRԝB>N[ OgOL}?~wv!yy*u(_>bt|{?K?8XE*}L="|4! wk>mnDD;b?j,8_`IhKe[D=a^3^Z:bVQ%WX}!նZOf99"V|<]5Lw(EȤ~rRk)fQ%2饰W9XG|wmވo>I@$9)2܋lvZ1Lzj aFga3Սv6GAH30< ιqU5fv?Tn~ 뤚Pwn*3I2߁=d % 8wŠB{a}u>0z%ln/ ˭NT*!~c_gs({ {TiQ!"c.«z^bq"I*qv#LX{ir= {K废>' n~i#q&u1=jwbPuk%hG7h!*@XpA]P9KC4:C҆B4` LiCl9l|} $IFt[҉5qP֚\V&agw8:$/etYV7g$HFLZ .7xX^ҘcF8y>G5a  "q$ŭs}2f2EK EAjW0q@'r%:f< C C0t oiabi3d5xX£Bp{o<2dHjr 6E_A8#KAXY U/dϜqgEkݙ14"m=6$ |V:. ?b, b 7wr_XIH^>r3vLbt%h̓c׌I!-7jߎ:7tqVN7IAT;pRφ4 Ԍb&`kjk}oe<¬Y"H qf<čxAEYgvÜ TmLs|%~)W;K#|.ZDlc#F3_U@m͗ Y^DX3L|x!յ1 eMVt6/>W'uĆ7n`^V62vujzQ`Z5L2DB<6 >rѐ~ImgG0'xO.N85n-(aR 54.IacRl-+ "Oj#>Oa1%iqmlVYzUyvP<\$WcL,>5 %g %_%LNerF,GSwjQ=SUUgh9kt4׫4%B_t]L!WZ_ˮmJINn};pm[3&Etu}u89?o+@&czAM!?֨ ?-7Hj8=njŒ=>;Hi\o_,| :2W"? XLXJ\ϵu KnتaGoWvX*̫VdO RxꋵM%.Ӗym)' 2HEYJq5hpk*_P&xo͉, B6S9vX- Q;ӇRz~X{ ZE8Ros09dZ/gߠi֍,p{Xd R坱\}Gdm&Al :ywM^~^~>'՛ rG qɱJM.ȴը3osͮ=hǍ)> 8ϋFwE liYˮ>{d:jɋ\}c?a8?lF:o&͓uh|29tT`SWnf_k(9rZ1ZMfKD55[`~ݿ7>r|c?[ب_VRZƔh#!rD5`yB ɔsw-i=9l/R޴3en_'yNݧqtFV˧SK wwk 3Fy\ZY]_.θَ`!TbV_!fHlO4ZLrV'm7n ^3bƟ%c: :U_5n*8k ᥊z?۟޽E;Cj>9)WAΟ;(3|Z#ƻwv)'|7 ¦rյ;Ѳ*1QZ cZihz[?l#ڻMLJ!d7mt=MN1}57wnMp רg/-__NQh>XB~* tutqGҞ#P#ӐL&t9Tm(V؂XE֩Xsn (-HPm.^n U$H+-C U &(Je)H;6)XB㈋zqԺ!mkU*T2yQ-Phk5͢Uɑ"NG`EX?vg~BO>Z9зm=HR]cL*G`E^ukas6EQވL:\@ZB kBsK`[e%wK:P_cP5*6y0LKV- RPzO,oTcW6=mX'IK'4ih.6+WJsrEVɈL~ΞpRGA3&>7cjp6^qă6Ew¤%1*b>+Z'YA!3/3A_jq,E_˭/ n51DVZ`A }xPu<ƕ1_Ї\wlsys@%ƛI ;[D" !zŚkXec˜iԊuSG_m;*g Sb]uJ嬯 toHFϻ8}wWKe\]u-'B 6ϻ!`G SE`TTXC4#)0bk<*ݦ9gsl{R^3˺ޜynhW$GlYT/[oo؛ j-}8Xc! ṲVImMl2b.R@%Z#lw,X{N+ݑKҰ$eUUNۜ`ti,YZ'YLlr :wE#s$aK_;FyĴIu,Gɹe*0@~Wyt;G->:I( NJKʁ4B>6 z1*'4{vxI,Xِ. lX`&}W l ,Vi S(c2$ӄɠB {(4Jr ,`ev> W&9Ɇ% ֗R@`+1Q9ms6YLo%q4]X?L0`̞E6~aNTw-.9joW`W=tcX;Vth nu8^,TZ6+qFڐ$"Wɥ0*U/u$R+-)`/(vlÊ0tqM9e/?dSlgG/mo{΃g@EEd$.ήp`ɩ^r7z&(Si#+O.XuA ^;[fvk~'PGvt! )N*PyŞ[߻̾vG|=B,]V*;"wb_1O12r9~L.NujCtP6N]s7dW]PAxkKWAdB1^Tg %fw*xNv:Spg7]0*4_R37 *)砒}L^$o&Mَ4+/f6:RL8a6 Gmr%ʄZROi5AL*ڄԃvS t*'M%ͭ\Q.K(uHQQ$*~3A9V+i)$O'砷j-W3gXdDic 'yh9D]V%kI]H/ǠQ9-|a(͉>d`5hQ֖ lRm i *.uשblZ삚t6N ÀWuoS&12 ݍj~ƹ2bYXT;@CRq>szo I|g/yYJ>[}@8@o٣m@?Tx#`kVL^1iMJxߡ5jUx< *$}؉f}O ~&A~ nA]tY:qGM^D6I'6yǟ$[ WkI]¡w';E/Nխ ΰ~oܼ` >H0џ卝sypB1{׍q ! vφï6ط8d0&|@?6&;\P;Vđ&_dzhxpj]*pp7.}RŻ1'QOvX]A砙~(S]pX9͆iw47[GOˠ) M11qx_KÞNͱ՗M /-1vԬ0ヒ=hgJq*R!ZGZ6`[4O7u%ϪQt.sme XX!EO6L e+}sWKxerE 4>V-/}նioڠzYըë8LNux!t.nW:5.~JRϵ)ׅ";t,oF+$/)4lk /H鼜&F]Fo/;MWnAwq4f"q~y|6^SiL},'h+.L} c (EqE Y5[pqMW q;7~;0*u "?EU-1!B.eV[>T4c&Jm@wP<,!,$i+rEHO{+qz/rQ+gXN&9(jѫX:XBzT,5?f垜yi7/ebNb^cwBW>ؾC4¹/sZ=]dF/IzC=ՊR`dvt"la _g!(U(s0r}YYDRtQ 9f}}~L 180Yo+m@c%BuZx/c[ tZ??sCٝuf|(փszE7ˋDX_;qD {ӜԜ*R͸ְD`/;%73\1hP"1ieVaj'jz:ZRfK/n\8z#)+zij/YR^Xy1$Ű42[726xaM7QAܲ.S A }K{,M:+$7#jƛ{UƘ^_,(Lw\NNKa٭m6p910苰 - I!RJMg] ;"ULz 1vxŘ AaHhNxO$2'q=Hr 0Y}0Mڼ@/fՌ%$?ㄅ+̖ޣo+4WٞgYgPD6ЗB?^i<؋zMtxzu'qny;'Z:}QUQ56~:S-,*eQ4dq=\)#I$ecQݲ]Igy "Rى2ScuuIouضa}MA-\C]qd ^1quN6$챁ܥ|mO74C'/VTcoC&BFn"&ؐ|;6'ی͎!is۔m\ {ގ 5MM9VTi*mfVێ`+n{8gi RSXn/xsHSGJ_HBn}۪T}3i2OUz4D:B6O4*Y/sʌBx φ>\CwBOd ~K(l|p;}>jj)AKuGCh nPx1-pN:Ϝ5 `³[+2抿t7 /Z3ϪiAܴC]f uh GxL2H3^jL}%Gtf˳`=>OSnBT)ՑNryBr&Uy.ێI\Kl71jo?#)^X!桷ٛ!.,&+Ώp?Y42O{|bZb(1HT$ %I{=W ⩸LTvY]3Yr;kɊr.~&x:hUQR;]bL5lSv;i݁ AC|P6-}10:"/X†N9]O;/wNOg.Xzdw+5E>Z zgA̠W\'ШzU(vNz4mjffϘs^-EIۺ^-f+xVcSk:6n{(Dqe_)c[prif^`Ͷ^;Ws}(sZ?|lII ObEDZeb*ʕ¼!;8w$G̜Ud*k[Dŀg]fZoS/jEjKr#G .2T%c)ƴdkI"Q$U(d :l6`<̬-`ljaVR$$5+3s3,V7s6|ܰUN'LcbeTS-I_8E cRwe{GJ7X&$ܪr 7*d1ʂ4- 3|~|$Z;U/ҢJ!H~ Sn|(w>A:*kvxsaӀ (t)Ζ3ՇZ1oB+cَ}z] 4LMIk! x_fBo&OrPOi,.OOeIo0% }DDyMyDv|hbanqhL,Uq[gԍ"[@^ k b7\LJ[Or)R%cL (bڅ3[9X&/4,Xk43`jAfSN(('.ٶuno~E~PiK&-Hg#F: oΨt _'Gc21xA`sCn)]UMU64n_ gפ+ւ2E)-8ZLICeA7 2ֶً9MXݤ%[cwFġ  LTtd =GQݽx"lmw_)OQ@ -Di@ l@ xL|X{+Ql s5˅'JR.wIJTV'1 =ghZ@`_w85Nk%K8im\=Z0ݺSquR޴|.˄n{xgO cr)dMְT{ W9..nb C%jr ~i˸Nwظ&:/Q(.!o꧴YAH+o R>/UG< KZVcݚ/ކc֊dEJJ" tZ/{A%X"P]8pV>Hx ,y8'c]R'l1'p4>1Ce_Y,"ٹ' gt lF"6@ 0agtL#;'cb㡚1oHg/`eo+`Wl'̝!GH r=9ձPe~n=Ok }61 9zjG-6~%C63bStM(VÝbEm^ݛ/Z[2zOnxx"]5g"|mXzPf5dk&3el$yw>\y~ɞ8zet0\kA? Ad >CPR1r}%^!XH:qY'Yʚ}6dS#+"s662o'jo:J߷_YmgFn1؁fk\'[(k{-"MwnͿd\9A d`Sd`V()CRF,I0}Iy ҩuZ2D :4E^Z rz}ye#%I NɐT ';wHMN*w';0kd,0ίUsi|xh~gM>u7?cx tP Y)_vKR8u`rNop8 2n0ue._P J <=+ + a w/d[XxM27``*7sasEn۶pٽ0>V<UJ)!J#mQd̍~^N<; 8׎Zyȸe{ȇ ^p_UKvӜ!9e)G`$?{ vE r|=,:]#"!0d)Jp6'WwgpoDzQrͪK'C`'*AnVwIgY_OΣ@ץ[i5mٹ8{>SvsDDN94*MOWĿӒ\(fS'& 2+7v_}(wl'a&Lgc~4=y|E&5ER"4OX01$@ wL]i% V6ݵ(7w+TEhMn.χ=ZrdX( ˪i`GL)~n]}!Q- %Sř3G{v?tW#2!-q려hU @pw"üf(_ L1MzZO8ӽ$.]< B~ / Z2/*pY/K lgGV2=cSfA^)9頰JY%e ưI֞g#f_i9kkG'MpOwh[U?"R[/14 \T>HtyCȫofJ&ck>qOӷo秌sMYѩAnI⪊_ ;K&ۺ՜lqaƩvɮ^lG95;0;KP w? 3`=,eum8} 0<.'zy|2 r>]VϜ6pPzK;^9ئ猬xN*DlD!i)^G}|Pn=] $B=PV LWE,⡃G*vx!bhxKh=^g*MZJnMYkQZݿ 6_Uqf-1 OE{}LWGlqx_]\_`@LhHvke¶r|[SWDɊ9[D׭ðޞ]݁//f:+n@pq&㋈͚_ϯy3-qur2L,xrwu/q7A",ܕfgczb'O$5]q\}T*mk)f1Qq٦9%2s} ے,/b@c]#:2I}Py?WZw?M'OxgROOWqMt)_4|j?~qEJ (/vь# G "-'לޞ>I?r})8Lr/u<(VΑr\5R2}upI w J3gNx%Ą5x" -*Rm&!WITTs7''?h*I0a;DdPs?E;,d(L4\3GI`@5Fe~ߗBhm]BθRpqt%V͞^u8g Z۳ŷv3)xĂ-fM\)k"]~ zD 6 є Hm+ |c[ux ;,:Vw4c]U. ټvKࡎg4O4.wHꓝV:ChˉYyIɕ1Ky$8pJW)Odm- 4rjY4b.FL>mQ;fZc7W `uo٘,}H~q}le&?Cs) (1fV.|`{>{fNcYB>uG¦5&7>E, (_[FJ:Zh{rGxW!}k ڕ7nεPnbnuSi2q/]iZCY#ܲGT! .5 *,![|%OV!g?w!tuo-R~=5~WNV3yS/UL[˴2SБ .jxY7gRcFHan{i>3 ?Xю~wH⮓M򍥚"\Q"{3E2no \㫹F E'8vi.!l(?!ߪ[4]2(&fm,O]xcC o:{BW"Dx^ ںB_"ׇ}-"enK1D9 ijhf_NxvvPo99K"zU<,tIz<,q'O9\oW4p;d13yx8Iy%VY"Q6wUz!! JusӇftMGTyo0}]nKY}{WD"Q2VtkDSW)D)T}gOO%bsG"ڈg(t;4.Bj4%NYv)ZٺZ̰ Cў[֖W[ ~t{1Y:Nl6;t(/OW?gT:qvxa|yd v<0K[uT7r>$/= EW3Xl"ƑQpmϱo\{ͦ a8+hڌMaCToϞ˶Y£`2}l,8J'PFÏ:i]`"ktD>eyY^d eq䈟I>ߟ`g0S;q, o~V/&D}Cg0W_txPEiUdygŖ568ѼņaVܝ__Egw&q[ RųPR'*1!o*O-DJկH tE6d 0tV<9^(j~}6|H89?_|97Thsrfs#<˒m]X9X^2=I=}?)f}i nTgtk~tcR|= {}. !͙8. wIN+ MbY.wڛ6cE&xqʫY20o%x+R;؁>v ?О.)?Mκa߻*b'p@?l>]=F0¦o dʐH-kHܕWv)MDKmb16DO6G u80%ފZ S( \8qn9`6XOR<{}ob0O\ׂvf# ]@#Tܥѳ*km7I*q+Ϲ$nIhBFL,Z'M1N@Ȕi (xᾪ(pIMp&'TN5̤gQ~6Tt\qS%=f{7Fc^?>äc3kӹ4Au`0ū4O1gl 5/"aS}FE C^ h`[p`s}lŚYJJf$]\5;}:<3Hna,` A9h $rLtn¤ibu\k CbGa81 {D T}x ѠiW^0 f><'x{.~ Ñ3Ձyy3O88Á&V`\*7>A [1jҳ>h[wsbb|Pތ~!KaF,t&J<݌NNaKh&OqUv;<͸r=@8?&-há~1!ؿw6L׆y@wz}!ؿw6L׆y@]CEp8]CEt8h?.χC݁e}qe'˕J:YyKz[`+_(<%O}>U*^%8TVL8-vqN3c Z <_qc1@Эfq.cAZ䫴xc$O,\0}>7UmyrxnTaUyH#IS%[y;?^:z^O巨Rg ;1^ץ+Gf$B\uezҹm@#); aT]qaiva$l k0rZiXUDu!Ͳ} ΥU"10ѓ7Cc~p`#>msg}܇"&8HJP8jJD,]nS={6h'Mľm%a,opœK{9Ҭ2f=e;q 2NG~t_DZ U/kTPt:@%u~gqN,2Eʶ#s1hM}˽̉U#v A9t ukqV?BC6 {[W'LH[Ww;C 4 C[,lQ1-1x"g?mm~y8n*:ZukN^({CwDaD$*+kIU paiBhEDj>)_KɊvd,g ab sX;_w[űC\ J2՟YVd0jlP{8,C;}[%[ \;郻Ha&k5 ]ah/se\䁁4[L ,($'9G׆^}75`Ml4L4O?ruR<Lk}J'2~1o%9'͈P{Ӽ1!"h?$n؜yy"rJI~#]&E'ypW iL$^BP@;Ch_pկM $NѳYPE95̣`L#c? Tt?v+klMmJ2%qv?kROECl~D,+X~4Y#~ zfȕzC'xKf(6h%dt0z~p$f{TEDtq9R9F{b,H$3mKURV=j.8AaofI3il`4,fSěy@O+3+}3 HY)[_ƪ vp:I:xj?6V+1>)WOk}F5r͋xk}*0[~:̛w7o)=ɸ_@)o"zR*>[&0Z/?7ld_~g0PLIt&i܏*mh1Dv?kRX_[ɏgֲ>(ۅ9/hu$ "9)%ag7˴1%~Ei>\v~t|zsr9xfE+y"FD:>zvw(mu^y }LNX+,e\C /GN׺chA5Ys"JwԳ,ٷ%}i4H&`Nn3iZjOX\zSۣ-\LX%M^<;:/Ϯ$qSYd| #,lLd{y=':{;R?²kI(iRA5^؏5+ex]Ølxa~d}'5m4aCᠧ 4Yei.b6w Uo Xкxm\w8>W[lj5o-軅WJ~Ca 8sC\nZHsIف}&gIWް,F%IX$[/j b("0~&;oɳ6d0YWQ3Wa/ua.5:o,s6׭^=/1}w5<7aծ2x j_U`7J[yt?zVVh*%y:..ug`)fAN-`bd2@Ai`y<\VvN&,]4stkC{%M}8UHxNn3+mkӧC)::_sLnD{?7d ?7 ?.MPȈ+X,ǎ'FsBVZF=1 5´1qhf1ckߴ~OY*q67V˺Hߒ,t\/"KW/Tuq{srffu4̓3(t-˶t`[8_H[GF9 #Y9|HWu"AR&i=9YD~ 8a .isS^s/twtԃg˧h<+0 ŽPvCWXi&fc '܈Z!cpVIu" i1-y*auuD fU||==>;7P3_е,? ʟ$a" N L[諅HVz-a)VEFA_/9 phZMؤ+A8>J¥WqjP1au̘tjќڒ&V3}K]7`ؾGS GlPw/<LIz~J<Iq$M $-JMnݪɐk~GZ{t޾gY|VV/skWhOخO hG\MЬ OKUe_YECpBJ^gYd|xd\Poخmo^W3tBp3~CM=~l|`3BR7c𩒈 &b3݆<{nH\fO|$LJI~(GÕAq/qNyl9kҴo[*}.MRF0Wm }#p8Ojd1?xBΙ(=i']y)hm5lqrkbq"-2`RjC@ "7)W x'zL j:ljA>8!6z]íL&j5S8i2 Wa1ҁ[|j#j,(!fVuT\>= h߼AK_$)Dv/FB=0r!h F&]xwq"EGzЂ$sC6I%~S9bVseGi!̠Ad+nȇa#~5qZ$c( zGgjKCÉZb0$A%%Wv$8lp'4Cqo9=禛|~-xq[ OwdWsm@.O $hvuĞFe-1Ȧllr+Z,HA՞G !(tı=bKG~"{[ DS g1TQi/\Fkx=Ced/=xoT$`\{^)qߜ}Ev/˜ e٪z񟭺m̧W7Br궰n+sAɲMrVPG6z C +OuӼ 3yseH'"?_} )?S\jx/yҶrh=]\;ˌp#ׄj1QE𯲑Xݣsx3 ږNN/#p*3fIwލ-ZL1Qs7Rd`qW[ț~:rX5"2a2?A-"OxA(Cx8ZsC)݃P.:HO*oޅ:ּ^%ZǥyS}nUsgM2ͨR!k #HΦ.W{j,b+fA8mMrU!hl9vjFІkU tq!B2pn[kI|KXZƔ4 fhb2GlѢsl(QYʓ7L3~H^ۦ`i-Z@kW8cSi%1)㧓Y;STMQd^tq$@ iuB0 .Ρɓ3mlܖ4ZٙO2l;;ƀM<NT A`fF^w̐OI|`2vFi=CB,3/1[摓f^k]]C6&nWh |K9l]]ȊZjFm!403|,>QsC}_ܼ D<=nx 6D#Kf2yٞ#:u.pרS)N"s%IFVݾ~}>%:Fϊr FGWeEԷ<9^G䳓 (0 O6O3ZTWf9HVP/*iD;ze+do,f*Eax6ի-n]~{Y B?4, LEp[](Wƺc~E,ppfOьYhG_CҿC7\iW3mܡ4ؙ;~x2Da(~ںsSƏܰi3!5 `vx4_1K aw7Mi'g6}֓,*S}.˖~99" TW~C9];];sW+$9cZd) FlX2Hwuқ >HC_ 8&`䷞7*+1{|#b$@,'N;RkaØnŻQRy͟sq^6aA ´I6JslK[ۼJ+B6h t V6܆)ț{0{qmۛTm)rN#3)-2!)_HV%qAF$TdGg:ٯsFV?#R+YCxɪMvL$KB9;y7Ãg" d]$@㙝UV sýʙ Z* WPv;g{uva-s} Q ;X' {s{uzOG`b$4 sPoۚ F19ylh ,1$L_2-1O DZt# OژIB&_κ4m4 "Jux!“$LwG0IkP$+ M,QٿQ9)aJNF]Nx=/) u>S)j]%&B) ,lʅ ⹵ O)h&;]?9&}A/-d6[B/j=)muXZՉ}5xި(A=8P ePS!UsꍣWBzѪUFfLmWe%WUA\wՌo.]4eEO a5xl =cy8Vӯ iƋSoﭖ/Vl>6#-aoL3Y+1Ox''~ЂeZy7~[̅Gń({T<4|SRC+ m]ퟩc$k5sdBۿ"|JXe].^`il@J5؃PCG28F$Q ]Zhu?Ee0`y]Vnlb!x3_֊0Mp3F|, t]\'!m e%b_Hu(NKP׮&~fidt:CE䈙*EF%|Pan^[l:8w}g08 h6^HqGl2Ϯ d j%W(Bos弟j1$r$cUb}w9|1zEF~RԲR^: G }+L'R@_HF@Ot0)O|gO[B~XLƳuverV_Ԉb1C_!'V/1xQXѸzo訯sV23yFh JGsɠ`O55?_TK?F[cPOc~j#Xn8s*~M{bOf0˝T_}Xz=wэ~q'f);,C&/1JMA=񏥏- ;GwgR{~$z|# )wdPb$5y=V29_VcԤ%z%a<[5v;Z>J~Oh$p]ey?݌VXV 1% P_ZfG@o*YHoR;z㿝kl&pW{bV|WK>$WU+p+u nܪZk◗V}+䅥U_+Kd4^ŮցVʲ}ݤ:(REU/Vec:J]X&R%VJeU_+u aJ3y^:{^SUsѕ:]yF5SUsnwMV>s&vi}U4UUmq俪 oW}oȜ"=׆=W:`XOUo;ۙ1wZ5V.1epqlUUJR+=Y MtF GwYon~k2ׁW]+!d.`\؈VW:YP~K7[8"JdD>Dlzv^Ra;ceq戯$5%\?׵4>F*fF4*D:Kp>74ECeތ/w·bjz-întf`6n- ۙFːȯɟa-X/ z+#3 &%'lW4WARes[JB.s6~+E"I(E.JFiWV -e`^ 4$mCC+8.\'bD#EXD1r!X[ xV$k{E7/~=`~i1$[>KAۥG?wK8 l:9_,j$d2}:PIQݘmKv |=UVET_eW AHꉾgO˯U$ĂMiwƇ`Mƚ ӴEDJ͡:}ya4V~-{OڕސInI#96:g&#@E"~[<]CvD~oI ƤӰ<]'x.ܤ@n8s'nW~<6e P>TgUγX|G`$|U&9fGP.R=6# 7`|%WBtuj$59Aԓ,6F]jz/KKCG L)mi% &Cl̑AZ]X!HH~1pd8  5y<v&aHXlhwVEP/8FOϠ^qBE c<yjyOBfN2WML9s Q)˞fp/e&+aYOO.'?VѵKfexč&1&7ו+vq./`qȫ~R'J!t>)@[h/WMf1UɥZws&>`Nа8:DrxX2c=պS=8؍(6gm$tt}NN`;%8A/kZeV60INGxUX&0 Vm?Yš ~eN=A䛦 T'=LV)~ZUT[}Lm/ي#k+*㒹 ~)֘XX/fh#3asj_ct7tîތ뫔fW !ӝEC`$FBv8RTqZʂ%U-'MyOj|UF]_ =E8y''itҦNx"3%z.9*%Z1mt1ya>67TpB9`U #ݕ2em)Tx"(Dc&r^fԺiU4hᨭ.@S/#WG״ _L}`S5i\#^V[\2$ۀl0$\J؋H\6y'W,z9X@Ow+A5'8H`qȳaN;<_) ֫6<d?d]/ 32F4J  x @V,XSœ{~G?j~)dFۘ6>KIg٪rUv1IA*uxZ;Lv肥;D9,< :#Y^p{DRD9ՁrBJ5ɚ Igɝƴ[)#?ُ\JC`"&@DjM9;?l%0ZESc+'0%KFa!yd<) ^#ջ:V(wajHg䱻xUbm',A$h!tړ4 oqrDi3> r!z G+률Ƣ  ҕPvd#5`"oS0שEky&xZŻ·ZJZeCX=̇߫AG-}=D"&ម*/n7ۙLLŽeIڗfsaLוC@| $F p?[>R|9j&f_Xd]2CRgJS:̕2Z _;̑.-_܄I YWz,_‚դKaJ[[<e!񀉑17vmǏx-Vx'-XYߦ"אIP* CVjdel[b7hWuqv˵Bkt_nǓ`83 nEWv2<ਆ .HqHGэTp2_.G /:gbltmtr!ջckݾEy\R AoR3KPP"vw u2 ȟr:Z_Kl|@1=$IsN!զꍹS{ِ,${Mxk|CF+n0G$-Dyr.mi.+ ,X]YS{wH=s$p)-g)d6;t5#SNvmF6Lo6o<:G5d{## e١XOX"u/ sҖ^`8= ٝ f?qGL8ߣW( w&dځșVAD'jn\ѐ#_ՐY{Zh&akѺ_l!5 :q)aU#,nl?}(܆4,61+3F(Qsð jEVAb\H@˓jL$.G`b\WlbjHm0K4ɝ0x;?O p?+`$Usvp@Cl -8L :=AU$aDqnFm= $>j 2l-YEWM ;נěff>v5ri%jSufQ 2V2Q{}5^{Jd8"6ã,Xb(֫2Z _;R4P}; _Nc `NֽNmKxD@d_- $([%tQޛ o^ߘQPҤ:ǠZ9,㿈j^~AwwalDG/R0FJ8(r\Z7mU)/n9ՓIo}$ۙdϑ]$"r#RHb\af6f}uYL&nT*!iҹL+48:;߮%byil).TUL9\|)Z㷸Fsq轛=w7?G,_GУF*N5~|v=_9V Aik> kЙz~};]Hf0cZk ®9{aF5v vfY6^Xv52W1i]·ۯ,|&33t:= ?z w a9esGӟ/h֙{9]ϧ53H̫oz'7v;VH̯a0~-E] L9=n"gm MqJ!t:c/vuJf:^%K6fsS57Mlnp&dgYؓQG9X[`+4 Dm`ib<Êad m3Iݿ=׻!wW|s_F|-[m &N` fcG$)pj0#qa}I~ lhe.UbJSZ#!Y^,'Fx;m#pkx:=ʱ*e`/cwݺ,l- ɡ> {4qf.nU| KRD ZD-o%S0Z%4Cf>by m q߅~+P6Adn:> '3z0MaKec\nA>|sDPH+Ti?*Ƅ< 5{_+z$Ov6FAG ;zGAPHg'ݺB@GDp^7t qDJbTbE4FlvpY BzBy{|w;Y%p%aNRa*)ǰZ?,kce2;V)kh#;;86j6Ӫ!K⍴X zn2Pa|O.1W4|aӡ~aoi@9(D[Oj`_`FHh4pzƪdNrc;ΔKu*#ěSfe jpYrZcʞ{Ւwu:+F4m?r9߮Tb;?N?ǭ)hzY]kqc4]ʿ/n'9̽RS+`9?E:-X#:Tc͐TwirL5{ww%qno-yy32:6 $Fͬ MLjMYvAMoyC ǣM)OW^>ؙJ:B0hUwFtLTU$bJpaNfIQCFe28 B [dq̮ "x)8N<z2ȳWhRҴ*ѳ"C?v9Ovy@)pyfcX XZmg)QNYЗ q['^DLb^2񴝎:Ay u*shړ<"yuj"݂"+a6!ԫC/.drvL3%4,#dHG|2jh! ^(^lJ.9BدV <Х5&؇;(ߨHyf2Ԝ#^Vr4]nyeYONj@C@X DbuwZ c&fQ`wO5񩿚]jik?^z5<:բ,/.)QX `2bl!7oFEEx6>~Fi]UP IPq0ŰUE"/%i&SHP7!ZY dp[HV>*49A~l11_~q}_Yc$@zgAṓ^7MעCH*vT< uJ0!.԰xz?G`cQo8-+;C/x8 Vh6^ =[;HNӁtӳoٵ" C=Kv=Jg5wB.ͫFg1H˩<@&m,S*Vh$kA1,$ijZFvոap .̫:[e<;v }#A7dϊ0xɊ#3$L HH19*rIP'ͫ [>Q<2O=&,9]ހZa׈k=AjTдk[J)9e<Kй.m(d[:+LR6(J5_]ݭ"ÚH|!sU]<sC{kO.Q8|q*mFSAUIv6`qbam$%0o3 JoW~2mC=NW=lQ>ܠOū"]؝`Mz|]xucz8Md6J,Eԣ\6((:(oC?69wL0+w.M8Lm1IF+z]ɕĺR/p+L)CiqJa&5F,Ta[ƲzRTT'YX pr'woT^7E?_,5Z2HG|'yh`2BPUFNu4' >@p#T%y2% 0PjOXUIgʟ*4nrk$e)R0хXa $:"av fq:b&lf~WkbXopLBџ̗rp/3X)ԁs6,9PιD7ZDG"3̪[F-LQ)Q6z3`Z 5)ȧ7LvI#ۥ|ޞsm|&LmLFpq4m0TƳEF!<_NP⎌˩-)My]G]jYl2#̶NPz7*&"zpΎdҖcvR2~@iRb[ժ~AԸ*pp$\UoYJh&$ qH/[|{ф{op@/+RB2J@z6:U&8IqbI<$`Cxo,s1RmF [(Z#<B[;ttܸGŧ6*8EWkZʓUX{3UeL L91mT W<&!QbG$D&2v7ai~Nxֻ6xOаmfxĎLJQ I2BoԪ4̮dQ%zn@HXZ)Lg &ԈMĩ {П4Sh8Ϛww93,#L?cڞpkm@ 0$ #4|ĝZ%Bc h-VCٶبλ4]5L\x5kīܴAKNih]7 swd2z>\zH 5ϊ(G!Mrܜo'yT| 9_.f=i7ew@j6qƆ[)2XqYϱu@ śH#ϔh&2a>& {5QJ, )"3*4#I\ $,Nqz+'dm\Ri.+4G/5n F"8/ voi!̇{t(}6F/!KZWdDSH(uogw#Ջ VDXQE,*U- Ӄ@ X:M158z8֤.4Y{2~vQW4RSFpΞ3?We7K[;\k@(vL#i=`ԔQ*;CK,~v$Cח&ouAGK"7;~[h'hVT Y1*wK˨PXa! WR־aU&<|UȀ=y)ZZN_hzlUS ^>`VQePe`ítBa,ˣ:[G::%VJ ;b*Gtq4 G4,6q" NN#Vwv rx^ԶM|E5x `ܩ*; O0D"xain l8S 81"д/U5Y-s߇wpzk+qcҞc35={K$ew8ٶKlt])iOr$eORB/4_a)JY!.%,/N:bHחlŲĽɮ,X7XJ́M$M[[K9ܢWO$,UGX5ҟuH5mtwlXly/`g;eT :04퉺id/eJk"D o)ay vQkJN/ y#):IIL]$dfO݈[Vq[g-ZJ  hV)(^ojA OF(r"BİVxk=IH ”$~ӰHٺrDg6_ڸwQ OIUV⡑0Bm\2&1B ;PA=[1FXv@8!5L )Tq18qjEvG#h{@v5I)Lj&ۨ))!#,/3 1ƥ-0dfigGJ͕hHk,}16eD'GC^rJQ+T>6y0aDA(ɳMD q˔rʭ"wQi!#z{_[4d*EL_^h}SBIO)9ĕ! iTl * 4ᶴv-5nK9Tu<=T26zc'rw5Lp$ [ˏc3ކ/1*U&`_Y7_j0-e͑!+◶sf V5 SQKaHA'F0B-pmd{gg29ěk v#ډJt@DSun١jgYU}1&buLYː# $"T5%ayU 6Em5>zB*Wvhe!5hCh@*݌RRd&xy13Q\ :8CrFW]Gc&>7筕gE6W~I`Au #jl41mBL4h</+W=:Dav+ Ո(hL(0qIAc6S<@{43hL}e$U%;T릂M|\Vcc(lq7}%"0ʪ7ĈJF13')Ԭ7GvcH2c&4<*q4&2U 6Ox֠ƣAiḷZeG+8ۺٙn>ڗOm nBZ_u&F2j|u!4iK4'Tl5jr`:PP>+F 9lWȰCmWL5{m.ؒV@\YH(OӻW4ζQyڈ̜W&D$@"_9t,%<2h''Ggh4e!WsZR̗9W8Xa/LQQ69[F9vLO'#F6YV虥z1JP >KiF)0I{ɶV+j[3,xe< ڳ~){0IBZf'DնG7ȁ ڥ~֎4Hx=z$%+c}qS͕U壞|l".N1D%X M33՗l'/jl 5塲+H(o$ c ::P$Q1bE,k*t90Ѓi3-pl=JP? @jhEx_; pS1etgK!408}^(mc"4|4BʣZZ0Bݪ}[;߼(cSR\ނ~,m.#Jqzt(anhR|k\=ǣٵ0[#VjxRY 9Q%`y 9 U; S8j"˳g F)" qz䣐@#SU.l+v5# S8EtZIuP#.tۮ iC)q~U9ʏ)Lb׮ZD7ӿlk*R89h`R aUauRNӸEl1I!UYHTQt% vȵ*tk*|$4@`Q; [nNU9*2?"| CdJJ$OZcztnG\g[o6:aRL]k('I1z )426QVjBEI~JG:! wg3K8qPfOŔYhq{'({0z=K,w`ݱ\%ܰf!<aN:1v >O])ؤCۡs`Koj/ xj Z3Yg )_@ Y3|؄#EJGH޻qab@L[޷y\TL a>E9;}6O2YFx-a 95h^W2Z}g8;K8T/ahʙa\wN)imYKmK,8*!"4YbV9☺S'ۮ ngI4I4HL^X'9ijxY-i0%xZZ;FzB=h4؝Zg쁮jɐ_'h|7 +تM;fmG\rTF3IDEcV&BS[915ig@eF[~ͦ#CCV ՛Q~2SWֈ~s@]B[5l#y:۬o]R]ѣh% kcEGvZ\,gڴQg _ ?߇lGMC1emߤ:YtX913&g~i]=g:>*;BUՔ`q1aXۍ`Ӫ\ȕYv´df5i- 7wxg#6ܾ>TQsMZ/]*\jN Vp\ϤaYJcnt||]gG`?INQ'~̭zhQ{ ^QM$s{ Pr\{&8팾Wf%@?uFϡ"gơϔq:iNERi=KB`JeL+_/2.: ;xI[1 {0Bs١*4?U|;%Mokfe{Cx tzOIQ,B*֠@oU"dm_T8 ?zγp=*..}R1BA,D&\r<=h[>pм~=[&$WNNwn4UPvU~j# n71P :$*_tAOe&<+ s5xnB]+Jv>Z> wp08HHn ^\ i9_QY -nH "#*Zy"Y!(WT?.ݘ&Qꏆ7 ܧ${P[kގQJ]g{ﳜ r5dF0aB~2g?h{_>lʰsC!&{,h@9觶~{I5 3N6<9 1!G?K!I&?s 7\!h!p]l<UHî*|9-:KT >6a,r3N,RTDgfht&@@b}Ƽ%G`Xˀ7َk['7HpXI5bt4ˑ&6Fg6GkzRnrbE9C0JƮi@T@3Y]YD఺ER HyUO2jگjݓÔTZ@d| +7~yd-t 4ЏWӕZ<<ȒWp-d%^ӑ D/i5 4Y9)mc4吖95* Y Em^ʎ DߩD1\Cͷ[ _ ?SFH5T3潔(;cr jNό.pQY[^[ aD_ Z0Ԝ0"ANޣ/GCY{ hߗX\ףnp/O Ve)mLϒge|VqRZV6'7˃gɝ0C.ie8m,(Z+}D[+fq5OyljQrZ'+jڡGSȜQr}DXr\Fj UQ mdiT6j܀e|e[F C꿓2'(gMk2%z*kuvܜ4ud^SNkQFo9k;[Ļ/}j,5ѵPH8i{%pԬCpYڨyҝVY̏# >Ɉf7ޠoLn:Y`v{4i2HhHۗԼsG򤘱؛ߵœW,=6T!&"xîp"Y-SZKn{xAר(RMeW'v$p&;W*Y' Q٬ũ4d>K$T-Յ%+ݯnuv>F_bTdiOL)Bn&! +Z$q/^Cf"y0X,F\3;ĔVΆ }g埂}ن|` pЗz  wcê oN^wy|?@BL;a_nz4*ao`=+o^ܑ?|2(ҕ1bԟy<6ZאA/r;/b&pȗi9]ϧٮ厀XB?LFݎfQf&g/dRV7xI>XY(T;K%Q,|׋ہ\;+f.49u”g9n&Bkg ]ҹ{] @]6QkMw֍cCM>>twB`ESP#[ 1ѯ1!Mk3T۹4n{뵥l'kz/5ϴ)=[6F^Ļ^ 1`Q͋PB={p+[Q[<2lӸ+$hkyS~Eݚ2z)a;kj/P_miyl+,N7Irϓ]2ӵ㺖։R:1 Ό ǙU_CəI5_zNa$>aCLmnԴgr[3__G(7&ڶl6nےU?5}KƳ5y[>$s t-v2ňtW/?ݯF:"GUn}-nϭ_Eu6gTTvaii3 yNyyWqdEuF),5'j*1@ugIm7(AN` wEȂH[q"$+un+h屌GRInc!rN#l gTbA¶!<Uq(NĴ/LlZ([f$^+.C70? &O IޑNe(;oW# ϐ{^(Y>r̠=Ybgх܅mќ2ɮѽx K? #D״ _؇L:yR:y s0'/BT乘ՈI[ǀf#T[ezi̹8CՑ&)Z#2> ^`O>L+{Z+%sVSd%m{Ȑ)nl85`6S,ܡ0~hZHV &6d}kr;4ˎۏTʵ<6k6wY@#|S%89&&2FjIMt4y| 'wml$=.=24EI"13OL|8e;ܙ'̮~\reb l톙xZ6U:!Jؤ]hiix^p_5Q4g\8de!Kre \]=W~kA[%3p {N\l\GC X-4,ޕS%i$\D)Il~o>V n5)IFxWImDZ9^ͳ$Ԧ$@CÇ MSI;ka)]L  W4|pj ""sYQ]g2Fr.˰,>L pWH2:dj4z\ˮ҉*Y0(;U"6P}YȮ sVSS Kojdeny5R8HeE6=tVz>/Mޛ8F4{VA0,ˇ@ ꜓m(Zސ1k<ыz q7! FbJi0viM>Tz8ԓyp^ًעZc_PPqHvO(2>UZDdٟhX9b?j":D-vJnh8GKyI;,K8-Q5B\D#} 3Qٱ2FQ~Zf2pm*>)Z7*H鮲̽#e0yV&Mv:v=L E=Thorus9j_W?]5jҸ큵i"8MbôʿĿ߽FbOB}Se\M->I-ґ2w)H=*ڿzXL%Ggen%k\n%?SrbwC޹K*_:ot\$!*B#6I+'=mQ/)D{kO)m.w50!g6Z?'Y\/41 ^]Nj4`>. CW)j⃦=<}bp^EͨM$AGՅ4YBeIv.]8Ûu"8J{g; K!+`A:5<Ќ!w r{{-B"n@ !yvϤ_@Ӧ~o ^<)GA?s@Gf6۸E{th2LE@6r;X/w/7`akЊl=$ij;7aרVQ됌4Lcw2X2"֭Wxea0Fy:X:Ѽn=P'gר;Git|0Pkx׈WdE^Q |W u)`,8{IJN'񒹢Gֻ*gɆ.w:yNdG&` zU톎~!2<5%仚dĜ>tZgwc^@ս=`wШ+ltj7 Ըmb||t*ƈjlǁogIȺ\PJ ٞ8\ϤRr\/o%/i›L!hjiBo$=\?KżKyF̳҃OwM:hTw1"X x?㶲䱩B,z0r7&]Ac%2MJ,+I%߼*}a *ė( =w%:&ޑU09;>zF*^'ۨPw1CU3hP s͝c0K8b '0w5OS^&;~"TZbۢ~Lf>݉pwxwߧ˛=^#[\.{0d9\HWX~Ǫ.w뺻.]9-c O{wCpM>+{4Fo)|QYM{/yÅ@ά_仇~}٣h,<|U^D\ldBWq8VfEiOΑ`-jh#>(|\IPr5+`)f'hSqzFv4~?0[>% C}Tw$`ڴs,.Jol SfR >)ho<(M堖I&ވ&@{ Vbp~4q"xxϡ7)S-P^S\dũ;B ()CrVƴܽ qdC-Ș$Yp4؆\DYA}D@eP"ͪN`s+sF-A5^R>FZzchB{~!-DnN3!7P1ÏI Wv$oBh h`ݝguVhI77b8PN~K*[FF޷Q'40]&l$f/$V7|Dc= -kzqo Yd\s @_[\kl0՜.֞ knk$_ȁ=PrTW)i ;1 BͤO"UV8L!6+vi*ѵB3&^FaxF~wT5*fPK@a? o*WƢ5eV >'k(K_2Pmf| ޷vM,,sarUҩWFͲ*7L"M'>=z GIyu1-uӤYaaNz &ռ|р5Tr1Yf>R蔲z(OHAg>qTp*lSv9Y։i[Obe². *O,K3zdo( t&ha1 2cŒN䢲;1p60b)OP`KEԒ̘ xύcyEi%}"3 ?C4# <d+ʏ_ (N8s^n˂gs$xr*^"^FppLkDú| |AdTgK3KhqEvf*/ snl'm6h˕,5JI Pu"_7ђ0-gIQ1˂Hr/x򪽆qM4ݒ.%;;fGwv;YkH饘L8OĽIKXջN4 2MWw&QY&q~?Wt3/d{>:)l ZChePtzEjWp`N"f۟؝\VŠ:k!>"޳΂o"ߋ6:Ą0mR]_b7eYIBc|S@D27dz :0tz0MJXVÿb1TUQ̍J)k`-&oKu/c{&j8#G9fݻh- ~;ݜ7\yOG~1S/3GCc'K< ¸97(^'A1{gfN_+(9 3P]hkTq9@W FůXeE w4>ju?.=Sstb:Cj>ug63}Ž/6W֍?['|dz >6owUc۔>ݦx>Guů9r5E?[#5xd9ʞ4Ϧ0Q6؂0sۛ / 89VC#{?<ijOSш?${ sv>aY{xgvz#vb54NJ`1|hm oN6^SVbkA_j J[01ugaYuK22ǑAi:e9Z-Y %KjgmFDZFk 9Z=FM;\[g>8׻6 ED8k$@!zD ⑻?dJ`\E,yg]Vi[ZŠ찪-[vl~D䛂5QbPx`gLG&[b6%WଜZF7.C2y+?Lgny{V* bɚ#a׻2 I"&({݉={l|LNNg,gẤ _"*%nzoucq{ p*nrkN>rq[(8O0fir )e,-Wޛ΍+zuld3{b Ïm+Sh^Ե*.Xx]ew,g QdIif&q@‚-hs!6vozSG"hnWsʄwê; fdYy7Ķ2ʪ 1&G /ջfNWbRL!U+6«I8c<NJ܁g ;'!ɭr=Jt5}(~nG3j;^$ kz6Yw[EI3m_I(n Y f`pǃ@HfU~ytQc~|cD v}Xz'4Ӥ5O } 8^M@˜muDwNoG?+_*1\y[jqFި060v GO%Uع.J3Z'bq}䢂tɍLd@dfUcFo.#2b b Dazqk@+]!\ Zn?#(m5#]U1ne6~U/nE*<ŞFy|wNW%럩&|Kٞ`@2Pl>ѐ8GK ^SUB=ZI 91]`IPѐ˥WdޕGčiH0 L^EQ&?wA[ohP(}QRj9&((|0{hk󌓧yǚ{KS#Z|Ś[OF7c;Ϥ?YQ !mc$%j$:|0'fQPr=3yY07э4@{qn_wIJF>]oJkV􆯦@hT=Gl1++qDHUq2`UmO/$44݈.4u#c؎γ"dGf}z"󙈌nr2aT :/Key>XSsV\x34ӿGZwS"56ssFzQ^ӣl&zA,n&(5^321%Y9/şjax P>ݓ.*t#E)k: $گIVa}Z{u߼o_ؓ5TDփ+RTAx4_-{i3h`7f dڇ |/^N'qEn5(y^諍Xaolc&~QXd#AEp6,Uz=#A5''ab$D R&`hۏpm4NnMI|Kx&"p6pp2+ΪX4F!kwmWDHy/67Ta \؅p;%pP0[+yN^ ak:[Ru}EzJdb΋uA]L+&9'v~\dyή«M0e !|8O 3jy?L]-?2?G/ z#9f悺v`*!f}Xۦcu`S"gՏ0P͘-!S]ax8ϟ$ s''8Þr\6q<^E`Hc>(7~Q[cƋiX3lQ2#;hWv%0ZnoT}vmDA_.rbA|՗;ް*u0..*'8J}9?(8.zfn~&]yuI~;Vb%)(t˶[jxT m 1Rrw4:CHJ@*9]QQK\a*GA2R+`8p kۇb҇c"GsHM=(Weo?eڐRo)Lk) eJ zOؠ(dTHG' f$v0ᅐ^Gha(7aRȃu0X=Gh`n1ہ$=kf˻j>^rξ-X`eD3r2US3>W3ez3Ϗ͍k*Kk\h0G\XPNWEDdJ5XL~Ë;3 wHw\9^(S\Eoo~/dOljs ճ|Z`wd0sWEM,/m;$!zJֱĈhn:{>Gc?c˸YUl`-vx嘨f&D~MD#] l7)o=u5s.]enzR^^h{ >>v;? va 5Wݨj7 _xЮp3]!k_c`Q#]aoq8PK.ImΛRmFq {*k4 qvED=&~29TvR4AoW{\3'0`4pG6~zaQó-QSڭ)~mڣt,!~>pFx@CmDCM?{/gLXl߲E|T?龜{E;DizwՈY!Ojɷ6~u%2İH()A )J v~ź)Ún#觝a}+Eٔݴlr<׼$%eεĥzty{L~ #WNnz@EdL`5Y2_WDsT>=H,Gy68""o:~~VXB+|#"!e:*xyX4;互Uc>lޓR?X @%P]P f=ݑ(Q FH:Qи{~N(|oS hhl~؈[m  zahq:܍q~Gp'1 e Ipq\0}!Xחw !zsb :EMUeR~ S\  b Xn[2/)470ٲ5֢y*4&LO*~m.m1'k;{omY_;)8s67lT3ISU\as stM~F_9MST Rgԅl3C8d%a:0[go߸lnv"2xh6̱2NYNyOX/}.NFL _QQ*把Fo\*ƣx¥A 8w7#sAb$P!=>u#LES7gK[N:JY}\z51efJyKB5ڋk6 ݸVH,ϲ e0B;FuG2{-C*F*PgcC4M6|k(iL*,/hbsM `t~[TyF\zWF$o{k]-e3br t[Hh aBGθ5tr` nRVk,ni%)1zF!+ژ?7@VWj+cf&?\stҸ4}.ҡ&&F3r.+^4$gRWʳ!佭8_[- X=D<6Z?fb(k؆=&bfg2XP ([/o:p@<acjp+7f4 χr$2 S@fdtw?| !Hp"ˁQMkzK3Am{Af Hr2pe71*LJ¨,ϏpG\MmT p(v8BzABygGg^ wdv\`àވaS40+~D> 0G߰E4 iH;z!v8nuwqw+ H9c*~рBƃ l:_`ZH*/4/G*#O>F0ja%0Rek?^x3=l\A#ͥ\i(WOŖŚez!Ӭrv,󗤢'ۭ`7TQk|]yfpߚ r.Zᾯ`9q PM"oJvaye~"i?62(8+]1ǃВ5 _I̬=fna"ONFk/+6:նoOMopd淚X06J$Y)n/ocnU)+[pXl'Ra"M#3 A- \re.պL:„xxD4P^m,^CV^w/nYq1Q;c_Ѓ/59f2&Y_d04إD eEka`8^< sTT7#T:ܕ1GycK*Y!E2$`h pP@83b` ŮdA,b6[),vt<>M g󫻮`B{0q| n™!EwC fH,X*z! d%C#2DuuΥJ0!r\AqCLك|IrLLUl5~9rjˌ k/5T0:+ԡH!|0_#k%ҡv(+o5e~mn 6у`3M$EC셁CO =+ӻM|`JF]:v q6S'qOrբ$(r<| 隸Pf'_/QD3hVk`8w Dss,1Yy"-Y1Q[S2XfLYd험ƒ5ԏ}ojJ=|wom.AAlq-/ˍ%Fn 11=@#s 7uGa)3{#&4If쓢M{/gp9\iIoy󪳒'pL1w:QWpҩCCsㄭ>pio.!\>gL $dఐD/wIXR&2.;A#Y LXhÜ 򭌊NÿdT$tŻyȭ z ŷ#b7L6>p=лUΈ"*؆ߘ=JwlBÎ%.ߟg(aKs'3?FzJ'Qa&[rmE&p?]VwP z3eo7{ߟ'ذwcNb0JDs:8\ૺnv^ĝ[xcMʘZ#kwĚr{z+NԞ|':&5U[&LAo$FS~fȳ2~؉\'߼qzMd8^ ӄj_N/+C4uI!7^/G>H`9^VL m>y?,fˈ_7( i#44M*am+i,Wخ/gwɒ͌=d 0-IC1^;B4AF (}eUD/ hZT۩]jJ o5iGX~γoɭ.9D0(iv;[M/C/5]/;YY. F/zH An6ؘN~~.`[= 6鳋**ֳ9-sb&t!&2frBk-^ XdWo8V3Vǯ]4^4dGP ,w]o'3Ɂ u,ߡ)ARc^^!3l'u ERXKK`v;g470,I:{ ;G]g&֘;=qdŶ2gi!̤̆zBpmȐ[t?I UmanJgf*<uIWpeX Kbq,ŜjQ i9N)0 .| L*g˸(53~YLdv ~9&7آl^XjUWv:mzP]|6"2W{4&t˄K#qY)+BWhaъ\aVd7^bk3>#4X`o'*p(Rݠ)66?F%ڎ@uF!M@|Y<<:(XB&u^g//LN~jXCa^#1)/peN8zv;q̮[-n&As$`8jøS ʹr$}5 p#^MGA?X %ӻRԤz6Vj6Ykb|WozT: ߧńq H7,4UnoW7:ݨnf`aTwA*VFu;Y,PS i4շK)ƍ]ACչժ? UInUn{4*Z|G2TX|vqw9&Nh |'3qO]v]WU8N/ۏ +@r`-6]0)1Ep`Gh)qF<96Lvx~s "h, }FFB@+2T.Dbyz?Cc7T˻J/1ɢAJ<q&Chr3Ur}fp&p9Nnk7U(Y:ӥk<03]. %O,&j4  3}(nN_;s7 h<0c+7Kk9jW/I I'YPN"1sNGJLI̖u<Nxk3ﮮYWe1y%ڭ0#M<N0Gyl omo߸&9vE\6M!g.΄ KdnNĶW|WwJ%2kDN&i#Ŝ/gK4A[-Au~͍f)$~ѨyKlrnyD)}^ncʬWTF)!*Xc9֍YKI XoEë$M/r4}*=2tļ;+AO}41I8' IF1*hqG씆ɧ+>ڍjdvi9^jbüO>< ;;t!ZIN.ٔ㽎f$`Q8 bPV~A8Szʳu!W4TZ_\[OMkZ:$|,J,8_y%L9\Z[ΌW0z#WfjdteU4[Zleu.L7jTEcX52eeѩ΅C9~4~ 2le-(u/FbSw1M"a"_M,'zw5h(9 y,/.}L-ޱ.Jly9`:WYrwyGRwh`pec X@"0uXnGhX.cj{ \A||g5_&\Ӂ©=pއ|iH̶ֹLHfrgl+_h:+n0PZo5.Jk৴5֘Гt2{k氓8ŵp|n$p%%B?܊ ` K2YT5nznA6֎R!, w4yZ49;yqwKj9|NcB?w!+vpᰞI,q)FVy^g qC/I*az>XLeE DO/45~fSn_&/wבP$=صv2{H(M*yʢ4l rSݗt<2IpfHɕas딦Prfޢ(*ݙf*QF{T?+0jnΙ?w͑0_Xvmw2y NQ`-j^凥35OT?SU;Rw^Ԉ&GʝE=4*e=a):5VΤ4>ר=;WG#&E9l;%"u.w^uFܑ1:/S%u& sau>zYa* sg#TWbSOX3$"F̳ hKR>*CR70μ/ȝ Ⱥ+Cy魩JF΃C6Vujg7]<'HьCR|S󬙦7A<X8ă(&:C{SzO*~T>Y~$$UbCo(Sؔc['8lX:1/]/ve)D.oN-Q$K} ʝKMgIDXP-x& ̫^a#~JBCYū=dD{T{bXƕ&D%pEUX. )M8aNL}#Il j(ŎzK$za`/$(!bwWu- Ή{W|AN$Nl]8)d5%pn.U C:Zow!:Hw;XӋ`"`^[]=?f!JOeXqʱR4?EpƏ:RccMoVU/'*.1t 3&hVTJN}m4J(~&h ޝ Fn!!:?4O'K Vh{þv8tpH7osp;Y8%~ozWr>!<[) bYʴHuzG0=1e^;Bq.n͘ܝ9Mʇ$pL^LW87$$xrr1poO#uG8E?]IzG»۴n䖥Xf|>#2~kJw:/c6 )pi/ |RRL\IAMBpd9;U61DM_v}[3):G A6C#RAbR@KA NSFn β+Q{ K.Cmxՠre4I s'\&Zj]e~d?g$=7nYH*E++B8.*\:UTDajY%PeH^4%eJc jW%w[ց)h2>Mpbhp'*a'L@1(4&b:1DU>bl`h4Hd4$io #S1P}RЦ@g4MщҢ!v4eqTZ}F l9V,Y# %mO!7`9'P`Nы>z ؛)kXag^247 n{!79帔1'hd-C јVU\OM8vu+ju)j|xv5%v|H '8! S!IAUxW_YFG4ǀ 2~Uetg2e.}f+&/OߒZ0<]\]9"O2j\Y\Fh z),{H9Efu°o~~OhIv׳jr)! g4{N= R $Ċ#Θ),x_\r]2-rUFY cA[ɑ<ћye~$&z>+TYڈ]"J!jd̕^h1Qj0{i‹4ve&k~Xxh|irzgYVLXֹzWR_2Wϵ(EZ gPV҂J!' ~u?X::ɧ|Bsk4OjW`>E\{aVq/cq wIT:(Ȇ1S.cSDNxr> k'aT(m9J|m|e$Nd2x[(V,dM+@'g7Aٌ[N ߺ 7pT)@na#S1mh mYCSn rH*Wx|aP::-QwBS ´l~݆FOb;Em:zX-^&xO*&O:GSI;ET?cj;5@nDt)_Nk8[9ڝsKyJRj=iyΝD]}Ik݈͖R 7eA?V6Ml$g(G>əA&)nt* i2҈24dH-1BЇ],xRtC øoC,|UG:Wɉ~u*-W/`ZJ6Zn}C!%J 7%2F gQ^[[zuCi!f/SiMota٥omdDXHh d/zSaKg{SȔV$uJRȤVd\Ģ w.@}~3A=ӷ2g`5wȐQ]e({BÛ'3ox]HsXxӯ0s͇\ÒxXcEwa0,/ 7ZWӤb zj2 Z vJa9B ^4g݊݀S0:=]QLEqQ_ޠ4Yu\% AA+[zYio2+E \-Z>UE+p.Z0JjS~ىO/e,qͩL)Ӝ] AO34*`G\A'٦@gT4HIZ<WX WYs q uJ+m -r`('aPnuKb#ɉMMtؗq_|.(<LvV߶Tr}2 A%պ2d "vFT@c+M=26(Y.+uE&wO%Uv{EUUXuw hdj˘QJaFe,+8o"~X8K;2!|0:{D9чJdwB_c-QzYx[~,K0=ZK꽐]<\^˵KpG94ʆ:ª 6mOcӓxOQ%U+C׆pW2ƭ^zhYMTӈh=ͦr喔8# Z]V:>AS( p=fbwDGO6ȓyt=1mK)'G\SK}EĜ椢WGa{j7ofě5c*{Gm@[2" 7|i*yf-T;]8ܥn8wLkA #zA|s<ތ?YJ ĶMږve4 PhA1;>~wRU\ěAJ㾺3ֹ95M/4ι'X7{% Xd&?r?* /u̾xHhu`Rץ ˽TZg"Y&/wOٓ8fU^n#i܈Z!k#4P~] BY ](M7*Fm?u\wl"=*5ߛ&. QL@YO>>r4*|gq/U[ʫ}Qj/Tp SIU=ձ*=Tb2" ,]?Rtm4Nv xwR~F\93ѳ vxg/88'k1K M:=!'IJO0j(ȝ;Y:lK Ѭj#;+E{XQU)(Z+6 Uc՝[ ʭKUʀ}{p`?KczM~s9jQ}:)/w2.Jrإ.E-RWΌWw 1mwLrxkcbL'R9C@5'NUk[!pZԸO^0ikyV*ME9~4ybh)}%ُG4cKT1RC /tƦ:gjXVZr|22[Ⓔ+6-9ϬTnaJ$\""K>Td9yz@gY_twӤDśu(Pܚ,r4VCa < RRAECM!_eXA3)zUVQ#J5.m#S;pkFPStTȼƭNs~Q`YIc\<( ";Ax*O#nVIh&&*u&}˫8ʧwCXqyƅ ^Xsm)'fNKJphR sa 7/KqY sjNl3[p1BQ'sÉ_Ne=;9vyp_j?<3hGySJDB.guip" }+א^ ^-"$2q[xЦQR! ؃ԬUKge\RfL\p=mIDW58 +5Xܡw̡"3|ZO^(a/T>Hv:C$kQ"Hu *wR'WV]G`t=:.4quKC;gf78 ]1nU$b^8Զ2.!:@~*hE%(<$ WK * oW"UE((l՟aTUaҊ@vnkM%ɨ)ycm/=}kJ5ArkhM%jL'A˭:5izTO#TM,P$LluQ/j@{Ndo w2SxX#+H:ÁQ]Uz` taۑ^肊v?캲sY+rAt'3(*oGsqDobyUi{2/չTc]ţ*[a\zQ[~kv@P83$t,tEeɚBRNۦ^fh5^XCRP#à?{0]bh8~JweXD|Y0/)Mf{[J5C8-a|1fh4\PoخpiֹӅ xSlxݒ 6k^F{F^a1 W>a}I6Mx$xb$Qcsٝ8U^D[kB8Io-b-4qaY3z5Hc~X3bW$Va+Ԗ3@< 9ޛ7V = CRd5_p`.ukCIFhIE*7pŖ6؋U'B 2sET$C0~M6mI?xڽ/g@R{!GD`1]p__G1'twz,VvJ(RQVΓ_`舋q>~‚r[w5z)Nsޏu_hN?btצ3ωy=?$.q%7oFGCM7Z6jFOD˘/&~ sAAȀr/cct/5mCV0|a>a;#Pqrg/˝SX~n^G_ gϠ<4$ǃ-ZG'tF%||@}O\U_+rj+m͍"]ͣae~DǠAU( Ϡ gO kǠ ԇ- q@S'A:(Lbsn0p-.XfA%Zh`#`R$G)0p^p|BN 096Ifcǧ9d9? dA#X{џ:uGwڲ1x ؠ 38KYR4D{O4'ЕCfK Q`{tp ӡ *@ey zpXN<rqсˉ@t*9lw '^gK0J _@  ZڇmDM4ʚ/#Hǰ+@/zSeq j~A9>|TU):{d<:yhŕ&#w 4bTc/؊߰EYQfV'5V+3 E3kzY3=>NQ|iч0)} 00i8fC!`gB k?ݾ|A >23+*sˊw)U;# .Fc)*\bfuZ~sġkGL8x|xfxf :s,NUacdj  f?| XYY2_> <an G{WN5#袑->Aa ?@3HY59cHΡnetM h34 ' -"\ 9Ѽam24!eUL[yCB?h;t9 ϜA?/ G  D_@?fh\gP持΀?ڎ<#з=Ȓi=8b`BGG' 4O,N| @Óc`ǵ~9tq/;~SP:~SUg@?v :A=:m!gt>g>cY08rzа9gk[v4"܉ٜհ)Z@GGo:J(*\G;ТL.'b7rбƧ`љ:9}NG8khȠ1mlS΁Ӿ ӭO "ЊY8@A!ȼ^=G9j}c)wjc1h=X!У1do:9L$=bmWT9u ~|ZdĎ|Kjv4T&;j_2*V0o.$ =C$Tcn?0+!=9pa >'H xd?bQxĆd=pbE29"9;CRMe,|1dxd~Wȥ^ޏO4 ]LF.u]h|TktzWQ-ysHV瀳.D>ejuv;[#td|Wca*N]xu~.c|Y>}tsr q ^UsEi~I pa/aA|00shcm} ϭFѰ[c t?6,_F#[` =e+hpmxtk^t=0rqX::NGFa@3ظs:s?-`G$fv#)lMG@1M8.a} G cY 1`[0.val ͂ûF 8g8N[@p3g׻ >)he8Q+hG'jzz^ Ǡ(a' rp E2pu<GG1ݕ02t ruY>]V Dl '@&ؼ+T_HK~UGÕs٧8KÑ= Z{ pv:{m޴qK+y:oM;Em5ܲܭ;"$SOhH?R;-,.r՛7y\DG^`G#5p81Rc >Aj+5OU9zJSF*$`oM.#/NQ/ `㒎\qZ @njn* ņ$q1~-8ӝ8pag$8^s8C-;!27h!;lFFPዅ  [_qd}`ra,G8& ?Äڀ0Q ͈m$n3D6#M谅I YIð$O4j񃜂-e)rlOȂ- KvppN2T{ԣjEomkZ%mB6x[08C=UZ%hlyf>e~\gw vT$J2PyBfvynm[)"G]"F#}fkhLo +f)vFMP6r]DG qC.f8 bǁ#Ht Y##>v`&: f4SlO`;9rM^g{șׄH,:9&йICx1`'R >D5O8K%-!#@/'FьP,R <ā2Ā#i@5njJG#Y8tlrH4j`+#ۂͳP2A5`&!RT46x 9&{z0nq{`{tm7`W|v%Xx-q,< 45w]cYio5Wo"4]<'l lu4.{h?Ɵ^mOH}\q2 b=<8^D)gO2*z,WǸVuUA?͢#SvyJlBܺ#'uu`\OMEJ H{&$N«ܠj-RUo1/8H( tXxcva {d tԑG.퇷K G*("ډd)a#%<(lx:b/ST*xo!;hR& 2?:wvou?2 |h4໵o9Y-wrLs|4UO~FhVTXc?H|nR;<5'#>#Ui'*UAs[  s/A8^'4g'}N޻bjF읤٤V.+{7\62 ۷U`B GݘQ}wA#KqL]!![ hF2EA'TsP?R'Xd<2Jcde8|lFF)7V(Տ!U`Hx5$+Bn2 X);ZFetzTM0z["ǣZ4PZLchiq̈́y؀SL5d{d`| rFl^;b eƍXl0n2:'F,c{`➮st}t}4tϋNb:]>7[xt}[TXt}s6gt}928]疖}dt}(68]sg%}N>]q6VNǜxd]d=\6cdf?YszN>Ypd}~O'- wd=~™>Yqx?.s2'Nd=~;O&Ó)w!d=~ oOsH@jLfW􁑆-gSKPmqᡞ dyG>7L@~{FaS}5w1PZ *FJ@cdqv%(! 1E6)j}^FozjD2D6T# ֈdlF("vcCWظjV6rV`\ YM*ٷѧ+aM \2 IpoX8z lc{8@va r>#0LvٓH&mkl;C3' ٌ3!ެ_zԯmGA~Fg?قpr60v  FڇaF6y 6r#\MO=Ѽ\M8,d!aWAH|=o!W=#clI}#hwV RG]ÏpcRt D%ulQp#sZz6 624k:'@>W ~OE?UCocV2ŬnmdceTFࡖ>F.pr0E S&Vdb"a Ff5h|s8xHIgª ]1pѠȽĔnD0R{ZxV6ȅps|)Jp| p՛X7$7"zw ,#1uzsi>DF2vh 8067 V/rpơ#vn/zdﵱo XX|dq'想u\CYC{n8&pO[70S hhtxQoB#C1 wu}9!/ &=:h808ZBZcTsvqL:zJBG &'HVD>@H#RiVȩјTO1#A.F^)h@|#YH!rky#TML#oAk!u\4xCi I+>rs2Bmݐ"ȃeyp.B3Ss[X>ng3MA5d uXl%#κYp:䓖,&3)nD9V1gbzyv`jWg z tp/\6ö.Htis yr3τ5X9 žQPm{L1B_rg?iq X=,nolygBW)rD6Sl; u|Epc'R0hu?ia|АGGة桅F$Q+3m#t$؃e#ָ ?: T$d$,Hв~#߄?Y[Ҭʹ\5!wVX|z" \5aodⱗ[,-}z1QCDx| 9H[*SxH HtPdj„|DŽ(!<"SQȮ=mK$7G)C*.A&u%U=VA3 qv =y9?ZkC~^eWo}Ӣe{(ӛ|\x^s_989ENJ3g;j:&Zc[kIP@[dxɋt#K:]*K8&Gy^% 9mC ;n0ꡮ"VoIaⴼ6h})2Hk}ܶG~ g 57+⮮pj~2n-MaܵJ<>Φ kX|34FJP'bMi<831<̈c<3#NHoġH﨏6[799ܟ̍H"a}۔ɶ=D9 }r;:]<-V}Y()v&:,}d-DvbȤ|P׷pЦq6{މ/+줃}sjر>E.QcDuG H8KOpSMpʝeW;MPo"jnՈ|> ^!L8FrϏ Tl!!C{:6X:FfA@@'n8Ү[{ȘY8B.+L%hԓܪQP/z:EH~SsJH $Rç&=c G;(tf`cj>H9{! '?|k324Hup,kTq뤌l?Rc ?@nKXx6zy nF6rgP~6 K?D>Z94H ?Aɽ G7^I;BJ /,cO{8x:~:|s21@Q !vC% 6"T4>Rŷ3p(i8r̂KqCd19#ېɑ rE,%k)AgN)y#o#\*vȹx{Ms GQl1r@D=Mz}O-6ML'؁YZbbNKFQDwjgK!iXLc2NAƩ&QJY^DO(RY=h#˽2XkFfba볇(d 7n)ZPkL{ )Ac\N1q0zy*6WShZBǭeYwτb{ބ:vwZcbpw|`)\Fq !;g)Ψ?'s_wwNɤO~ԧ6<>M^J7$N}y~ݑ$*\GTԯs$#,6{pa=tsywcboIH Rqf=C%wlǮG-Ɗ!6.Epy>X~Muޯ8"@QUK\ Vbngw빾ʩ )]ܧ:*CrjX6P^MXe5\-Y)bjK-i nH4{P@PΔ8$M0prc=5A*(Tf:q*;8eû 74jnEcVUh?7 uj1585c+CR@сQ(t a WHWk| Zc|bf9.ړsRt;lx 8RiZ@9m],x@Ubm5_p=Q: b~6%̀Hmiti Hxq!&(x iƘow7%X)ЖO`݁گ ٗ 3>lܪnspzƲvۀU*˛VpPŹe22C4@K>)Cs!X|SEi@|2٧磏\?aVT} [Zܮ5~q5Xʖ250hPhYBZ\Z//_r>Õhuԣ]#^fuT2ߒ}+Mh`$Ճ%Ck÷U]9C)Aipn+i@c}q{y}u2nA!PUsd^ļFj}밡\"7Pl7RX6ܻ0_>(E7w3  A2_<pFwF8꘩QåG310E(nFKuKjkTBԔϡ4MW`,/nW&V ST3܈a΁>TrrXP4mԒ!TZuPި:UMsw^,4(q LYL@K<9XÏ]jd!pZ }O܀D3MTM@JA#mAc C]yH9ꜫ J!)1Xv6b> Tagʙ?h4$*Bmp {pԻ#@XSsn3Gg}=UX[zT?pk(\QEMcUp)=bi4zĦGz/n&&cD *HEZKXhbmN#VJ]/&My3(:m,~ oY Rr=_7 jpī]fuq5o\fc%7' H% B -Li) `LjX( cGխNq{;mԬ}J:6HDH m J$ui|o~59Wè PсQb4Ѧ^szɸYqm9T'PX#;],X/4/'!f͛>ٺ{mHX@4=(ile4-n<\]͗j@?GSz 8\jmifR$*rB͔:XFI (46* Xt]]z,hq׃@auQ'EJs~#neX>Xq1 /svwH :wT? 4<< `}8mz.E( .7(@ ` 5]uPn:_u@ܔ;nАт[zhzR:8yߞ_c%'Q*W>rȟ;weP7W?54i6dnR$Y ⽾^U(6qm.r+EH[iP[iP[ȅi@[gj &mw Cܖ(V!nUµ$@œ%%KΦhRϽ q\|߻G72!|׉@4m!o..ćuD1;F$uLYքsZْhMUkN@1.vAr|% fqX\vBz]DZSf*㴦vW1Zݺo0 =Qoe+7[О9(XH&OQfnp_wGb@;(| E # mEgwOO%I#ǬӜl3H8_ Dhzqw[-LN Q0ο2-~ː >5^%⥾fp a C4CI@Mfc^zFp) zXodܿ-bSVdѕ ty{[fmVީ6-yh+\w@Jl ن3tJ[~m0 &kD!ǿzj"h0H\ͳRĀTp1s/ ^ӥ Ab8* /N "ܜrPkq(ڀ'WWSVi#"@tT,A "Co+_C!W~T97'rຄ\/V3 WDshҸ'O8źP9$vF:&С UV'|3(0щm,.#ɇ HHQzd<^gAultFH[\cHPD`U腟f+/삋ɡr^ .:xaQeq=8BGl{p[1: .[}k(]0qTIEúHX۶}a}5w!iT`ٹ#_ faG-nb;bjLՠ P>S脯u枼k<:U ET|uA:$ʱ' )l ;iih QngC@:`I$8 P茱aU2U˕w5QLAk ep7\6̾{;NO:Ob\[ZWZ")#|4ZgT~̿g!dpx{c1h]Vb O۩7I(X`7<[Ŕwutk*"B| {Wq1[W. 풩8Hҽutş~[VybuîE} ^Wy*Uo!FHkݱhdny&5lX46*ohkF;@WûafB>-ӕE}#;9u !Y'՜F}&֕QT:ߺ5Y]:sq૫H/úcQ|+QTʇ.xԒ2>5jn$hyҹdɂrP[T ພ~@DiX,t7vȃ:gYT F9F7w. n/vn۫@C2+*m mo.~̾],7]\?D o&<fԷ dV0< j:ulE.sG^/.-{ywM- ֚+"-|r]Ԛ#rL_TZs|@AKJl2>%{ংNۖKK"H}ߺWhHoBy2oЊOY5UiVM\twŶ8\~z"HY]Y`j;H<<ڽÓ[*z+<>Kg^pEE{O4`9?t`SiZ&랻wfDe< Z߿fM- y?gVGf^2s< qR&WNg~;(^86dO\I&Ѱb" *d~۾lc?8s?IqΨ]$hADMrGΧ:cNSɇC^>gVfNifŗa}K]~5 ۟e`{&`== 9VuȄ bsN+?9`;)_i9HC5;ٖ%@yoxDx3)W'dža K>W1IYZB~_e@ZeNa;noO|!,w j{.ѹcu&ZayJ7k?]?\uF&vdJc|!FM} 'ԫ.;~$k%f&5\z}l9 [O=<~_}:z,?x[ߐ{1_2VQ4R>Lԧ J/9ͷ%!fi$sF!$fa\a"֧5EG{I/$ Qx,,_}%ʖ43T`-: BFs ,JA֣FeRO4 n'Vq>E~30 >n M3@{ ƥfu;"#0̴tQ,S0EX[_? _lПdY}/4VHV![td{e:K,f{y B>wXR`neE¬1_nqGL'7RRrN O_Diʈ Ek|gVSpK9A N)PmvNl2. U*զ8mf"U>tW ,C{]j]D|uɞ2@@EBs3!]fK"צnIQt=3cs37ޛA虓.|io!5J(0Cj:Hq4٨U6%r&qqr%uADUB0lyY_<ȨJ8NP]R|Y^̊Sԅ[Rs]yc'\O$,3=bjvPM$*v,HZ,)B&eK2)ԞDY6Y(^TX1?j΃_OxR>0}9?e mP-\2*ݧ.p⺾hLBY#`7)&ҹfÆ͚i-ȑCo"7ѶX ȇ%FQv!}hʎUGUJCKI^Jqϴ(jpj<|hQO"<5H7-VZoizrluSՋʛ㼟tD۫\}- @9Ixn`E&kb/QH>1'N[!,| شZ#ô+ :7-ޒ($>oAF$30l=l]\# L M7܋ z2{hj j:_.)jPjX!(:^(XoH"kvկư@|NڗIV+~/^6odM>TQȁlo&ɯwlpzwMYNF%Dy! ?.bV;sەEVBDi?mgDA?bxՕO4Is0]E)=::p 2VGș'z~d^nxOb1Ȉ ԇnSk:1ϋ e!sWkI(N#U(m ÝA-Oj0_[٣8)9LM$l$ p%tGD*0c~S|,S1JABMj)F!0֤ʃ:!$zAJv$ &?3׶w9M{eb72_7[{uTS.ڳP+%gl$'6ٯxM%uw7wc~JVP"ސox"#| )nq(. B-a5|Yɨx^7rc3XA `?fHזbvۉ/yIϛ?MI}c?SW۾¡./ܺjIAGф/P԰Q4Y2'T-:F8r7km<&s.tNzУ|$Ζ-ƷkvIWF=S*%n(^YxL}k/Ln]I޾}ͩk[G\ɧf;ff)y+1 U)m6a={><B gc%e* ך7K,I%VbJ8ψ75n|lmw% ]`ݟ?CMK~L['.gW O;czSQiRt:z\OZ& Yshg\q#NS T{ډ$/t-B5y͢6yD4<' <qψ.@7Ŕ(G1 Kݛ,RџNDV R, +JZRoi,>UXFJuQ:#< DEDCi"D#18DaD!pw-.m; sB˿kf"(MJڭJJ+~a;TAfkmx M"'r;Dt, M\k>R| y%n8+,Te;ZZ/>v< mߜ:r+|SSf R)Y>݃ CO%qb4C/ۋ6i. ź~G$_7m z^_ϕBp7 ՟<[ 5p7l_-yJUnRpgno rnx㹻_kw=sф5(t̵Xo땚Tm8s&K}rq= HLB~(Ǎ_C5W7h[R|?T9!P9͂6#Z=4U"T!Oΐj˼[L: Lc6e!zG߉hU9W`zPڙA { ay[s~M /vV&}3ezYpK3'p0/&?⅏YLb+y1^sVr]׊lv/TǪu/6ѲTm,*=r)sHKM0w+vEy^r7 4|jܣkS֊gIlp1`^~. J!0 I5&Lܼ;/!k( Q>Vx{yI}c+,/M.8CW'P퇴:Bq />7}sʐrw/sA:`aq?|mΣK̏em1 g9 '+\w ];jK{Ŧ#}ɮfP+c+V !YN˧Jd,K''7;R7W;D >X}iEFMv\ØK"^SJ-JSOϋVOZxp_v|?Z w`_uNsQHʼx:hwGZe,bSWb^y~~@r^%aBIuvIaAѷrB\6筎$w>^e#2z"Y,͈F"Óͦ8պGץAWF||d%2$TFfeTFwzLd^q))d!ӿk; b0!`)L#dlӏJe$ -J TV.Xtɜݪ.{py5%꒎/d!hAMEâɟHG1 ^k}$knsܱ-Ӏm.iuJ'e|Y -כe/W@pKf.APdmDz`[e k6@ z+[o;+ Z,Wa9e|psT,vX`kɄ,uԯUKCTiYNA}z~Zi1pLnSr E9U,nn/R(u "U%_fgZ^ ?RոT0;/ԕہvڒq\ %KT!mR:ltmQ¨\eeW6Nr͋" ٺ5P7"h j/$֍kgԊ?{W^!x8ֺ gSi=}e!XRB[#}CeRg*z9(7Y(| ^_Pnd&w"6IϕqA'~\1A ?Q*jy"|>ߌv38/}|WzwD|{g/v"vO2,aqy@1>/ˋŊ^1' ki.b'!38e1Ba̖q0%G߯s瞗w7sz&0u')jԛ kzw(=="*3/Mjo܇u:IEcdz]fzݳyב-¾QAFf/V͘O]kܕ&VZJ?'q.`Ɍl72a>yu+~w,\fo/M1c܅ڞa$znoNPN&] .w $|qƎ֌;b~CB!hA\bEl)ΆڋvIड$]j_VMFŐzRfjmF݊ c(ڔM:bϛaN,1O6N̋9O7Ji)V -^**ٸKsiP8w4 4oVS0GݥU+xyRpeM@8*0'.%̹kgX'sK77נOymrїm>>uȩJJ|={’9 o5bp^s=IIv l|/bOc}=X,m۰ &S0xY;BQGexRˊhG!pK}U"5m}JDUR/d/NufرHŖ\,-5?X$.! pb)Okq7 kK01tC2VjYW<+,?:Z 1}wO_BMZ,p;5*I$-[h>,6wtX|2T,> Kir^FW?wvq;_ 쩗A/Xx [vrQIo`WE-!+ͨpʔ嚑 {'6Y4YʴLW) P~G k*ay://E#]Wۥߌ*od H f!os)O+e,t1? 8KgS ,}ٰ=s|epF.1vIHe9S?,HHKT#p(*"&m)0DC\Ja4s7Әgk:R) #ɖ'Z6Qnݢt._wrH&ϼIA_Jj2j.!ː {'qp7@[Ee%}N4p%3-BcA/4˅1e= P >SJ"s\FX td gX!a 0T*o=- K-$Ȗd}+ȥ,F⨲e 8x3y&pHDVtJ w<``6(LӤ71]BVt|(GT , \ 0>9hMSHO3N#5 e F{ $e w}Zxy]S8 +`Fg}C.^ %Zy_ζy|%XUp(uۺpCE 8 [1Plp(5c>\ wI{0 S jfc!c Fjm /К7l_2@FФ%L:p ko lÂRcpn ;Gk-2} z`R+w6hS)8FkUֽCx6#&l606%?`WW%ZLyJR"h$XaKpќ"f`G<ɫe, YeLa KwcW l{oձÞ1cG|'\* ְ~ IKYX2QB>((RcOu;;1\M5\`Ż22[ 7J7k \U 8 _0@{ y2@z>n5{8xCsk#S_ ('xvYgf} _MYU 'V3>,6fX BlN-X( !?eq!m_Vf秈9 75{rLs|zIyzh쪽ߟ`x4X#SKx4 o୔9|ji9,7Ǜÿ9IO<*1`84ƛs1, Ŝag1Atd[uk:!qX_Q5;k~ϴ]<o)LQ2+bځCyv"ATQ*n sP"}(x(p?RYI86,(ÀʷjQH}XQf(kmEX͏ p+AaK q .`,E& XZyJO=N+(1eTAZc Cc,\Kxx〺S8TBfw^Qf`6\f`CpM LybAr, x̘=a跠=n5PD] XMfQ0|ڽ<5zmln{ x*fm녚2FBh>4`QC ,xo,@fW[2_ko }A S~R[D( >ۚ+n܌˧"pW {TA@͌&`U5(aR:4x A0#pCÀ0XLn|lė7#waRW灪OBEWhpEN؀ixp_P03oJ 'ŪA ;A%8 rJ2TʭĢ AMi4vWz@p8Q@PF)-ͪw=Eqk(1QN>$*Ut&6-Vm!*(j ^]l ڂ Q[PXu Jڢ&MTpxEAowg*zpr8qNS5!5L)jq7{Ѹ\[nq z |l÷ls869xRW458} *]p<@]WS4LQyx}=qZ^ kQ'S~E6bvwpXe$C!A,7doa7b;!E@i\\g4ԱP@MXQhP@E)6(Q@t4 ypnW?r_ VhcEku5&;xHD {p!PF\(MXҶ GY<hSPQ4(%HQ0#&uep'k Dq3<8[Zgm\euHNS_ DހF(&\A[h 5( [dC064 l íF-nH4 0#PBG46ba(fDÌA#Z4!Ԣ=kF<-+x [4!iшEq[-.h#nqޢiшG\Eh#ZF<^jшDV:-7SQfZ)'—Yhdظrɔ~:gpw3nb_mһEcnF e ~|K5H=qdZf5&D >NA(u5Li͆eY8vQ ~P^H1w켈痤&ObNV*XivId8a&騏i?>\|^}[\YJ6pq]g8@`e1QW7C1q9ȵI&vY43n& m19U-h #ky,nE=v!bX,̣cr.qPYd9./ jS.01/>rgsofH\o\,2Y1b&3QY5n&Qy֫ ͺv)Jm3C| ŝL<;gZ/n&1 0إ]3-o/_e"kEec~]|iW,Zb^hOCn8.!˞pd#O[߉3&FD+xJg-C}NN<;`{:rjTgKWh_JML\Tق%{En7*$b40Jx*S 5#S1@+(D1/b=29$wDRPY wO"R2Fl[mUkӇa]T*QR*gy߾1 KX|)M+]&@%7y f! }w&ƣ%Wng){Z t7ނⶨ<ՠ#7aXogQ4Z[R2icG%+qW0-JL۹[od;w OR,co=KKf_g:KB|C0 :v6 t*A##W0ͥLp #ͤw}r#7غ?!+_+kc;{fٔUeG 6EJxh+*]:{9dٶq& L]"pr}MZZ s\|!_&+aZN/[-pIH(&桺H?ŝbH]K^6~uvyv& _!"I9d2$mQ{` Bv Yj>z_ ::$~"v2`8SEWm%Ul*MWcT jD0sWoIٲ;mNB.NɆ+f' 6 (`1rKqҜ=Qgchx+7]7>4i:8zt0w.B ;ͧS'<_{\q(w v}q?G_+}n nfWΖtMxm1hju}ߺNGj \Xn%auurV`^]H!gחKNGm5W,o9w:{SW{zg.| ]?ng< 0_.x/"uE}[r! gkDN2w\\Vl7H. -Ln!-⊻b~&d8["]9Dl]?9"~][dζ+{Sg[m:#މwDć+qv-r%S!Lq`4Q.^NmŹ:ۧR+=8[Pg{Li`b-=ֿQըu33wq~\ɗbbI޾$K%߱ls's>$^81< 2 m2*$foz*<1NyٍhK42"xl_J쏔$Ygi^"ynqI#4>ҹMY ]˔>ko63NcDsn4紣r栨-` \8.+F: \ӠLƒieY_+60ݴc/8[ޜl ұ] "n|"'؅L}蹰SGFm\NX6H$E8Z֎vZ]U-܈"Mnj_;\aZNJ -5G9Q&"~b=QKwW2U Srb=+wYc 3Dͳl(cwޅlWBQu\^Кyzt 'rxS/BL9Җ,>mKy) 7A濳'1dgď*b,zsw["ԦR/[{VnJ!خǪwQcƝtXQ:*=\}ۤs}qKPU_6W_" )L~wxؽç4>2)l9\Ye >Eo0!!hsp6*̱S$)k|, b.PɴF%q|Kp?bwZS٧J<݃EM Ry`XbΒ=kKI, vR?:O3o\1Gj|5gcM'ж8唹{Mtuocr 7z챉y<,ߓi32]Ve#w0I~> 8?:?/y>AViJV雩g·[{\}@ R,GT1@;+q .bCoe7oMX]Qsi+(0c.D9ᄎL}?ŲujcM%K.H.5UG.'&&RH;Ozm=~||0i5=Bm(_-yڷ;Nܟ{[q# Ǘ?-b Tvofx=Gxri'Y^ `k7<; _*yi9KJX.Oc%`.@CdEhƗH,^|4Pd-dDpd{>6LGvUBQOZnj̼6(Lm苤r(TQ胶캫y!1م~{v~LCCNNw3.x;Ӑ>P/Ň2y>܈}Ys8_ӹvXݒvlj KenkU=3'n0(EVsҿ" $rσJD#cN`9ӌ^l煣h+ $KEą2^6C#Y_iJ:`!`m ɴ-JKpVrԊK0ĜLϞΰ]bjq8{=)zRvFΪ3U{!>+ڬ|:MKP(L2b!IkeTGY(ʷo<gV; 'mB]z͗V>RP-*C# ne@=puf%͐Wtsu<{Bsk+%"QԌ;QۢXu'O0$5v@cr$X1,;9", "3hY\,샲.+rX? guΡ$L6cM֓B~[ߠb?kA4VyJ +!%"K +SRL2' eG@*vV*?g)#Y9 Ž| f}I b 5n}b/FT&}gF-ȧ[~QB*z|qhª uўْ= a)> 9ܪLʶVU)i@sKȤa:y)Yilu?eH#% ˸ VY^5$\}?YwS!dn+2r1qg"6?$8L>3}ńW j;mgX]'gH%k{lU@e7& 8K6a5s!$bx5ye0!mY˅pj:ioܖăgq)V_NpLkΊ$>բ+o4jQ8oHnO|t0Ha8|lӪ.gmKTy wl}A{5__P9EUҜ & r( P6pBЀur+o45,񛁌IϑCf:).lF@p:Wh R<9 R91ou?AcGB&zЦf>3gܶXX2; m${R&e$io`{r z6N!Kw%"@N;p*:2#_bL +^7,(X(I&%a~r15laYec̔}i$:39N6o( !3P K'. Mw IU >v`qD=6mmuSД*5) P =h Pϡ<03їlRv!|`&f$78/ɭtH %xMr[̧@8%wݳY»D`p +,jZ}; _N-qRwN?(cU!Yx+݀x35%$4߹2PQ Մ>ↀKvYK{AӼz$:K5P|x rM_V1,A(#@BazzɍƬK0ͩk6qyr_)U^0HO48{xkI=VN+97Zxau| cʞ&I89_ZwԔ꧸l?иJAZB=6ZHo+w5`Gt~ / Yb Cn3PIgEteӎkq :Β\e`H_'lcX"'@6sN̔KJOPCF XI =Z_WuX$K _[l)f2bdžѸTdHD#L;ûJ*ؒƤ:9؄F>46[ч>R.IKPԖCm\[Z#r& WcTQq^Ia9bܻ@^8ބ!jk7Bu>Q䑠ȹQ.k vZO^ sdg]{||DO>*WinMdg*y$pL)nN lQ|⮨U 4hJ y'SF>[/ur2W*)('N"5PG!RMbH05|gπ~ObqL-Q&+?)k6ʐfxG*d{uFOB^GxyKGA{}vDtg.AҒ\I?@~NĶ 1hi|ZyYF@/W}/W/ەP) n9iJêlPLJj D6!(ѓj7`[qoVaIR Vy L!2NV5y<(Jk*2X ª/6囤Y{3KuplsF~'uGP Oĵnpl'l"anpt+ ]_ѧoǒ獉Pov5v$"Y-|#QJѶf,5sbMd,^iѭb6N#:qFąSMWTj>1MKW 7Ec`_8;y Kcf\XV8=3Yf|`@B 7b :Ղ#RyNCaRbӔcVڕ?J߅wZ)M"tߢ#r/T`Ht-Nh|^_~>Ac_M J X3P=buN=T'K>}|9y\-m Wo#-O`Wό ki`H+^тDO:f> :hVnz 8Ż1W ,(ځ$֒W+{&+ìJH4U싽xO(8*A(W$i$,OABg}i98^\QzsuB変ˋɧniN{˫o'5B#@+'L@<[~[^)rө˫o .#MZ˓+\4[yyIС۰ڶ}H՞cyC$4#~Ĺ&JhxVxZhxNxj+ѱOBOfe~YFpg`XWPRWn⎞<#2`i%e @8 ̆^ 4WX9a :)GŧDYAnBӪFmLQ[;܉}Ų F6=wJŖ 58)Tc*HvlߜԑZ0+##CYiƕw~c|;'YV|!vLEʅ)"7U.$,9J([M2!#WFP1XcZ%8>C<~H-ڑZ7j&& 5hMnM8lE513aԢEq&J&u:DTɎ%HH򟒧=4XHaDzW뱔e^2Xpc̒'-D#6°G m$dZC@Z|f[y@^7g[pE8Яp/C?Q%l3<-'zEHHζhsT[ A2^f.65@n]xV5RRX6;3}7liSB"oHbmyrnʵ5i&6{Ѝt_ DXQ:*ޥÆw󆋻' rRY"Vt+Z<`.}H#Y{a>uf]vbgȊq_BXG)}ǰ̱I9F%$yhIcdIH`S5ZƶLXǵH7Uٖ@?+#Ys$h q+fi'A_Q@ 2y6\4'Hx?dE#K3mo`4d;̰TY2j̖]nݽ#m@[|STi lD0CMb6XY-ίNu 8>|IpKK닓R4e9iO7k ypo.0. ΂fq+A]a,_,UaBĭ~^ X5B%YPx"!KTB¨,i HyO㋓tP6Hќms~VC)5ծD2 úLBj5IT[4)UՎbW23'\7sSM̟zmі2ӀsT1΂Z|Bpo`L?)8ZLvuspUYDjC)4S][^~EBÖJw, zWWF9 SUjtɃ1z@q\s`@0SRy1q:V I3l4i#aU7V͔BDS{g9ת{񺔊` lrV{ 0$~TI'%KO r2~њ >=76yVY˜(初r`}rzO #BjB 4ƈ@3)vi3!)_@ 4SҐh,'y;R `YE>chJjBnBw1X2 g.M;C*0g9qabEgK]~jq%m[Ϊ嬖WoE9:߸0s;tr[dO_1yޜcNFԍ8DYYlF z@aހ7wȣ!I2xop\_Npbqm8i8忇IEF2&_Ƒ1x݅χ Lwf\=Zf?{_~2S:.vTzl550QJY-Ѣ' i`D m^r*AL0;J>D>+. Epq[Ȳ"!W$*ZR<V 63\PDžRF[^o 4#Iӛ-~\DR:ZV-$yV$XYz69`JkL :2ΰe`&+IhS;۲qNkX9售mahp H%S(9ӟ7ONʔyMBΗՌbr^r.ê5Gn O/$AO>)SY"J^<8E.c|hyay<NJprck֤a@Ӽ]sb&Z{#}\.q<=9WP) :Q./aRE*p1Sj$rb*\Az.R$@0Ig:R9n]=#x(S}8C҈1$'.ǮZU%h ŹkҬ~#NJ{_GI?),YGpQlT|Y,q[`0EHEW#2Z1vd#5%ŗ'oǖH}ȚlVϑ)(0q#Zgz OSO89?_ {//W@DR+HHEy=~ǵ/S8 Q21E=e T%%" ŽfQ AKy4t4`{_ Ê̫][eZWlsӗ32w2 !ˊ!qz=R~MSEh >HS>eQ0M6xz> /=X$@Mi*th~Ţړ<1KLN !DBi) ,"6b9ン4!ޮ? 51򐀇Ѵ>f!ւ5 .ς+~5AV+sr<_\\,0A?`bqquÓQqyu|rd1q^NZ_2/fuKiQ3*qNsr4d3iv[cy$&1K5y`xDKʺYv U(2KW^&ᥫ`yyzu^J QjoL`0Pn*o 9~#KOJ8mΒ}9PE);<p0Dc\^i:֘8ݜ|SIx.3;K23 !i^7el.yEP |ݘ✵f9'-Jm3 BjlI /PNN>h"ðR3!=2cgRv`*ɐf* фk,{0#%M;ۓAD?DR-0P4ɳRɕʯSv{ DsGQʒvY򔒽_a\i҅K'ϏEU\}^-FrA47 @ o3AR06y< h |Bh}^FW .e(b}8o,'H~ρJA)e'4^Y`b{QV'%Y g&>dG.Z"Ku]32s7x|jN=F>A?jo ףGߪ0"+~\/ťTo$eg)^;+C EYJ1&@1KY*#^mx^Ad7 ̻\Y&Q#x`Xݿy+wED4;II.Tq;9=9;H&FJV6c .0I !!%e{R.z{gE' ;p2L/>$ %F).X<  B4d ߯b L rLTәUTNP".eW &U5A%[‘w6B[WF0'03d`B/!MR7egHq;˕q| bkKVdD:m}YEB349NrB9&r1 ͖㋫3Y(xj))j(Rxܣ)Xgj?x9%is+80cm5@Czm"]>kb9ޗ^u/mE %3hU]6,JiPh:|8xK:Ѕ0#ZaBvͦ +L1R}bqC5\ +h>Y]b\nf e]uª?5u]䟐7D3TH}.uQ@R6$Iinf4O\U{Y1[D9dѶ0ogd&Hb^BTilM; 䣀EdZBK1=>hӹ]R4 l4zfK0TQ̵bZk1ƜεJ'FuGhSv|P5ҹ4WٽSF%]>(I膝zv%¥J =` -x:l*ŢU^5s7kje߰V8d5$䰖:} <533H.^nFfb30[,ٔ LvcC"<-Xb D-=[: vt a_ƨ#ҺZI[i.Iд!iǘ+(zlnbC@[.^-~mNZ %aItӭ8: cڏSNWZMSUblK9$6D|͍kQE_Χ!u\b<2l{q4և HDT&34|Uˎ_XɎ1QtZfFKsdQRal(( 8)! w"y^lCWj}uNN˫Kd9[˦ vƆPD<[,>4j"eOزM<eT8f:T:$?thUBYUa1TZ/#;}V3,zGA >JP?նȐD_ R"eه,C !\:,_V`{{D]2)DD#6O4^x~y129[ Ə•)[G`KVZ˖5R,fT8nij$;|(эsLA)J`#3٣ƱSƶ0奖U'u +tGyw$ox'JAT5p/1 Urҧ&j%NKj1|;!xN- 7/B 6uqL+C3%eeFAFGR$8R!2rl{GpX+ïC~O ⼫ tϖ.L}V(ɊǑ-{;,LbK;K6!rR5ᓫD!8Bh4|D^+XsZ%OkI,,O+\" orW5[19ocr]n_?ʺ)ʌWwdW0N^H2>#`fu[@vi40af}&pey}Svf9N+?]z+k潑MM5g&;JQrқ[55d;AYsV%vuwYV#;@XqJ@Ɣ% 06te=TӱKNDF:Oyح~V&:=Meэ VnY~Ր]ͦ 4 KwfyY.y920tQvfӎZ"T%ZE tۊѸa״'[dyNihӌfl7F@V Qiqw`vs;]u }w|[J3a'ZYU:dA]Fc( Ma|&'ƒڇVy2RMK6Ǎe߿i{?bF>mW| UC1#C15"&8 3BiF8HMp/^C>uqW#t„UP(?]O,k b=+iQs5wrFcUzŽTRRHP%sLvba2ŸÀ2`WCpb-p jid2xuX֡.БapoC!&daWj4˓>gdk^$EmWN۰u2@ᩁTzVk"'Ha{ѡ/v֝vi@Bԡn;`] ".i>h&^aEV61Θ9H0[uT\m ^#g;6uIVqjeeR?w$b9Q;)Tyk?Y+u~TuJ'Qu QNh=/AbԢpUnMҐn]GQ,[2!.㭴rZ !#a%OVhɽ&H^RdnU)J<^8."$ZkBqe.übPu+GCB]^9~OĠ_hl=r3XZTl|1v^9c;&iWcp}/K1 =^}#,Aw c0W&I$PdpYT1 )QiXQ vT ."| ECPLim:@Sˏy՘vB=L 1mD* erOPiow5c7\Mϱ,{L愄e&S>k p/,L>^M3BݞkJ4M$C۰.%A6p2Ǡ6 `hH1sZ \:? )ȃ@)EEY OR<ٔ0[ nvApZ:! Wu4E$?եv.,? ͔f޾8%F.:Ekam] Er" +\y 8Ehu{yvOy!Gtk{'ٖs|gگM8Xs"'ŽI˟1>ʩ\Kq6Pzas^T"H,jA)N`wX0DdeCv"'C &~CVcP= n7{7n~hYZ23R PyS}+~r'xK}?APl,e' 'sV΄gcE΂gdQwWQe@n,"nW( TYXWt .q8yZ&QV;p_S}X'Id+ׁ~ׁGC߂3i}=w q|;'V7zjX!j۱C|RlQ85=c0jӊdӒӇ0[q5߽0 $ESx } KlS#Z{0PF"gQ'GE (hxG{{gC8Orja gQz|b5RO*XjNoWjEE"#dPwa}d MEFpEAa9+ O.(ϐEJ m2 r5&@"ǒx+•q I@1+z@-0Cl"x($[N6I!<,=W`s.9Do,]zvsFVt #6!?a~\ELmS;|M| FCnYXq~!B&\*"caʁ[q;&dJe)KQ"{#x#vWKoz G螽eXQ)”a;P""ox%sF3n/$xYj3YLmH\3+ c44@ÃqXʊ I @k(jG%uhH}L)nn¡Շ%^zEܑ!fcd) a?+S |Ұp:x5,܁UA/Q `7`CVݳgR{랍pxT Ry- &R8%,2Laoj _L>eÅ>֖f2i6S{r}Uߓ}-j塥;,UE&&6؏4K03JGEaJB:%Lc h0~ ɔ-NϚ9e"aںhmRbڔYZL1) 6eO>#4b8vqA "oj]% sK:(࿲y)䈆h2HdO4CBP yƁ,4GM#1ژNlC?q}HʻJ+FяVJ^gVlpV|K{S}/ᑊrR|13p5VV: k>{ Ͳ{fw@77nE9w(|^ ],@]Po6 "N  U7:$ք"S}4UU;CElN>h٤{o &7&?q'bb`;\-{TwȌ7w?}PHc).ؔ5 PeQO9@^!T+\Ay1{A(^GV^yN NZ`b Lش«7yk7 uW$X-UT@%'ă(N%6fn-&wž˽ k,?rӀh5CunȣLq[>^ѧ 84Vturvs,8ahoW_1<%y LJXa$iU=gUzϪYgUz֘&P-;C"mɖbD!zHdm&^wa8a-V&;xJu\2ɷV }w,>J!wp<*{fotwV4k.!*_پlǓ\Q{_lwFA }F~rF˺N".kN4(.MPQ"-qzqqmhD'SEaїzDmѣ~YGtqZ*IqnvMRf?x$bQʈw:Qؗ=ۛ}Fs9bzЬ5uA7iym?cfĝ'X}aLիmh-`2B2Q_eH`c-x :dtS<9M n.ܒS}su Z='hB74 v:yQw]X#:mku\ytXȍ̋nSg('f ȹ.I>Wlk W!h*D ;r&RgJ4C?:h*lt}{Ɯ3jG$(;<_!g<$`<~Vv4-xYIQQ;dsfM 2 9e4I͐G^bNB9< {v2/uܖh4iS156E&z<G%d~ȫ};s0K1)cLWo#Mls ~C-OhXIpi7*8; b&s[ۛs'mu{}}uѽxx&ɐ;׫H|0q΃5$,2ϗ||9%PsW<цр0Oy4}RS7{O\pKQ?Oje1'kȧZ|daJlxmʺdϐ0g(Aߤ}&.m"3Ji2SȏY.FjӢSgDpP]Ês>Vdڳ.F-VgXcipA7`oTh:1&O+2ɣ\P_SiUTmvhL S NCkm spET4O5` iSxb@:rh(,5J ħ4uEᝣ֢X*jF@@(K\jv^ H!ꨯLr5hcw-jABL4L.ҧeaM>:GlN7/}ƇGj4RH;ڌlJ8(4dtpAe|o:H X1Wj,OnYC4eai^;Z&pH{d,)3.rݾRUY!"Axjub9SzM?AӻW*7("}n-³aWH{92/Byl͘a~N]^hg18mUx.zuIMnogA`G]SK/SS>6޶u>P8V{NmAudkxS ЎYz/LRݫFv5} : >2z<S\GK Ќ⛢w5 }}5#8;\{}*YE@´iS+ PLQꛭg6Ao `Kfbw\J+.eOzBa*+6tC?+o.8[o&VLllNnۗm 6lumyV` ϟMvwrM׎0FW86=Ih^T,t<9;KvՓum0Ƿ\5 mO|6)oOpKrݍ9z4o*}ŒŚf/~,E6|?^^,n?BKxjk3k6v7hFVJb̞:+yNmMYu֘񬎼L3(R}tx훘zQ纑#vm FrT{R.9`im[Q9ZIxQ 5pj8HŁQU;eI !KʎS28::3l ?HBaףcY5yreLkjVteeV&']f)YR"H@ rFL$\%OfL/ q$\ʩQ y®/Tǖ_0ko꽊nD.MQ/cća:L<<\.TYI]"5r-zƲ5z>Bq r%|~HdɷhK!н=ck9:LYz?b>?JGubSJHYFd0{l,', Joca)'Z#Ҁ&"7-)0nGk+v'De"|E-Ikx_&IeA2h T&Έ&OLP f)9M,W 8m-9TGfv>&ʩ~yXhI:.x`}uq~Fm\}K'[¶d~iТwMJ' 黗9aQ1L8etzypQ}JɘrMB^h{$"0R?__]^w3@ `B,K4l ۶ mh]심Ϫ(u^ZgԣbwK&1H4Y?5%863`6t ]"Rr*YӾLF\Ҧf(;:leN 5zj6bzĦ?a~8!5׹ ONXK])qz:LP+a۴N9c.XsNT5j35E'\-H(ӀI a-6Gt~J} &O#je[OK?2a :ip!qhK w0bXڛa0>@UMF,5 `iO{YD DE ›b N<$d^eu_' ?8%a3v 0oࠟEz,_=Hƞ*9YY8! SXtdgdR5-O76,T./&VcʆCjކYfڊum|'̷ixQ_l^pn8}y`Ǽ ? 7/8U/8/8̬s5)`*0vA V=VW(T @wYc^ۻp''jJY| Յ -4 i!i!w.H,hр-8FN3>C?h[#'đFs7no^zo滙cE]Qq:5Ԙ'{e`A.`=5X9 '~_e>Xs ^Tj9YMm{]ifX6`RiLb4$ !s͵BxZL^ 5@<~* +*"\F 5X?XuDgtaN{0Yޅ >TशacE/:k[4 zu<;@ ۔l@hBEJw'}Yc%ьM\5!.M_=xD2GJݰp; ŒOWOo`c>?*M>7ZcpYm|ع>=hT؅3qzͫ>A ᠼa>Xf쬛lBL]#{f7a){\6yZh}vs62Nf hDEET%k{Epuqۢ4n-K!:L bp1\јwr sK,phŃb%2o)9[q pZm]~ryuP ܤ G"b[g!O\\%S,yXUl;: VJi܉Ypr^^]nCa D^hjD(SgA%ՔKUD&Ҷ^Kp[Nu$Rι_1$%8 YWV 8);4;2X-B}P=8z`|{h2A~cطb^R~rwdA)nN ht|`Wt|d^mk;H+ypT#EڋyZ3ķ\ia)iwJbU͟gaʮ ʁ_NisTǴ՝cZH1/Z1G|7N̟i4Lo™G׶$6m*2v̨N.pSgaC-O`E(#,@v("eӆ>YmGL_^DtkM@'G#oέ"יL+@򿹸AFwm,jWfys~ADfm\*g2ݞ>DM(X3mDh8xmZn(ň߬ߩ3Æq8xphe{v\ӷu% J1 Easpr}ova*QӀvaxk%CBW+4U`ƞF6!WMGVDƜHK=')OO(&͓.^:`"4tJd+e G'?3f~q-'JD4l1mxf뀚ֳ$V%[ici&e ]eQD~/v#U#>fvLObufsk_4=i2?E嚋KT)(ڧyS.o!^.Oy"o*ki_?X~Β&j,IJ_fo2{s 8Z |ۏu V,-fS!:D-C֜Q@KKfp4ȌZ*U+bY>QI8avl_2}{>zy {l/,}vF0ֆ;0 r&J6@~܆uEt|MI*3[s9t4=o=`1Y+Х-$vRN-9|IRXK#xr8 $3iKՃqwVm,S)x$X~}4/q\x9n_UҧUInog#:,WJ,JLW;KN8fI'Q1480'9L0«3e1S'Gjɔl +ST)kn^+łat_[I+ $(3paǢM6|du p,[m2]+`8ʊ.XA{i>]}6Ba_&J4+5ra#ypq>bIDH~}\*8kk+U :3ȐhM0+^bn ?1C].Y`G|K\w2Y,C<1t_Ʉвy[v0V6{{7c{vM(WK WּcV^}>+/shaH,%qdս(ZA?VK+( +"хqxÎƳ@wLpPnCk&6Uu3i7{d?jNusXǭ`^)L$7bb\AJ!uC%HcQS6T+Ȋ_Al}b\_TيO]zzqsu]0h?b`}ȱt_tгLa Fe;L̺R˂u)ߩ87 :x 6.ſʅ; LZEKoGyi{DUS׮A Et6뇒6y,~)&YSĬo=~3, kq" 8O:ckݜS0,q$.2OU|OS= ;Y "?4H!U? ]څ?OBrO J¿~՛\W*|:xB)I])$~tg߈W<]/!}NZsB3m rcɟȌe;1rVCvGYJKJeu1khiDd1Jki muY$(EnWDdMm_~Y.YoڛpM>9FsɿIE8 9BE^ōkS v|lDW! K@!8H6 W1y!Y;&Z6sh.s{g+,Q-;VW\hvqGv@:؅r0qU\3+C֌雠G͋MS':G9HjKؠqڔ7lR:.Z,R HfE:ƴq=s]IJOo1njvœagָ뚛Z|Mt!Q?oYBx4/9>7s4Bq)ROcR}BziG#i WeV>b AԘ sqq2}k2*APJob_W}lpX;?|-5:{z]+PTUUڊ.}^,8+HRHuse:iz{y+ G"ܘ[* Dn̥|M|3}AH,tގa5~r$hDenXLBO&Hqk6ϸ;;m={mpӡ3~iSUN[>qB!Ք?0P|tkLqMA6v 6 i᎑0ۈԲ%L,F '{f* [w9|K;TcQ Q &2ogTE'AQ3&f^`8 (LB#v}RзgY-l.Dnj)JU'ie"a-ʨrS-zttNsaSS`i~kt;Af'b:~8FqAO>j]Ueb4 6PrM˵&WjaX[8cSGAp^G+RO-o(  $#M Sj<|pd_?OEj([Qsd4]7`8M݃XyxpNt;˴mT'{ޢՔVo% YMhlblu;jxG|l`Auܐ-ųڱ.!J0*h&٦L&KRq土<ʎw<#_>@[7d)ϬSˮq ["ED}#dݛ]kHŃ*l^ojґ˓p/Vf>enc+0K}b)P3#j<'L(߂p ^dBsa::bpV)Ӊ%_UlG2#qvjVDɘO r@Drȗ_+;% xCf}~j~372$T)x;PJܹLgw;p͚cΑxU{JyRAfgǔt1.i~ q9O0 ,),ę"F:Co7#^7HLwpbF+sG8V~3C]b<(L>oQ-TF!{ "qH>B _[*}rO0r"O[ZS^ߔlH 5 1HO#K(q懽uʻլ_S}xnk;&Ua;Jm%`ύc6)ds6#g?p]aEb?ʂ]G٭'i,`93IzQ%Yu{#rVAhؿ g6nBx cc1A&0w=P!G" ĻL}e;4(S;NF@vŦBZ,Zًbg>[eeL4_moоLtK]ûP$u ȆJžW4=DݕIp|Ć靛>raM+,HDcu`/mڎK6.6uyr|a.pȲ~]&+1*w0hky |KP([6$:RVjK)]Vj#Qۮnŵ+01`A,ieBRsK)  ԏJao(H3Y[ζE&r<ܻ'j nldWg TTV77铺5«rwz/@^bSLBX\9v'ZiaG'b$R&n{S1Vm[ߔ# "~-hC>ILig7؍&akCjcȊnȱHgz^[,Tp,X=.8L>]4!W `] 1 \@4(.{*4.{~XjLSɞVvS %GDtD)[=? h2J0* œv {?Ho0Ztdya,O>yA jO4|ԨKEј!,^-.-ٰD6,Q5#,)˦(w¾g&Mcf@فxe#rX-`S9χ4벪>qE~uT*g5`tDڞ:>UV4[tBÎLRe0 !'Ms!r&8c.M keU&9>-Q~.GK8ֵpӺb5q|r{ּ=yqf?Z X84SGT{^ÅGYwa ~.UܗY:O'4V]sZOy2˹.%=m;L< (Tm$8cªG-zQ7Ndfo)1B+)^<'+%D}]1)ؐ c?2N Y%5W}7 +ܾDطީ)C:}+n21܍4#o8(#k_L@ԑ8Ѓ4)|=ɑhȳv4wW'u-p-ffDQqk1l[ve/4x%ā'WOwjp*Q|} -]gQd6RxjlC`7 2[@¦ \yܳWFVRޥn)ڇEڶV^.Rh\nϥv ًJ#7T#HC Zbx#TF&oJK?iAMXmOKYoIYusR\tFyQ EtW1Rw~~:pb?H&3JV­Vs>7)xdTDozi!y(\\u}T|@ jI)vrVZ'R$(%-?77T8 `XEţ5p]Gěy $`\}~DS2}E>|Z2Qh ER+RFD"[mڕ /15) c)t2t%*MSX䌖 p6p$~ F6@aÕ@qs1a96^oK;^FS ՉNs/H:d-@>g&eŒ.|3n#e5IxN s؎20KMew^ "c,ؼ1]B 5諚5>Lx% (qyE5xY ( Jr„=) ѯ;*jNvgą6ї:옸`}J/T8[TyJ< ?‰_2]*5:O,-bH~ȯHD9p4w @A%@u]*7T8 nHN65ս=h"y5Ǭ?1H4$Ҍz$5~lu)n04O1ZS c0KmEzz*EFJo6q(a[/ VTX$߾˭Faw a.~M' ̄_V^sk{]$`p$eͼl^&lxjn !atPY4Ÿ(]_ؔPu惇3єd"|(̈? n1 К.UiTSeᰢD #0 $ ňRfS@3@"X.cdrDQl@-2Ubs~XP%-gmjdGC6ߴ"o3ڿ'΋һsZ?;RI7u"|Roɒ"B Qt*޿b8}Ol=۰XH7N>#Yn_S@H,\ڃf"M)EF`~ цm$)r (8D :gp3vGO0 \1ȐIGm# 6[n9.[~lLbq!^}b:G%tx;hJԕ5+^;d+Y"]>Xj{}7Ku݈߇X9~dl˻w:C&7l+CH^]*lC{{mfvGv_ZK$@#WO;)jܩT}= ޞj7&~ ?пC"P2dU`V ˗xg>x&OL;EC W20d^;5k-Of bb~m"UK T( U[ViFzY?8]G4r @->V[.||pK0RBAG!qsT B'?'`z}EH ^-׽P p Wz̆o$T{f$hBp%Dy؁;R F3)o?AРxؕWSMaBhW1\# 1@4<֚tX+}^ȣR1ަ^92`XMtmVG1+ z55ZUb$iP>PG<J"k:q \@*ܿ1$k򉍩Mmnؐ38caٿeFTT>?wٴ}}a'qާȽ` iAz.'U%Bt,3_l@[ܧƐ`ʎ{`O;w`vgx9AVC)]01I(DD[+WCbG`ĝRR^9JyU* Rx`:V,h䩰l]&V^R#>Bx3!8r+RZF .܎<PTm$3!"F+٨N?ړ@'YJdZUm!8=?4ƹKӟ$m]N>n@4q UOt❕>p놠k?>$ m x.[w|Cft@-gۢ(~tCSzr{D'5׮NCa@6S`_Z*E+ko8ƣؔ6\0j_(!ձ w( /[}дnߎ{s+T^W%QW"l E֑s"?Ꝓs d#KϛTfXI0e}6YE5,^,K7ÈP씢CE$iC֞DFXwOc/ځ(<5Y:x6\8èA9`j7YB/YyY2u%8 &j[b,KԘ˛F{$8PEV?&Tn;#o;ftYk\B ?4Q/;@uXAaEf4mЌYBbe%ײ@K.ϣE`+W-91s|Or:pY'q멳xHEM]THnɠk_jBPQ3٪ (=+.9x7T@o#FTG73QWz?gu`vlfFU v+^B/j7Y ̍L<*N;īiuK/6zf}SlvY9;|!Σ#(/gJW?qqr68=V=:D$4I:Q9}l,3*0!/ ^&Y@ PǷT]H?=.CuY#85+YTI{AV_Y D|=@x9D*{Zg;ҋf BNTX?t9A  &| b3hZch\BNDq2ǥ~ĥ#=Ui&2#R0NED?ۍӟRH+/16عL@K9'~e l> HY{81)h6|81E@T{hR.}ςbC6.wߴe :?rK{.94qq Ϻi0 ~6f[d^CbAWi g~7#55!!˿k{cȖѣ VeaM3Z)_]"^-`\Ĝ/*3 > H }Ynӗ_=IJ3h%$6N&l=S;t*l$9%Ց<ы5]FA bk¤Q#~[w{y TSdCߚC]k9\oF!]Jh])9tJy6G$M l;WO(W &7㗞aLi` & GgDNb~+d9q$~K4;E&w37)YN4|ȡbK{xJiZ7NpxA~?*4տw h&P3;ڢ1][ɼ:X^CJ@ 5.-ݎbr*-#^8B!}zߌ.JNh<4n3†RB3_ 2r=*~U"$ cF>4}tID. >WH)DBb5<3myn[Q9qo `9L {P_ש׋{ ET@DOĸb KjB  $)Չk^VfC[}][nF 3+ؔOڈx싮6ȐqSV(ב{ݥ{F'*|8(9bᔘNn{C/Td!i؞If|!LƬ ;*r`xUc~y!b0ۿ\iSpj dCv_na!FH-3ZƊ=):엝NR T5N"w7Tf>NY~+i>-2B^d}hX:[͵؊є`'C-ӓu]y]BK3r7oodF@xh_,Nh<\Dspab֤Rc6!)[f]_g*+OFIϊq.: Uƴ?.0>uC8k( O(Fh rd#_ҧATYu)_uXqXrô5c幃#{vQ{"JGLX,۬ʱ4EXAʕ ksW=]S4_-::fչ %hej V%_RȔݩ'2D;h$3 0wh BZEq.n)zܣM%g6.$^J+ {q,jh97kZS'8![?˛r]r(a<"֏DbU)TInJڍ %a qGhl64R{pЊ>FYRl$FT%wFq:7bG3e !*rH$QWB ~G#=W PJ3[U:M5TwUD S>[`*xu-$&f >#wZ>4sXEPI W:4[f+ׅ5ݙJ97ST"x4PrML{ް_lod4CȼHfP9Ĭ"d0,e˱} -2}/EkD]Ct0.&{/TT~UJߧw)Povq^TtRN<\W|rBjo vqíYP_/8hwGߞ`E BrϤxM/a$+}Y-B-p8M솶JYK IBB\NVq& mosbt8 Y , ө4)3ϼN>̑,F1c} ?+f  IՕPw?u9":#倥8j9ZKlUA97?fHC, 0RPRl*L?qp{bl:<1)#Mj?`0c_Eu9/RC܏"~d(eV999h] :X6'OĶ Ä0o1:%M{|랖 o Jh,D@`L x-ф(er `{.*pWh@L!bN) B3Gx.C-}Tl)$JR~ VfF >[ω\X{rL+ZH2Z@<9QL߁WDr -𮴡t/dL'huĬGϖja!ĎLFQ+͓ƺB';|5kʷwNJ> D@{3VA#93T@ {32pQe#DTk"˾_!o-!8RUW{".;JKˬaW.]SN#G7mCb&L4h__R`29F+__"-8qzNxRZBa>=$lT3V4$ .ʥ. ~l6-{:53ޘin&&W)"= bgN#jv- 5Yw]ɗ` MRNV]P|/JuXk&F=ܑ*&D#HxIutI玖/O֢(K*S8S?`1^t$H/"goS`+I!l27;V2@{*[)L  Q0n1XYάC;m^`ߕ-KKY#;IeR]鮎LyTہzPE%H'[[9SYtzvX: =þ}+!Q-=B B('XqEvGSZxCL, %#Dszi&H$=&VO؈u6gƼ5 cCj#HICԔƜT #-V.#j("t2Ll6.p7Wt k5cdXhW1-^Xup[NwFBo*Wm2UbrMo> pE@? 4nn .3Y-80-׏<7rݰ{@AڗH#;HrST4TF嬦(POA=4pU9^J֡H@[5aP|qEG,v1:p(0a Wu E#Z#;F)$hE{]ًE; ~s?Te#B9M^%8]'w҅d~:k7)Dex󖯷֫ZU@8r5Oo%3oxZJgf2b1E5`T._M;7( !L"q&azyA$`T9= = ^KO><.^U32adNv%6%`&1%2- \;ħp@&U wkAKg jD$쪴fvءy$>HTf9âl[%4% 8+f.XF/fRLEjmjZ2df"I&4DudxCE]&Z˴PP9uDŽ2Ҽ=L| ߮[gTщPE?I87.S+s.!vhfߗ8_ BV v@y[Z'lnRda;%{S5Xi@1:ؚ!>tE #fyM>ќ kcg6Z9+gJʻ0X~-o1Bxڰ ljOqR//[M46,WMߪKީyBRTb%Ng;)^譹Y'3O"f>@u%U,wys[9!DAF-:ZϮ|Alr]8{Yb]O,@逓0O]"A·6 !-nzwƴNSo /N^E4c'='W) ˱DXtp1p`&^d=Arpѯ]_AHշ8,&UL\`E)JeZ_c0.iCl1 [w [\e88ӑ;RBnA󛗏coDlpVXT>?o7 n|I b?v7..6H/HAy ƲW m (Dj {&^)թ|(=7 zd![7Ej8:J& nQ4$֙hgoOI&o_)s+RRݝ]V6!9_+e!a{ %9OY-$:VH_sH4{L_ܘOA>%j;Bcm=PPҠ[s`0}Em)G j]_=VA "Y2YQsZ~RC۴c4QYRͺy ݉ڰ\<S2%>Elh % P>D:aKC6Su?l-yxG;Sj, 5*C)堢ߩ,`6Ko) %mtr]xH[[Q O 17!lP}l'5R2c Ɉ><t#zw[3p#E;L:"4SM  ox0*w_]m3#jyr7M>guᘭUai@0դrVTf.<[y۞:9Dۮ,nC7AA܂,t?KTfD^ ܞ aRկ-`rKMĄǖ{kAqj'P(<T8G?FLQ$adOy򛃭~D:0p:L;OuY_]`]rG;8*(<.bPh-5yyG =Bkge`&8 llL31+lrc ju>I2wgv]͉Ľ7S/'&yKxg7_<pB!+J'T-4e>D D F R35z#>ր}*Fengz6Vb qC$.֎ zIynQ~FHjPҫ O-;a)xֵTOQEη[`I杗^ (I(8Y\Aõ* 2fO7&NGr@S]r/On)qx0&lzںU2/ 8]`47{'mX X/\j6C >mu`%~ϯ{M1伨Ǽ@YjT"rA=[ Ady2,\i^$w_tFa55Of=۱=9q=V۸7qaÑE1әLr:$+]V;IjSie5@ܡJxʠ9,ŏ):3)hO޳g`rXfRmQXh@"N,CKb&MiMq^0j(:mG:G/SD|֙@|Y>Vwip%hd>TkOJ[(][6l55"U[=^ip8{32k!hț0É >2 Z9+j 2p)tOOFDKas^M3H1kvD}ݼiǟJf#dդ$˵>J^Š$8fbp#f!Fo2luT%?z^7?I/Lu^OVl$Lx Q(J;#? MTtK~mGoo6 /ϷA%{Lܔmv֎]=HO Trjsf*< 2#gt!(> T@L )lmsp0fɽ@] &ծ<^ (7uk&S{?B)kMy.Φbߐ#k8f/ ?>k+-qS Q[Zv' "ZEnIS A iЭ #m.Ga׼|PsmxyXzVBsLh'`44CWkP ;s. 8ІHb»KıJ&UiFU |ixۀ7<NI:LֲH.2B QdRakN.<Pn=k

6Q /B`cçUA ](뿵& %߃&'Ycmaa{U_7"Olj$D1s.{Gl÷X/Vk0`?ΘfOl0}}ePM,T@KH_RzYm 䮞=#~W?}^3ܘ>Y*ktǖmL ̭t^cr2ͮnԫ([Lz4)U  -׹R+IVrD) /p9m=8 " kgDE{-%Sf/t'ةoi ^{C dgF DbnAf#Vcsf 4ٺQF{c7Ҫ%I=_n[R%&Xi 4?థrqH)20ok{ N c$qaP oDړB;g3I763R/OhA CR13:K9 Ϥ|KhTJ̹)%&^‘;:[w,-i_ vCPFbaGIDF)"g*}PTǰ*RvбeZcʭQscG(,c' 3(ATs16[E+ZBApj˕BykfBvݰoN=Jw ;~OOq.!S]iVá#բ-b t)Q3FB^d<%3ӫ#qm@ZH4q!?O>&D厂796 ~ߐ$x%oڷmF:rbL`ImCzkt"Aœo̊Q2XYc]⭴au3 = .'5sԲxވ‰yu}PEEdj;g~ ?>!OM$Nxj`'3QNCI.k$/ڊҵ/ݾ)Ȍl+*lE߆j6nD7[z؀|[m9*SLImPbѻ-i"tgw{mTa6gO-d$׶8Δd+}iEtg⩼*8L:NaX,j*[vw!o5s°=Eư.Uu0C : O+~Kۑb;Ř_i v>bvdȰ kW\,0Q#(pu7{ Jq`h(ڢ԰mI9fi#WG/:mGRW,/4).Cc#Iu (kC-/ D}cD74 .RYV^/zds8%﬏<v%6O`VN^j[]jX Q| 1@pZ Ӥ#P 8w,QHVݟy1eI|Yp=U$G$ h#1|5g]~M-e06@2Y2 >1hʲGj5w*\t2`kh0΀P(lHR~O&Y{GV\B,SWATナ1lc m{Eܰp@OY 6 u}kL_\ge$" _P 9kS.6|Ij=.*iĶA^g }z$a˕T#p]n(fI‡z9P˂COœSu2cFZ冬ʫ!^܅?zP^j(kb8yrfiAxۅǪw{r ;.An(Y_Eªj>UH򆣘Z4mw Wy<םUk%I9MvM? (.G CFM>%-M-Cg&~aɋUzDqd)e cb˞qTj7$;+sEJ7c_Ù9J-\i=a1Jk(5z}`L0 ?oc#;d1Pu}~˺]Н;&APtȟGIP΂甸V7QB}+ UU؊n]s}1lme^_wHMF3 ͢c#uߜY%Ay\|a\OT' IIPLI|]|MYnY;ɪ]>I/f@VPj.U9"s߹Tdbȏ8U'HkC$D'fO.tN_ ,ga-5(q:L[A.a 7k@ F \2|X0Ēxzu|40HWrP9 ;JF-HW5Pu[Ӄvp9!n2Z{'b{rЅ(٣wBP;|̰ 21Bg?gf$C1vU'd\غ>Iz76?%TG!D!mL$@)D}xIpOP8> nNYl^ks uz& R|A#m&)inbv?utG^mcNeȲq.<o"GdC? b?s&@͐%z`:8+u#ogTaSͻf$-cEj]^qLT_WSy)dIo@{2))F>o8xѐJJ{v?(A̷5v2 y͔eز|Z*Qf+_B`_K̜2OkoVTOی1PφY$*[8$# 8M!{\Un dXmwH=ݹQU!)R1)ɑT۪PSPFeɈ a"XgOC>hmDlw_OVA3ԶQ~ _|,@A<OY$VSCyu~*e`.5JS5=Aa[2Em'%" 5,;d -l+Yd5uj kb2L1'Ld-&s[K?ĦEl6葳k .ji߇kϺhx~Yn3~KsFXx tcz{ɴ~ooy=5{Q-h_" \<k` )Hzsm\ܔ KThWR=jV<7$K[y% @V(z֠LufQ }@ĠԷ%Z5 3L荲Q"_i~4[; +$ŀR$^էlRTY{yWwmu{r<զZI,6 ̨~bŋ/Tq\vſt6"T 8ѕt`d;@K4MaIcΌƴV$V3qW>?K/d&DZF+Zk{//,hGXdYM=Z#q:&}T[SE#׷@_i_&-_qڈ-/dZД|,Qm1N,ta[ i-Ԭ9HH— W[;N"EQt-s:e' u;m K%zrXc2 Ea_WQRG[L&+U̫N|cFiS`WOT&`` ǁxe tp <zbQ~ f 6<&DPbRT2 w #ǰI'z]Gƶ†sv*18dok}/Y4$l_ݦW@cx؂bL.oۭsu䗙!p0Jofn_tT 6)S5v|sC&m!\-bbdŐ|1@a 옖%j X( q0Z_ N~yBAue3rV9u# \'l= I/N.1LG#{`==/JMF4y^hHhʝ Vjtȡ4VW#HƦjxL ,(h V⾆;vS<-Y2fMOhcv({僮 *1iAg黗XNj)csڄN5&csh'RP}p9!tU|ȪGN{]=>Z~ dL"4rvWW#^Ǯj=aLk(ֻRv5}c0O.2C؏aaEuC۬~^U!|ä !wšb#}7:r΃UKVrpny' 8Gw1OhmGVP՚b;sZT˨ B"h׍.8A&3wC\nKݰtS[c?h ] S`֪zt˯+>a1S[ gHДFr骟M];mHq[eo[YpIO+)jDsod* aX ĕ-״U%95K#NaYPiZ8˙9}.!uJj ԴT]<+}ut}9E~k .bʭj~4|.=f9"Ž2d>_U>Z AizF: =?tj7 Ru],ԅ~Y)4=mXq4>9&T"rUo4|aVq1&:.;8QW݋E]P O\OKyOÆ)'̗e T«BcOh.R^i)X wDg8*k@B?A[4%eϞ~5e^I +7j震D5pV}h7 FzwZZōS#ՓDnVEljh~^JGw׫,0$Vk:JwZNÓ/XRaXd/5HX>8=f*a|ʓ[/e;oOv71 {X7T<-Mј)N'-:LD}HY^UR0w2WV4r# ;"a>!ܫO9JLU i@ғEI&$ُK"曔; gD͐%fFcqaX~31+xWJGt+)S6:ϚE\ =<4RCT XLZsc!bX𰺉ZαE?&7pdb e03Y+ƙ<  YZ