live555-devel-2021.05.22-bp153.2.3.1 4>$  Ap`О}!M@eee&|7/SOڕs %rqmcE~\jڙRݒt,Q0ʔRL0Ҹl;D{6/a=68d Ӑ"q9MqE(9ycoje}T[ӒLkd^$kn:EJq(v}DDӼn>K_@}"wSVG7# s5KӃ RkH E\neZutaAINE0&_.пsZ15beaad7c32d5d345ac945824fdb588a47687d09bdb37948e70e0ba19254199f051d11d2b2544a164003aa15cdb558fabcfb176eȉ`О}!M@eeea %hoY2C ] 43{ MAh"c-^+h MPb Mp>=h?=Xd ' ?&4 Mm "    9i :=A]E"ELHPH H I (I8I9JD:LF_GtHxI|X@YL\] ^1L b2'c2d3te3yf3|l3~u3v6w6x9y<z<== ==TClive555-devel2021.05.22bp153.2.3.1LIVE555 Streaming MediaThis code forms a set of C++ libraries for multimedia streaming, using open standard protocols (RTP/RTCP, RTSP, SIP). These libraries can be used to build streaming applications`Оos390p22 SUSE Linux Enterprise 15openSUSELGPL-2.1-onlyhttp://bugs.opensuse.orgDevelopment/Languages/C and C++http://www.live555.com/liveMedia/linuxs390x zh. ObNIH 9,B ws ; K6  & m %  # 6 #:;*u #  Q  A \ uR2 q ' 9s?;  }r '   a  0 3s   x   -  "q? g ^ L'8t )N 0(8 $`Y P  {xD 7X{{  +,eR!vKA큤A큤A큤A큤A큤`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оn`Оo`8bdb452526a405e458f086d27775e5aaa56963495589bb70b276e516d1ca67164cea5837bc96a4dc2387c652d5d13cff0ca90585add67c4f01dfe22b3d71e1777d677aef4ab9c03eb845b536ea9c7d1913806b7765bfcf512db4c1bdefb12c7ba0107694345ce8ce1ad8948030cd381beea59408276f6d8d9e374ce3ca6a88026d24e7ac4c47e84a1669a83729d99ca1dbe44430cfd073a6a11dc358885f316da0b9a3ce78925d1e96527fdffb56a8b6b32a9e3791831d5c49b5525982a5baa067287d64f0d555fd4bce7dd03f7eb56405af1ad2385134719020e3e63c7fe75c0ff3db5205cf9caa392551340e8f06365bc134ba5043f2d1a8050d388483c6f613c8626c38b83eb42d65fd0235d8b9adac3b6555b27490c15857b33df067964d7a703ffbb5b7b5b881118db6e3ca4113e54fcf5ed87bdfb6c801b28aa67a7da5202d7b1bb868ed072e096c67c2a890ac320a708de56feeb943241d593e5c0e7da7ea5465e1491641d92ae5440c06a3b948c5560913e46a1950031d17344478b718655a829a91b3688d08b534f1829508a68a0dcee3a8411ff68540de2aee102eca9215e711157753bef0891ef446d094dac79a899919b9f21f12df0a6038f51fb436a0c06faad7aee08eda3e6d5f93eecfa5bedc8de5c96b8c70e1b687bb0e23d7e40bb1e97b1718f56b395ebb40b2fbf0a0ddca093f4251129aac0cf14803898f113863da62e50ec7671d60657d97d1c1dc3360fb3ac0169b2b5ffb93b1e59f716cf59478a80bd4ef134fb30d31bfa127919da64f108eab2df52fc466553eb1cf178bdefbdd13386859d21e61a4860400cab2db5ffd0bd79d2407d2583a6c3df32775d4f0f41b35efcb270881da6b9d0018febcc053f48a8053690fcd29ec61e75b7a3e3df0f36e0218d34ae3cceb098331f3416db9136fea987e0095157b7e585f5861a6d120c152c9f96c204cf93759bc40783c85c07605dd7e57f79a6f6e98b3ed255541ff297cc5a2a59914c13d96c70df76f24004c5183ab40708abd6ec361c151e71991fc662343b0db2a7483e63b9c509470d418588cc1e4c5f28fa5886b30b2c049afc20c2c684a5b6fab0a114be1ef192f3d9beb396ec2ac45f147cd2320f8c32245a249353ca7c2adef1b87008c94a6e4fb4f981f7912e650df9402fd4ffcef71166ec089e99d59e302207c27c05558daa02efbafc5b17f5dd11b8d3b381e4ce1103e13ace3d2855dda235b5f50dceee904d7fd7f19e88112c44e342973fe37ecbace162bc979541f3b1e9dc723df28c3100bb6780488b83c2b3cc6ad64c80806702caa7c07114985423b13c615ce95fd1193515d32a45c950d490f2d1135dc7400752c3c90fb41e855e7febbd1b9c7203212af85043f9a7f90da01b04b630ec2cde3f8795521a15d2f5038a19698636d97fad5a140c5c408ccf6bd05da354a19b55b0aa303ca4fce229ced17144cdca8cd09bd608e0e51308d125804c19eb1d020f3a4d3276d061e2106e8ed887ac3e6ca5cb2967932f6422b8644bcd87bd13681e45745b8c7e4946faba2497a15eeb23e2c3e2a5eca45664ef85f03223c4a6d253bf84c2d69721693f0713fabe8a03ddf10e2b8aea9b8097a01ba93f9c71e6fba15b180899ba54dac0da00f494aa2d10a5cc2f80711a660eb4a733edf2f5b83757d456a48bbccb10876ca63e2d4978e97d881b79ef8d9a1992336541dcca6ab007afe998604f1e128ab0c1babd6df90fa18afbfed35a6fa0515d5aee01610c130de002731c6fe59304353e7bb81c7c288cb190342bf0b162f95a2fac154de408c4c15d398a777aaa3c2d68615f5b43284222c7b8bf030542ded29caf435e56aa52dd913060e4d61ec8583b9bd9aad8c693e7d76658dbd8a014f48d1fc8a64b67ec8dec7a1fa69bb2cef4b575f1e338a328c3da0d361b3edcf2702167bfeffc24c18e0605651ecd1ba83f1d90bfafc4645850ca8282d9b777ef200149593041699bff6109d7e9dfe06cbde27c3491f6588d4f9faed83dd5d8f111f6c82e9cca6710b75fcc907f5d869486009efedc70e0f647c2ce12929c16ff581c8e548ebf71fc146781373962e8355dc8cc339cca6909d80265d26aaac34240af7abbd64513cbd68b622672cc4345fd2bd0abc279c081669858c3af776800c8e522b57fefbaf0d354ef0f966d9a2a19607ac57f9f2f59c79aa37245a6208fa99c796b0f6b7c5bbfef3b29d998cb26a90333b0207e92ae7bdc3d7d3b97804ed372c0f018835e633d3d778c08e8efbcda9699278f54b8ec0091cbe67524f51886c032f1040a3ad242bf0998c619f0876c66202279872170027247eecc717cd6e273bc2c1396d8f1f4f6633043d2c39bad29dd0c324e0ef9a09678f7d486383773c0548cfceb5d03de8b444dad0b3ccf84b1fac6d1bd5707b95fd30330f8ade965ea367012ade5f8793315c829ea0a3b7514331b44d789e35ecb23eeeae8ed84490d5c1f057619f11f2e52e90e38629f4abf30613814a2e63ac62af276023932d47b571188f47a4b017dfa765c05195ccf4aebbcceea8ee3e72e8d62b5b1bbb670b405e3263418b1f6fa2c93a3c1a6a565e63450dfe4483060c9888ccb4d2ee39dc7cd82460850f1a9165b0e52e692cf08aadf09b8f5d42fcdaaf06fd09f02526766077b41453ed42a898b35f7374f4672e9c6128048193ecf8b8507183b9c876f49cf861a48209a373c78a64da71c25d015ee4e30c5e8f3987bd4fe98565a17997245f136b56fce956c16ebb5e8bd75e682e90a8cb8a2b15a1450a5a90141b26f3fa69aa061c24e383b14a3cb64ecc52dc335f1523ae72b7fc6b6f746231a234bb481ed86c8c3007eca5430973c7da02754310b76fad1b9230078189e705d7a438fb82c54402bfd4a1cef2876b14be1af5ce01526ace09c232130d0d0cf87f68a73254a2f6bcc70ed4e1bb372828b8b435cda7434b3e40a12d05c79fb91ce95d6b785582798b7b22a2fae688788ed49dde7a7a36485cafe8bcd51eff68669ca53e3722f196b1e13304e1d5788e433a87f005fc33f6383f291f01af585be518480380becab7835486f8dc8ffcde6c40a2c5af007242b684ecc81704ded3216f8c26d60df9ab094547a83fb81a741e6cfa8af8c3073a7607779dfac0af0c26b5e9e046ea08723e375760f84634e1a0077cfc4b096078f04d33e508d4c221d8a56dc1784a2a6da76078323056ce403022a77613d6a08235d3f0050adf745c7ad6c349a11acf0419180765587a4e75d158806a5d406cf3d150bc8666cd431c0f914036e037f944da116418274d80ed043470aec8c7978220897af01705f51ec849913c31a36ccd642e78fc42530fb278603c07a145a2f1219feed2513994f70e4f7a3d8fd1ac32fd3b858de55afb7a31e4a2c68fe7011b0ccaf25b6c15c7e6862693b927a85e6471aa1471d5a0ef05d7376f904f3ead9d186ceef0ccfe18ca2914d65504e9a415e4d933b38a7164306d258bdb27c6516b61c6f727b8f1868e62f65a88c8ae73b7546110d5c74912a10115d7bb20d5ddf603001aa08739c366ce7d5235a7933b3fa1755c4ca4b6c6ebc206c76f1987cf3e217143ad130036d256111856854bd95bf488687e37bfa87d425723388e12736b28e0450b5fe64fd7696c03bd73b3dfe2d932622a960fa9e044146765f6d9e40fd5054a2b50ce18098348f6181e8d6b24ddc41b24fc9f9d92abae12a5c4dcd0a779ad1b2729a6673f0069e6ff30601b509891d4d9ebc6b017533d3bf9c28625db9ab3910b4e491d93b9c0f2dc1a2938ecd8b4ca004e30e3ac195dc9edb7dc26e40e3a376cff68d29c05ba01781f5c03ec566b2f0d8e3dba4f08f0b12222040b11b5564d53623a086a0049300e49d9abb87fd9b8b05b53e2b49148bb44e3eb9bc563ec75f55033cc099e1874885cced9ddd868a7ca57e838db152284e4d429d17f94c10ab343450057f47c9419722f6ff3d62e562e0cc0ce4bf5abe6955544f4ac33cf9d517fef2653ba39f45a0b05b65caf632f5c43840c13ed10d585487470b896c12aa7c2535fee821bcecfa437270c816d4d1dee207f8cf32ab549aed814407d537bd1534b6f2d65b36bd9929da935d66fa41fc09abffba7521a101500225aab59e2df4a1a6945370a0c11f1626a5932f742d81ea43d6b147288f508d8967fdeebc5b5013f1bd475b91783b3fbc869c6e5cc0bd3fee92784682bc5782bcc6a3e3049e60bcc41d4b15910dc3668e4e2d8f5d7393748c1e356a95ca336910698e9ac5af7519e0bad14de049e72e58e3f633a6072df1a279dbac2360b2794db97c204d64b38878ca8e048295c45a947f5a920b7916a456a0d612c343b4c65120ce37d4d49d86e5dfe3bde1c952d44fd08726197b206e72389825bcb228fee59a8abfc973bfe151da3c8db7691985a0f42fd1186bcca613d5902fbcfdcc108ecb64631ccc0cbb2f29913059acca17b6de95119d84035c2037f937e796f2c2d6cbbfbba830dbe0660f42cd3622549f16e03e99ab3ce72c74f57f5fb2594d0b189a6c0df777c5bd3c93acb05571f135843b1181563c4c294435ef169362dfd45c74606e92db107965a416f11ead7ce6a69b4bea05ec37273fff548f63edf04b801c58702d8927b2c4813c393ad5b1ff1c98e4e144a9986a00cfa9445dc07f02733bd9aa304282d1775e39c62e8ac69bed38c2027a713dd81a19c84bfc5f799571683d9f74cad6ea63078760f813dfc5e884d91818a179e84ce948d9f13e29f93831bdbaa645247c4494dca13d2465e14f511d875ae2a526e677e23d73b2564905242f8760e1aecefa0d06d74e7626644326c842d32bf5fd657086204830037b7365ff0a1c14c738997cdbb5e78960738cf307e628c508fc5f9e63830701141a0e10fa98fe54adb571754db347b4fb4f1ed2b34efb1ba5c380fd3cda6a33326f1b6c358ed3d154aec5778ce2bbf7601257f0b342288fd0b2b4513a4b3d8745fe5a49230249a9a013cbc498a038b0bbcd6d977d0d427e91bf4078743b73c8f9efe48583b41327e03ce79e49915242f82a89736237625124b184a20c9cc0cceccd943d323c701a914e1884f298ea99e75abd1c487c7ffb6621c318ce8564e5dc5bb14aa669f336a2660e764d2c8ea191b8415db5a911308ff4ca64a8e304774a74b00da6d993621da44f6735d6d41d18e31b5d472fc58171ffc1b8b2db7fccce8a806f81ea1a8054a00de83703a6d9329da5aa1089bec6e23bd84474682cea3839c31bdc06a5d2202cad543b9a272779794679f02f39e99b09cf957459a0da96cc6bff7458477754008a80a9ae5898f86a3b727afba17451e1cc183c18675fddc7ce52c961906a7a805eb03cec06afd69ca1447ba05808bf611f3fd0c3771264f71b1c634ceb9c5631c86487467261ada039c0a8f18c50bac195c883b1b21d450da035174b100f8309a0b3b2b04b9a8b8402914b2b060c702fd122e7d3b2dd25aa8677766b5eb4b6768829c34d514ba91b17b9dfacec9881dfc2621b64d76a7886a44e7d5922ed0f964664d931d09d9b23cbce9c3583e41b06ffd011a84946cf0a0e59ac3997663c5869e97fb4442ee8a883aac119cc53e42d9db4144e555a43c6fcf937259d20d2c8af05c0067d0b18aefce0e5456198031682a3fb154ce8babe66995a841f3526d0052f66cc68fde005af10e265381f6d5fa156661b9d0b8aa3f4b0f29480d90932294ea6027b6c548744ba064fb2cf0360f4c4c342854ee9aa3c3d8adcf1bfee9e59e45269c1e1786695614b7ba03aa406a5914849c72fe40cecfb0e043d5dd279b0393cee6b08440fdc3a0f7170e33b06cf8667c1a11babd70f806a688e484d1cf64a688f0b27fba19cdcd62836ffd827d4fc0eef8fb8901fe7552a6557c51ce38f85c0f8b15744cd293ca1453f617e15dfe24a93c65fdd45d637c2c783f4fd9504c4d7ed98fe519ed771638591205fdf0169f1ebc3487af82797ab62fd7e357679e70d1f8d555d61b6415f50f82418e7aa6b1843a2c4be2358d51d115bd73262a62654c81491c39e53a215f714c0f7d1b2dba12a4d36900e9d744a8bc9a67d2b0ae840a0b6a76e22c801ad5c7309e6fe42108437d419b94b8a25581b08cc47f588a0c5ea356abf9addef427f037a8a190a2a0bda553473007efc9ad24dc031bb54d604c38bd16b889dce14aa26bf8f2c6a4506ad1006cde94f4c102025c54f69186b0026521d4bf3e4fdb5326b18e8d284bd5d0dd66bf560ae48ff37ecb5d0d7feb3b65f569adbf5a9fd120cff98508f3698ef9e6702101262da1fce39aad8dcf177c4c6a1ce93818507613181d990afd85f89d2d992e42d5c0380a17ed1080ca355536bec8553c5a0200ae7e4a6ee7d01755b2ca91f94265846b639dceda775fbeaea3fcea00d2a9812a048ccd9a26111e6ec55a4ecf58caa363b57d823438aabc97713aabbba55dda8f20e17140519577dec2b6081f07c393bfeb8c92674a688bc46f5f9ac6df91c24ee279215a2acb07a944e008e16ef46aed835e26c738fb69bc1d2ada52fe38f8daa2230a9a100da364350c441a3f5525dddb8da089fa3dc4d799b3c432c1045856ab041a670ebc2d786d06fdaf473f699865e858d37c098f46d6c07996eb8906b135e6876f952573e27bd4e8ee3d8c1e2866f1dafbaab7bc49ad4ebba444e148f905f2e63f7316a10d6b7bb30c97623df58bd79bae598a6bfcef5ca5ab5193240e9e0926a1bab35953d5d4299599fcb4a94c81cfc99abaf761efbbb6f0f7f9f5cbefee8cccf715dcb394cb5ca9795747eec05f29c5d4a674a5c319e612ddb80c6cff790f9bb8a296103ea4a957ea1c7696117d391c3fdd9f3992d6e1bc275eafd9b3569809fc7acf0bbf1d017b2c8ffd7c8dd88dd65bb7915ff23dafa12d3afd8580f65b2fb0991fd50581d2c2ce7967388ea9b8dfcd2c0b8f1e1689257aea1f2c2c9da5eef7489d6d14c6e9b12bd14b9742c67bdd3cde068101b73e9063e02da5181034b82576c739892fb38297078fc14e12bf2f33c595170f5b73e4a6742d416a447a69151726bde778dde55d303ae7ec7bd6401f5a157be9e00a1dc396388bdc70afbe176d84f8dfff7f814811a1a81cb3b743d612544f1e06a1e2e7aa1dd32280d4a045e36bb1a8edab5e4a1e0fa8b50e6afec337b3e25655ba8f905e602aadb3e8dcc3d3998f21729422a49ad4b6aa8a966165cc2492c6ba83e396617e5ab0a1a67613edd60d590f1dd9acd703880e1fc0b2328a20dad5e6f5e66c6b23a0d23591e5a59a998e98d926007f741778f9261262925604a3c9257e27c5b9f66e3f57e196d4411aa8ff17258dde5a48f34ed724354cdfdecb13ea045dd5d7027d7b360ae1c018d570138320eef0dface0571b2725bebdfc0455d2e7c9130a7b11e22355369fc74dcae2d6ff2e7b9bc93ed9950a46cfe0c763011422bbb23220dc67730f6f87857b4729da0fc45d6a053acbf74f76df20d045ed2a4a99a82ed4249339c9f4d168897aa10ead8bfc957fd5b645aaedcc6b6b6416f65333e6cacd7bb3ece1a0e6f6dbfd9fff4e6d68cfc75b9a1a508393aa31f676d29c3b2e3944b17064c8b85a3512f38a77171a0769fde3763284deb6d84625bf2c4833da057db3623134d981cef3637d3763a51e57534d728ef387800ea8423bd3017619ee767359eb6479806e622fa2672b64a53bd905fa86d2d4ce89f6aa49a69b790d79dd72f9d16600567d5a66e55496138e3b3e1a7ab7494b4cbc67c7287140db2f853f044870de930c1f6327791d95179806a05218c3904e678adc7cf06339e703a2b893d41092513a4b191e4747dc9d441190d3b09e55044ff045443e2bfb5d4851cbdb5894f5cf59acae73ffe758768a031c095c7d0e62cb6b71c7843839c1425b49e59112e16d21f43f6c2e518e749cf119b3444ac05f067ab3f5338544856009ae41d3f8b92f95139a170822173bd6e930821f8a94ef4b2c3aba3574fbaa31def53f685075b918f3f34d7c91e31a447fc1a64fe47c5b818f5972bac3716c9e5d02dcf5d2cebaec74ea9c69093f21b299bad92ba10c8456d571449f10911c007168d529e2c7216f9bee756387977fe0f2a2e48a07a8836f52a875bd74313e0fc04a9151d7d5c039eed4a964674e88a1489b07463ee382207f8a981d851271af6de3030401b3be2df7d04bfdfeb08d75b7b65fa81c71fba7b7ee678dc672232f0c2e8bdbe6541f118a78ddae6fbb501de3414bbec6f1c09a52db805a238f8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903libBasicUsageEnvironment.so.1.0.1libUsageEnvironment.so.3.1.0libgroupsock.so.30.0.4libliveMedia.so.94.0.3rootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootlive555-2021.05.22-bp153.2.3.1.src.rpmlive555-devellive555-devel(s390-64)pkgconfig(live555)@    /usr/bin/pkg-configlibBasicUsageEnvironment1libUsageEnvironment3libgroupsock30libliveMedia94pkgconfigpkgconfig(openssl)rpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)2021.05.222021.05.222021.05.222021.05.223.0.4-14.6.0-14.0-15.2-14.14.1`9@_.@_xg^@^^@^^],j]@\P\X)@\=@\=@[@Y@YV@Y`@YZ1XkV TTR(@tiwai@suse.deDirk Mueller Dirk Mueller Dominique Leuenberger Dominique Leuenberger munix9@googlemail.communix9@googlemail.comDominique Leuenberger Dave Plater Dominique Leuenberger Martin Liška atoptsoglou@suse.comastieger@suse.comastieger@suse.comMathias Homann Mathias.Homann@opensuse.orgschwab@suse.dejengelh@inai.deramaxlo@gmail.comaloisio@gmx.comaloisio@gmx.comaloisio@gmx.comolaf@aepfle.de- Update to 2021.05.22: lots of fixes and updates, including the security fix for CVE-2021-28899 boo#1185874 See the list in http://live555.com/liveMedia/public/changelog.txt - Change the so version of libliveMedia to 94, libgroupsock to 30- update to 2020.10.16: - Changed "TLSState::read()" to treat any "SSL_read()" result of <=0 as if the TLS connection has closed (unless the error was SSL_ERROR_WANT_READ). This fixes a problem that could cause 100% CPU usage in RTSP client applications. (Thanks to Larry Wu for reporting this.) - Updated "TLSState::setup()" to use "TLS_client_method()" instead of the (deprecated) "SSLv23_client_method()".- update to 2020.08.19: - Fixed a bug in "QuickTimeFileSink" that could cause malformed "esds" atoms to be generated. (Thanks to Chris Paucar for reporting this issue.) - In "MPEG2TransportStreamFromESSource.cpp", changed the name of the constant LOW_WATER_MARK to TS_FROM_ES_LOW_WATER_MARK, and "#ifndef"d it, so that, if you wish, you can redefine it at compile time. - Fixed a bug in the handling of pausing, when streaming from (multi-track) Matroska files. - Fixed another bug in the handling of seeking within Matroska files. - Fixed a bug in the handling of seeking within Matroska files. (Thanks to Jim Ham for reporting this problem.) - Changed the parameter signature of the "RawVideoRTPSink" constructor and "createNew()" functions so that the "width" parameter comes before the "height" parameter. This order - "width", "height" - is more common, and is the order used when these parameters are defined in RFC 4175. IMPORTANT NOTE: Because the types of these two parameters are the same, existing application code that uses "RawVideoRTPSink" will compile without error; however, it will not work properly unless the order of the parameters in the call to "RawVideoRTPSink::createNew()" is changed. - More cleanup of the implementation of "RawVideoRTPSink". - Cleaned up the implementation of "RawVideoRTPSink". - Updated the "RawVideoRTPSource" implementation to not set "fCurrentPacketCompletesFrame" until we are processing the last line in the packet. (Thanks to Andrey Lisovoy for reporting this issue.) - Fixed a potential buffer overflow bug in the server handling of a RTSP "PLAY" command, when the command specifies seeking by absolute time. (Thank to Xiaobo Xiang for reporting this.) - Fixed a memory leak in the "sha1()" function (a "EVP_MD_CTX" object was not being deleted). (Thanks to Amir Perlman for reporting this.) - Moved all definitions of PREFIX from "Makefile.tail" files to "Makefile.head" (so that it can be redefined by a "config.*" file, if desired. Also changed the definition of EXE in "config.mingw" to be ".exe". (Thanks to Eric Beuque for this suggestion.) - Fixed a typo in the previous release that could cause a compilation problem for some developers. (Thanks to Eric Beuque for reporting this.)- Update to version 2020.05.15: + Added a new filter class "ADTSAudioStreamDiscreteFramer" that prepends ADTS headers to incoming AAC audio frames. This makes the AAC audio playable (by media players). + Updated "openRTSP" to use a "ADTSAudioStreamDiscreteFramer" when outputting a AAC audio stream. + Updated the "LIVE555 HLS Proxy" to support AAC audio tracks (as well as H.264/5 video). - Changes from version 2020.05.14: + Updated "H264or5VideoStreamDiscreteFramer" to add VPS,SPS,PPS NAL units (if known) to the output stream, each time an "access_unit_delimiter" NAL unit is added. This makes it more likely that the Transport Stream segments produced by the "LIVE555 HLS Proxy" will be understandable by a client browser. + Added support for H.265 video streams to the "LIVE555 HLS Proxy". - Changes from version 2020.05.13: + Made the "MPEG2TransportStreamMultiplexor" segmentation mechanism (used by "HLSSegmenter") more robust in case the Transport Stream PTS is not monotonic non-decreasing.- Update to version 2020.04.24: + Fixed an apparent bug in "RTSPClient" that was causing it to not always send an "Authorization:" header when sending a RTSP "OPTIONS" command.- Added pkgconfig(openssl) as a requirement for the devel package: iveMedia/TLSState.hh #includes openssl/ssl.h.- Update to version 2020.04.12: + Updated "config.linux-with-shared-libraries" (and "liveMedia/Makefile.tail") to ensure that "libssl" and "libcrypto" are linked when "libliveMedia" is built. (Thanks to Felix Kaechele for reporting this.) - Changes from version 2020.04.06: + Removed support for the classes "RTSPServerSupportingHTTPStreaming" and "TCPStreamSink". These were being used (in the "LIVE555 Media Server") for streaming using "HTTP Live Streaming" (HLS). This was always a hack; it is better to use a dedicated HTTP server to serve HLS segments, rather than trying to implement a HTTP server (serving 'virtual HLS segments) within our own (primarily RTSP) server. If you are looking for HLS support, note that we provide a source-code demo application "testH264VideoToHLSSegments" that converts a (static) H.264 Elementary Stream file to HLS segments, and the "LIVE555 HLS Proxy", which proxies a live RTSP/RTP stream to HLS segments.- Update to version 2020.03.06 (boo#1146283, CVE-2019-15232): + Fixed a problem in "H264or5VideoStreamFramer.cpp" that was allegedly causing problems compiling for Windows. - Changes from version 2020.02.25: + Added full support for the "LIVE555 HLS Proxy" - Changes from version 2020.02.24: + Commented out a line of code that was preventing "RTSPClientConnection" objects from being closed when a RTSP server handles a "TEARDOWN" command (on a RTP-over-TCP stream). - Changes from version 2020.02.23: + Updated our (unicast) RTSP server implementation to handle "PAUSE" commands by calling "stopGettingFrames()" on the input source. + Fixed a bug in "H264or5VideoStreamFramer" that was causing it to not update its presentation times properly following a pause. + Updated "openRTSP" to improve the handling of the "-R " option. - Changes from version 2020.02.11: + Added support for receiving SRTP (encrypted) RTSP streams. - For changes between 2019.06.28 and 2020.02.10, please see the http://www.live555.com/liveMedia/public/changelog.txt. - Rebase live555-fpic.patch.- Update to version 2019.06.28, fixes boo#1127341 VUL-1: CVE-2019-9215: live555: malformed headers lead to invalid memory access in the parseAuthorizationHeader function.- Convert to dynamic libraries (boo#1121995): + Use make ilinux-with-shared-libraries: build the dynamic libs instead of the static one. + Use make install instead of a manual file copy script: this also reveals that we missed quite a bit of code to be installed before. + Split out shared library packages according the SLPP.- Use FAT LTO objects in order to provide proper static library.- update to 2019.02.03: * CVE-2019-7314:A use-after-free error causes the RTSP server to crash (boo#1124159)- update to 2018.12.14: * Add support for sending (and handling) RTCP "BYE" packets that contain a 'reason' string (breaking api change)- update to 2018.11.26: * CVE-2019-6256: DoS vulnerability in the server implementation of RTSP-over-HTTP (boo#1121892)- Update to 2018.10.17 * CVE-2018-4013: remote code execution vulnerability (boo#1114779) * changes: see http://www.live555.com/liveMedia/public/changelog.txt * removed xlocale.patch - xlocale.h is now conditionally included, only when required. Upstream fix.- Update to 2017.10.28 2017.10.28: - Fixed the handling of the LIVE555 Proxy Server's "-u " command-line option if the "REGISTER" command is also implemented (i.e., with "-R"). Now, when we handle "REGISTER", the and are used to access the REGISTER'ed back-end stream, if necessary. - Changed the server handling of the RTSP "REGISTER" command to (if "reuseConnection" is True) delay a short period of time (100ms) between replying to the "REGISTER" command, and actually handling it. This is intended to reduce/avoid the possibility of a subsequent "DESCRIBE" command ending up in the client ("REGISTER" sender)'s buffer, before the socket gets reused for handling incoming RTSP commands. (Thanks to Durgesh Tanuku for noting this issue.) - Made a change to "SIPClient" to better handle Asterisk SIP servers with authentication. (Thanks to Rus.) 2017.09.12: - Made some improvements/bug fixes to AVI indexes in "AVIFileSink". (Thanks to Victor V. Vinokurov.) - Updated the handling of the "writeTimeoutInMilliseconds" parameter in the "makeSocketBlocking()" function to work correctly on Windows. (Thanks to Jeff Shanab for noting this issue.) - Added support for adding Opus audio to MPEG Transport Streams. This is done by setting the "mpegVersion" parameter to 3 in "MPEG2TransportStreamFromESSource::addNewAudioSource()" or "MPEG2TransportStreamMultiplexor::handleNewBuffer()". (Thanks to Praveen Mathad for suggesting this.) 2017.07.18: - Updated "BitVector" to support a signed version of "get_expGolomb()", and fixed our H.264/265 parsing code to use the signed version where appropriate. (Thanks to Toson Huang and Long Zhang for reporting this.)- xlocale.patch: don't use obsolete - Replace silly -exec rm ; by -delete.- Update to version 2017.06.04 2017.06.04: * Fixed a bug in "RTPInterface::removeStreamSocket()" that could cause not all 'TCP stream' records for a given socket number to be removed if a TCP socket I/O error occurred (during RTP/RTCP-over-TCP streaming). (Thanks to Gerald Hansink et al for reporting this.) 2017.05.24: * In "RTSPClient.cpp", moved the call to "clearServerRequestAlternativeByteHandler()" from the "RTSPClient" destructor to the "resetTCPSockets()" function (which is called more often). This should eliminate a 'pointer to a deleted object' error. (Thanks to Gerald Hansink et al for reporting this.) 2017.04.26: * Added a new public member function "numClientSessions()" to "GenericMediaServer" (and therefore to "RTSPServer", which inherits from this). This allows a server to - at any time - check how many clients are currently accessing the server. * Updated the diagnostic output in "RTSPClient" to distinguish between opening a new TCP socket and connect()ing on a TCP socket. (The distinction is important for "REGISTER", which can reuse an existing TCP socket.) 2017.04.10: * Fixed a bug in "base64Decode()" that could be triggered if (1) your RTSP server is streaming RTP/RTCP-over-HTTP, and (2) the remote client sends bad Base64 data (containing an embedded '\0' character). (Thanks to Arkady Bernov for reporting this.) 2017.01.26: * Updated "ProxyServerMediaSession.cpp" to change all 'reset()' operations so that they are now run as a 'scheduled task' from the event loop - avoiding the possibility of bugs caused by 'reset()' being called while another operation is in progress. (Thanks to Erik Montnemery for reporting this issue, and proposing a fix.) 2016.11.28: * Our "RTSPClient" code now ignores "Connection: close" lines in the responses to HTTP "GET" requests (that are used to set up RTSP-over-HTTP tunneling). Because this tunneling requires that the (separate) input and output TCP connections remain intact, we assume that the server - if it includes such a line in the response to a HTTP "GET" - doesn't really mean it. (Thanks to Nguyen Viet Hung for reporting a server that does this.) 2016.11.17: * Fixed a bug in the handling of 'APP' RTCP subpackets. (Thanks to Frederik de Ruyck for reporting this.) * Fixed a bug in the "StreamReplicator" code. (Thanks to Bruno Abreu for reporting this.) 2016.11.06: * Increase the RTSP client's socket receive buffer when we'll be receiving RTP/RTCP-over-TCP, and increase the RTSP server's client connection socket send buffer when it's used to "REGISTER" a stream. 2016.11.03: * Fixed a bug (in the sending/ handling of the "REGISTER"/"DEREGISTER" commands) that had been accidentally introduced in version 2016.09.19. (Thanks to Ralf Globisch for noting this.) 2016.10.29: * Performed the annual update of the copyright years and license near the start of each file 2016.10.21: * Changed the "RTCPInstance error" message in "RTCP.cpp" to make it clear that the problem is caused by the remote endpoint using a buggy version of RTP/RTCP-over-TCP streaming. * Updated "QuickTimeFileSink" to make the various creation/modification times relative to January 1st 1904 in UTC (as Apple recommends), rather than in US Pacific Time.- Update to version 2016.10.11 2016.10.11: * After building the source code, we now display a message reminding the developer about our FAQ. 2016.09.22: * Added a new "liveMedia" class "MPEG2TransportStreamAccumulator" - a filter that can be used to combine several (by default, 7) MPEG Transport Stream 188-byte 'packets' into a larger chunk of data, more appropriate for streaming via RTP (or raw UDP). 2016.09.19: * Added support for an experimental RTSP "DEREGISTER" command, which undoes the effect of a "REGISTER" command. * Moved the REGISTER/DEREGISTER-specific functionality of "RTSPServer.cpp" into a new file "RTSPServerRegister.cpp", to make the base RTSP server code (in "RTSPServer.cpp") easier to comprehend. 2016.09.12: * Fixed "GenericMediaServer::createNewClientSessionWithId()" to make sure that the new 'client session' object (returned by a call to "createNewClientSession()") is not NULL before it tries to add it to the 'fClientSessions' table. (Thanks to Helmut Grohne for discovering this issue.) 2016.09.08: * Updated "RTSPClient::reset()" to reset each of the 'request queues' as well. (Thanks to Erik Montnemery for noting a problem (with the "LIVE555 Proxy Server") that this caused.) * Updated "GenericMediaServer::ClientConnection::closeSockets()" so that it doesn't try to call "closeSocket()" (=="close()") on socket numbers <0. 2016.09.05: * Fixed a problem whereby a 'delayed task' for a "MPEG2TransportStreamMultiplexor" object might have gotten run after such an object was deleted. (Thanks to Bruno Basilio for providing debugging output to help track this down.) * Updated "Socket::reset()" (in "groupsock/NetInterface.cpp") so that it doesn't try to call "closeSocket()" (=="close()") on socket numbers <0. * Added a comment to "UsageEnvironment/include/UsageEnvironment.hh" to note that "triggerEvent()" should not be called with the same 'event trigger id' from different threads. (This was already noted in a comment in "liveMedia/DeviceSource.cpp", but not in "UsageEnvironment/include/UsageEnvironment.hh", which is where "triggerEvent()" is defined.) 2016.08.27: * Fixed a problem whereby a "Medium" object's "nextTask()" (i.e., "fNextTask") could hold an invalid value after a 'scheduled task' has occurred (but before the next similar task is scheduled) - which causes problems should the "Medium" object be deleted during that window of time. (Thanks to Helmut Grohne for noting this problem.) * Added comments to "UsageEnvironment/include/UsageEnvironment.hh" to make it clear that "unscheduleDelayedTask()" (or "rescheduleDelayedTask()") must not be called on a 'scheduled task' after it has already occurred. (Thanks to Helmut Grohne for motivating this.) 2016.08.07: * Fixed a bug in the handling of the non-standard "com.ses.streamID:" header (used by 'SAT>IP' servers) that we had introduced in version 2016.01.12. (Thanks to Yaobing Deng for noting this.) 2016.07.19: * Fixed a bug in "RTSPServer" that could cause a crash if a "RTSPServer" object is deleted after having been used for RTSP-over-HTTP streaming. (Thanks to Pavel Aronov.) * Updated "RTSPClient" to recognize a "Connection: Close" header in a server's response. It handles this header by closing the RTSP TCP connection (because the server is assumed to not be using it again), so that we open a new TCP connection for any subsequent commands. (Thanks to Nathan (at MediaPortal) for this suggestion.) * Made a small optimization to "RTSPServer"s handling of the first "SETUP" command from each client. (Thanks to Maxim Dementiev for the suggestion.) 2016.06.26: * Added a new (public) function "canDeliverNewFrameImmediately()" to "MPEG2TransportStreamMultiplexor". This function may be used by a downstream reader to test whether the next call to "doGetNextFrame()" will deliver data immediately. It can be useful if you want to decide whether or not to keep accumulating multiple Transport Stream 'packets' into an outgoing RTP packet. (Thanks to Gilles Chanteperdrix for suggesting this.) * Made a minor syntactic change to "MediaTranscodingTable.hh" to eliminate compiler warnings. 2016.06.23: * Changed the constant "MAX_INPUT_ES_FRAME_SIZE" to a static member variable "MPEG2TransportStreamFromESSource::maxInputESFrameSize" that can, if desired, be increased at run time (before a "MPEG2TransportStreamFromESSource" object is created). (Thanks to Gilles Chanteperdrix for motivating this.) 2016.06.22: * Changed "~ProxyServerMediaSession()" so that it no longer deletes the "MediaTranscodingTable" object that it had been passed in its constructor. (The reason for this is that the same "MediaTranscodingTable" can be used by more than one "ProxyServerMediaSession".) * Made the "parseTransportHeaderForREGISTER()" function (that's used in the "RTSPServer" implementation) non-static, so that it can be used in other, non-RTSP server implementations that want to handle the "REGISTER" command. * Made the "RTPSink::SSRC()" function "public:" rather than "protected:". (Thanks to Jean-Luc Bonnet for this suggestion.) 2016.05.20: * Added a new virtual function "noteLiveness()" to the "ServerMediaSession" class. This function is called (by a "GenericMediaServer") whenever there's 'liveness' on a "ClientSession". The default implementation of this function is a 'noop', but subclasses can redefine it - e.g., if you want to remove long-unused "ServerMediaSession"s from the server. * Fixed a bug in the options handling for the command "live555ProxyServer" that could erroneously produce a "usage" error if the '-R' option is used, but no back-end "rtsp://" URL is given. 2016.05.18: * Backed out the change to "MultiFramedRTPSink" that was made in 2016.05.17; the 2016.05.16 version turned out to be correct. * Rearranged "#include"s to avoid an 'excessive #include nesting' error with some old compilers. 2016.05.17: * Made a (mostly inconsequential) fix to the previous bugfix for "MultiFramedRTPSink". 2016.05.16: * Fixed a bug in "MultiFramedRTPSink" that affected subclasses that redefine "frameSpecificHeaderSize()" (for frame-specific headers that precede multiple frames in a RTP packet). (Currently, the only subclass that this affected was "VorbisAudioRTPSink".) (Thanks to Gilles Chanteperdrix for reporting this bug.) * Made a minor update to the "ProxyServerMediaSession" code to better support optional media transcoding. 2016.04.21: * Made it easier to set the MTU for all outgoing RTP packets, instead of having to call "setPacketSizes()" after each "MultiFramedRTPSink" is created. If you wish, you can define the compile-time constants (macros) RTP_PAYLOAD_MAX_SIZE and (optionally) RTP_PAYLOAD_PREFERRED_SIZE when compiling "MultiFramedRTPSink.cpp". (These constants have default values of 1456 and 1000 respectively, just as before.) * Updated "GroupsockHelper.{hh,cpp}" to (supposedly) support 'MinGW' better 2016.04.01: * Fixed a bug the "ProxyServerMediaSubsession" code that could cause an infinite loop if the 'back-end' server was slow to respond to "SETUP" requests. (Thanks to Erik Montnemery for helping to debug this.) * Added support for parsing/streaming Matroska files that contain PCM audio tracks. (Thanks to Michel Promonet.) 2016.03.16: * Added some more debugging fprintf()s to the "ProxyServerMediaSubsession" code to try to track down a bug. * Simplified the "genMakefiles" script (moving duplicate code into a 'for' loop). 2016.03.14: * Updated the proxy server implementation to better handle 'front-end' clients that have asked to stream only some of the substreams of a multi-stream session. Now, if a substream is closed (because all 'front-end' clients have stopped requesting it), but other front-end clients are still streaming other substreams, then we will send - to the 'back-end' server - only a substream-specific "PAUSE" command; not a "PAUSE" command for the entire stream. (Thanks to Lakshmi Narayanan for noting this issue.) * Added an optional "-p " option to the "LIVE555 Proxy Server", to allow the user to specify a RTSP server port number other than the standard port numbers: 554 and 8554. (These standard port numbers are still tried if the specified port number can't be used.) (Thanks to Denis Genestier for this suggestion.) 2016.02.22: * Updated the "ProxyServerMediaSession" to add a Boolean virtual function "allowProxyingForSubsession()". By default, this always returns True. However, subclasses can redefine this if they wish to restrict which subsessions of a stream get proxied - e.g., if you want to proxy only video tracks. * Improved the "WAVAudioFileSource" code (for parsing WAV-format audio files) to make it more tolerant of unusual formats. * Made it possible to build a version of the "liveMedia" library that doesn't contain any RTSP server code; e.g., if you are developing only a RTSP client, and want to save space. To do this, omit any files that contain "Server" or "RTPSink" in their name, and define OMIT_REGISTER_HANDLING when compiling "RTSPClient.cpp". (Thanks to Jeff Shanab for this suggestion.) 2016.02.09: * Added an option "-E " to "openRTSP". (Thanks to Hans Maes for suggesting this.) 2016.02.08: * Fixed a bug that was causing "playSIP" to crash. (Thanks to Vilaysak Thipavong for reporting this.) 2016.01.29: * Updated "QuickTimeFileSink" to make it usable with non-RTP input sources. It still needs to have a "MediaSession" that describes the input source; however, this input source no longer needs to be RTP; it can, instead, be a UDP or other type of source. (Of course, audio/video synchronization and hint tracks can't be done in this case.) * Changed the name of a variable in the "Makefile.tail" file for the "BasicUsageEnvironment" project, in response to a complaint that the old name clashed with something in some Windows development environment 2016.01.24: * Updated "ProxyServerMediaSession.cpp" to add some 'internal error' debugging fprintf()s to try to catch a possible bug that was reported recently. 2016.01.20: * When a server calls "startStream()" to start a RTSP stream for a client, we now no longer make a slight adjustment to the RTP timestamp sequence (using the "presetNextTimestamp()" call) if there is already another ongoing stream using the same "RTPSink". The effect of this is only minor, but it ensures that the addition of an addition 'destination' to an ongoing RTSP/RTP stream does not cause any change to the contents of the RTP/RTCP packets. (Thanks to Erik Montnemery for noting this issue.) 2016.01.16: * This release has no source-code changes from the previous release. However, a test file was mistakenly left in the previous version; this produced an excessively-large tar file. This has now been removed. 2016.01.12: * Added a hack to "RTSPClient" to handle the non-standard "com.ses.streamID:" header - used by 'SAT>IP' servers - by using its value in the 'base URL' for subsequent requests. (Thanks to Julian Scheel for proposing this.) 2015.12.22: * Updated "QuickTimeFileSink" to add a sanity check to try to prevent an occasional problem with H.264 video tracks that contain 'sync frames'. * Updated the "config.linux-with-shared-libraries" configuration file to use the $(CC) and $(CXX) macros, to allow for cross-compiling. (Thanks to Michel Promonet.) * Updated the years in the copyright notice on each file. 2015.11.09: * Changed the "ProxyServerMediaSession" code once again. We backed out the changes in the previous two releases, and now respond to failures of the back-end "SETUP" or "PLAY" commands by doing a full reset - which involves deleting the "ProxyServerMediaSubsession" object, and doing another "DESCRIBE" to create a new one. However, we can't do this immediately - because the "SETUP" and "PLAY" commands can be sent from within "ProxyServerMediaSubsession::createNewStreamSource()". Instead, we wait until the next 'liveness' command, which will get sent immediately when we return to the event loop. * Our proxy server code no longer converts the "mode" string to lower case before passing it to "MPEG4GenericRTPSink::createNew()". (This turned out to be unnecessary, and was breaking some clients that weren't treating this string as case-insensitive when they saw it in the stream's SDP descriptor.) (Thanks to Craig Matsuura for noting this issue.) 2015.10.29: * Updated the fix in the previous revision to apply to the back-end "PLAY" command as well as the back-end "SETUP" command, because both of these back-end commands can get sent from within "ProxyServerMediaSubsession::createNewStreamSource()", so we can't allow the "ProxyServerMediaSubsession" object to get deleted in either case.- Update to version 2015.10.12: * The change that we made to the "ProxyServerMediaSession" code in version 2015.07.31 (to reset the proxy server's state if a back-end "SETUP" command fails) was too aggressive; it was deleting the "ProxyServerMediaSubsession" object. This was a problem, because "SETUP" commands can be called from within "ProxyServerMediaSubsession::createNewStreamSource()". Instead, we now deal with a failed back-end "SETUP" command simply by resetting the 'back-end' connection. (Thanks to Hardik Sangani for reporting this issue.) - 2015.09.24: * Fixed a bug in "RTSPClient" that could cause a crash if the TCP connection was lost while resending a RTSP command. (Thanks to ChaSeop Im for reporting this.) * Moved some more generic 'media server' functionality from "RTSPServer" to its parent class "GenericMediaServer". * Added a new pure virtual function "getRTPSinkandRTCP()" to "ServerMediaSubsession" to allow callers to get ('const') access to a stream's "RTPSink" and/or "RTCPInstance" (and thus their corresponding "Groupsock" objects) after the stream has been created (using "getStreamParameters()". * Updated "Groupsock" to allow for the possibility of there being more than one 'destRecord' for each sessionId. (This is something that doesn't happen in the normal case; it's only a special case for WebRTC.) - 2015.08.07: * If a "RTCPInstance" happens to have both a source and a sink (an unusual situation), we now include both "SR" and "RR" reports in each outgoing RTCP report packet. * When a "RTPSink" is being closed, we no longer turn off background reading on its 'groupsock' (because, being a "RTPSink", we never turned it on), just in case the 'groupsock' is also being shared with something else (e.g., a "RTPSource") that does background read handling). - 2015.08.06: * Fixed a bug that would cause the destruction of a "RTCPInstance" that was sharing a 'groupsock' with a "RTPSource" (i.e., for multiplexed RTP and RTCP) to stop the "RTPSource" from continuing to receive incoming RTP packets. This normally wasn't a major problem, because the destruction of the "RTCPInstance" was usually followed immediately by the destruction of the "RTPSource". However, it's also possible for the "RTPSource" to stay alive long after the "RTCPInstance" is deleted; in this case things will now work correctly. - 2015.07.31: * Fixed a minor memory leak in the "ProxyServerMediaSession" code ("PresentationTimeSessionNormalizer"s and "PresentationTimeSubsessionNormalizer"s weren't being deleted properly). (Thanks to Dnyanesh Gate for reporting this.) * Made the "ProxyServerMediaSession" code a bit more bullet-proof, by resetting the 'back-end' connection if a "SETUP" command fails. (Thanks to Craig Matsuura for providing a real-world example of "SETUP" failing.) * Fixed the 'estimated bitrate' values in "testMPEG1or2VideoReceiver.cpp" and "testMPEG2TransportReceiver.cpp" to match those in the corresponding "test*Streamer.cpp" files. (Thanks to Alex Anderson for reporting this.) - 2015.07.23: * Fixed a potential buffer overflow bug in "RTSPServer". (Thanks to "an anonymous researcher working with Beyond Security's SecuriTeam Secure Disclosure" for discovering this.) - 2015.07.19: * Fixed a bug in "RTPInterface::sendDataOverTCP()"; it was disabling transmission on its socket if the "send()" call failed. We now do this only if the error was not "EAGAIN". (Thanks to Erik Oomen for bringing this to our attention.) * Changed "QuickTimeFileSink" to try to work around an issue with QuickTime sometimes complaining about the frame number in the last 'sync frame' being 'out of range'. * Changed the parameter signature for "ProxyServerMediaSession::createNew()" (and the "ProxyServerMediaSession" constructor) to take a "GenericMediaServer*" rather than a "RTSPServer" as parameter. This makes it possible to create proxy servers that use protocols other than RTSP at the 'front-end'. (The 'back-end' protocol will still be RTSP, however.) * Defined a new class "MediaTranscodingTable" that can be used to generate "FramedFilter" (subclass) objects that perform media transcoding. Added a parameter of this type (with default value NULL) to the "ProxyServerMediaSession" constructor and "createNew()" function. This makes it possible to - if you wish - add transcoding functionality to a proxy server. (This feature is still experimental, and might be changed in the future.) * Added optional "initialPortNum" and "multiplexRTCPWithRTP" parameters to the "ProxyServerMediaSession" constructor - to be passed to the "ProxyServerMediaSubsession" objects that it creates. This allows subclasses to change these parameters if they wish. * Updated "ProxyServerMediaSession" to make it possible for subclasses to create subclasses of "Groupsock" and/or "RTCPInstance", if they wish. - 2015.06.25: * Changed the definition of the "doEventLoop()" "watchVariable" to make it 'volatile'. (Ditto for the "fTriggersAwaitingHandling" field in the "BasicTaskScheduler" implementation.) This is to alleviate a concern about aggressive optimizing compilers possibly generating incorrect code. (Thanks to Remi Denis-Courmont for bringing this issue to our attention.) - 2015.06.24: * Updated the implementation of "GenericMediaServer" to move the code that removes and deletes all "ClientConnection", "ClientSession", and "ServerMediaS(ubs)ession" objects from the "GenericMediaServer" destructor to a member function "cleanup()". This member function MUST be called from the destructor of any subclass of "GenericMediaServer". (Putting this code in the destructor of "GenericMediaServer" itself was a bug, because the "ClientConnection", "ClientSession", and "ServerMediaS(ubs)ession" objects may themselves have been subclassed, and there may be a problem deleting them after the "GenericMediaServer" subclass destructor has already been called. (Thanks to Christopher Benne for noting this.) * Fixed the way that "RTSPClient" handles responses to "GET_PARAMETER" to properly allow for possible additional pipelined responses appearing afterwards. (Thanks to Paul Clark for identifying this problem.) * Moved the "ClientSession" liveness checking/timeout mechanism from "RTSPServer" to its new abstract base class "GenericMediaServer". (The API and functionality of the "RTSPServer" class remains unchanged.) * Updated the "OnDemandServerMediaSubsession" code to make it possible for subclasses to create and use subclasses of "RTCPInstance". * Undid the change that we made to "RTSPClient.hh" in the previous version. There is no longer a demonstrated need to make "RTSPClient::connectToServer()" virtual. * Made a syntactic change to "MatroskaFile.cpp" to eliminate some compiler warnings. - 2015.06.21: * Updated "RTSPClient" to put "port=" rather than "client_port=" in "Transport:" headers when requesting a multicast stream, in accordance with RFC 2326. (Thanks to Julian Scheel for noting this.) * Updated "MultiFramedRTPSource" so that it doesn't deliver 0-length frames to the downstream object - in case the downstream object interprets this as being an error. (Thanks to Julian Scheel for the suggestion.) * Made the member function "RTSPClient::connectToServer()" virtual, in response to a request from a developer who wanted to reimplement this in their "RTSPClient" subclass. * Changed the "Groupsock::output()" function to no longer take a 'TTL' parameter. (Instead, we now use the TTL (usually 255) that was provided when the "Groupsock" object was created.) * Cleaned up the "GroupEId" class that's used by "Groupsock". (Previously, that class had some extra, experimental functionality that turned out not to be useful.) * Cleaned up the "destRecord" structure that's used in "Groupsock" to represent the (possibly multiple) destinations for each "Groupsock" object. * Updated the "groupsock" library and "OnDemandServerMediaSubsession" to better support (in some future release) sockets whose destination endpoints are set via STUN packet exchanges. - 2015.06.11: * Fixed a bug in "RTSPClient" that had accidentally been introduced in version - 2015.06.04 that prevented "Session:" headers from being included in some requests. - 2015.06.10: * Fixed the return type of the "createNewClientConnection()" virtual function, redefined in "RTSPServerSupportingHTTPStreaming". * More changes to satisfy anal-retentive compilers. * Removed the "DarwinInjector" code; that functionality has not been supported for some time. - 2015.06.09a: * More changes to supposedly satisfy anal-retentive compilers. - 2015.06.09: * Added some "friend" declarations to "GenericMediaServer.hh" and "RTSPServer.hh" in an attempt to placate an anal-retentive Windows compiler. (Issue reported by Deanna Earley.) - 2015.06.07: * Restructured the "RTSPServer" class into an abstract base class "GenericMediaServer" and a subclass "RTSPServer". This makes it possible to develop other kinds of media server that use the same "ServerMediaSession"/"ServerMediaSubsession" objects to represent the stream(s) that they serve, but using protocols other than RTSP. * Added a new virtual function "createGroupsock" to "OnDemandServerMediaSubsession". This makes it possible for subclasses of "OnDemandServerMediaSubsession" to automatically use subclasses of "Groupsock" (e.g., those that implement STUN/DTLS). * Moved the "ignoreSigPipeOnSocket()" function from "RTSPCommon.hh" ("liveMedia" library) to "GroupsockHelper.hh" ("groupsock" library), because the function is not specific to RTSP. - 2015.06.04: * Added optional support for including the RTSP "Speed:" header in "PLAY" requests. (Thanks to Sarma Kolavasi.) * Updated the implementation of "setResultErrMsg()" in "BasicUsageEnvironment" to work properly in Windows. (Thanks to Stas Tsymbalov.) - 2015.05.31: * Updated the "ProxyServerMediaSession" code to recover better if a back-end RTSP "PLAY" command fails (for whatever reason). Should this happen, we now reset the connection to the 'back-end' server. (This will cause the initial 'front-end' client connection (that caused the "PLAY" command to be sent) to fail, but subsequent 'front-end' client requests will now have a better chance of succeeding.) - 2015.05.28: * Fixed a bug in error reporting in the "groupsock" library. In a couple of places, we were using the result of "getResultMsg()" directly in a call to "setResultMsg()", but unfortunately those functions are implemented (at least in "BasicUsageEnvironment") using the same buffer. (Thanks to Stas Tsymbalov for reporting this.) * Updated the "MPEGVideoStreamFramer" class (and thereby its subclasses, including "H264VideoStreamFramer" to implement the "doStopGettingFrames()" virtual function by calling "flushInput()". This should fix a potential problem whereby these classes might not work correctly if the downstream reader calls "stopPlaying()", and then resumes reading. (Thanks to Stas Tsymbalov for bringing this issue to our attention.) - 2015.05.25: * Fixed a bug in "StreamReplicator::removeStreamReplica()": It should have been calling "deactivateStreamReplica()" * before* possibly deleting the "StreamReplicator" object (if this was the last replica, and "fDeleteWhenLastReplicaDies" was True). (Thanks to Stas Tsymbalov for reporting this.) * Fixed some potential problems with "StreamReplica" deactivation. (Thanks to Stas Tsymbalov.) * Updated the "RTSPServer" implementation to call "ignoreSigPipeOnSocket()" on 'client connection' sockets, rather than just on the main server socket. This is to ensure that the server doesn't get killed if a client - running on the same host - gets killed. (Note that, because of this fix, it should never be necessarily to set the "MSG_NOSIGNAL" flag on any of our calls to "send()".) - 2015.05.12: * Updated the previous revision to change the order in which fields are deleted in the "RTSPServer" destructor, to avoid a possible crash if "RTSPServer" objects are deleted. (Thanks to ChaSeop Im for noting the problem.) - 2015.05.03: * Updated the "RTSPServer" implementation to fix a bug in RTP/RTCP-over-TCP streaming. Before, if the "RTSPClientConnection" object closed before the "RTSPClientSession" object, and the TCP connection was also being used for RTP/RTCP-over-TCP streaming, then the streaming state (in the "RTSPClientSession") would stay alive, even though the TCP socket had closed (and the socket number possibly reused for a subsequent connection). This could cause a problem when the "RTSPClientSession" was later reclaimed (due to inactivity). Now, whenever a "RTSPClientConnection" object is closed (due to the RTSP TCP connection closing), we make sure that we also close any stream that had been using the same TCP connection for RTP/RTCP-over-TCP streaming. (Thanks to Kirill Zhegulev for noting this issue.) * Removed extraneous comments near the top of "testProgs/registerRTSPStream". - 2015.04.22: * Updated "config.iphone" and "config.iphone-simulator" to work with the latest Xcode. (Thanks to Braden Ackerman.) * Fixed a rare memory leak in "MultiFramedRTPSource" that might occur if it's reading an incoming packet over TCP - requiring >1 read for the packet - and the "MultiFramedRTPSource" gets closed or paused while this is happening. (Thanks to Kirill Zhegulev for noting this.) - 2015.04.16: * Added the "f" (force symbolic link) flag to the "ln" command in the "make install" Makefile rules, in case you're reinstalling the same version of a library. (Thanks to Luca Ceresoli for noting the need for this.) - 2015.04.15: * Removed the previous (20 kByte) hard-wired limitation in the size of incoming packets for "MultiFramedRTPSource". (Now, any size packet up to the maximum size of 65535 can be handled.) * Added a (u_int16_t) field "desiredMaxIncomingPacketSize" to "RTSPClient". If set to a value >0, then a "Blocksize:" header with this value (minus an allowance for IP, UDP, and RTP headers) will be sent with each "SETUP" request. (Thanks to Deanna Earley for noting the optional RTSP "Blocksize" header.) - 2015.04.01: * By default, "H264or5VideoStreamDiscreteFramer" sets "fPictureEndMarker" (and thus the RTP 'M' bit) if the NAL unit is VCL. Because this isn't always the right thing to do (e.g., if we're delivering multiple 'slice' NAL units per 'access unit' (picture)), we now move this test into a virtual function "H264or5VideoStreamDiscreteFramer::nalUnitEndsAccessUnit()". If desired, you can implement a subclass that redefines this virtual function. (Thanks to Chris Richardson for bringing this issue to our attention.) * Made a minor syntactic change to "ProxyServerMediaSubsession.cpp" to ensure that it compiles with some old versions of VC++. - 2015.03.19: * Updated the "RTSPClient" code for handling a "WWW-Authenticate:" header in a "401 Unauthorized" response. We now check for the "stale=TRUE" parameter. If it's set, then we resend the command, even if we already handled an earlier "WWW-Authenticate:" header. (Thanks to Deanna Earley for noting the need to handle "stale=TRUE".) - 2015.03.16: * Made a small change to the "BasicTaskScheduler" implementation to reduce the likelihood of a race condition with external thread(s) calling "triggerEvent()". - 2015.03.06a: * Oops - forgot to add '\0'-termination to the previous fix. - 2015.03.06: * Updated "RTSPClient" to decode %-encoded characters, should they appear in the and/or fields in a "rtsp://" URL. (Thanks to Deanna Earley for suggesting this.) - 2015.03.01: * Updated the "H264or5VideoRTPSink" implementation to make sure that any stale fragmented data is flushed (discarded) if a server's stream is paused. This ensures that - after we resume from the pause - that we never stream data with old presentation times. (Thanks to Gilles Chanteperdrix for discovering and reporting this issue.) - 2015.02.26: * Fixed a bug in "ProxyServerMediaSubsession" that could cause a crash if the parent "ProxyServerMediaSession" object is removed from the RTSP server and deleted. (Thanks to Sergio ? for first reporting this problem. Thanks to Chiung Ikhwan for discovering the source of the bug.) - 2015.02.23: * Fixed a bug in "OnDemandServerMediaSubsession::getCurrentNPT()". (Thanks to Gilles Chanteperdrix for noting this.) - 2015.02.17: * Latest version of the "LIVE555 Streaming Media" code (reinstalled due to a server crash). - 2015.02.13: * Oops - removed the "#define DEBUG" that had inadvertently been left in "RTCP.cpp" in the previous version. - 2015.02.12: * Updated the previous release of "RTCP.cpp" to ensure that it will compile for Windows. - 2015.02.10: * Added experimental support for sending RTCP "APP" packets, and handling incoming RTCP "APP" packets. (Thanks to Nick Ogden for suggesting this, and providing an example implementation.) - 2015.02.05: * Made the "ProxyServerMediaSession" code a bit more 'bulletproof'. - 2015.02.04: * Fixed a bug in "DigestAuthentication" that could cause the proxy server code to crash if it was given a username and password for its 'back end' server. (Thanks to Sergio Andrade for reporting this.) * Fixed a minor bug in "MatroskaFileParser". * Did some syntactic cleanup on a few files to avoid compiler warnings with the newest version of "gcc".- fixed paths in live555.pc - update to version 2015.01.27: * Fixed a bug in "MPEG2TransportStreamFromESSource" that could sometimes cause an abort if more than one Elementary Stream Source were multiplexed into a single Transport Stream. (Thanks to Marc Palau for reporting this issue.) - version 2015.01.19: * Fixed an obscure bug in "RTSPClient" that might conceivably have caused a crash if it received a completely empty RTSP response. - version 2015.01.04: * Updated "config.iphone-simulator" to work with the latest Xcode. (Thanks to Braden Ackerman.) * In the "BasicUsageEnvironment" implementation, renamed "EventTime" to "_EventTime" to avoid a reported naming conflict. - version 2014.12.17: * Updated "RTSPServerSupportingHTTPStreaming" to make sure that the data stream source gets closed when it's no longer needed. - version 2014.12.16: * Changed the FD_SETSIZE check (introduced in version 2014.12.11) so that it's not done in Windows (because in Windows, FD_SETSIZE has different semantics). (Thanks to Deanna Earley for reporting this.) - version 2014.12.13: * Updated the H.264/H.265 parsing code in "H264or5VideoStreamFramer" to be a little smarter about how it computes a file's frame rate (when streaming a 'raw' H.264 or H.265 file). (Thanks to Michel Promonet for inspiring this.) * Updated "config.iphoneos" to work with the latest Xcode. (Thanks to Braden Ackerman.) - version 2014.12.11: * Changed our implementation of "setBackgroundHandling()" and "moveBackgroundHandling()" in "BasicTaskScheduler" to check for (and disallow) socket numbers >= FD_SETSIZE, because has a bug (at least, in most systems) that causes buffer overflow in this case. (Thanks to Michel Promonet for pointing this out.) - version 2014.12.09: * Needed to make the "QuickTimeFileSink" constructor and destructor protected: to allow subclassing. - version 2014.12.08: * Fixed a bug in parsing 'absolute' RTSP "Range:" headers with no end time. (Thanks to Ken Chow for reporting this.) * Added a new option "-K" to "openRTSP, to tell the client to periodically send "OPTIONS" requests as 'keep-alives' for buggy servers that don't use incoming RTCP "RR" packets to indicate client liveness. (Thanks to Peter Schlaile for this suggestion.) * Added a new 'protected' virtual member function "noteRecordedFrame()" to "QuickTimeFileSink". This function is called whenever a frame is recorded to the output file. The default implementation of this virtual function does nothing, but subclasses can redefine it if they wish. - version 2014.11.28: * When "RTSPClient" parses a RTSP response, we first skip over any blank lines that may be at the start of the response. This can happen if the previous response (e.g., to a "DESCRIBE") contained extra whitespace. (Thanks to ilwoo Nam for giving an example of a server that exhibited this behavior.) - version 2014.11.12: * We had forgotten to initialize the "RTSPClient" member variable "fAllowBasicAuthentication" that we introduced in the previous version. - version 2014.11.07: * Added a new "RTSPClient" member function "disallowBasicAuthentication()" that you can call if you don't want a RTSP client to perform 'basic' authentication (whcih involves sending the username and password over the network), even if the server asks for this. (Thanks to Tomasz Pala for this suggestion.) * Updated the debugging printout code in "RTCP.cpp" to identify all known RTCP payload types, even if we don't currently handle them. We also - when doing debugging printout - parse and print out the contents of SDES RTCP packets. - version 2014.11.01: * Updated "RTSPClient" so that it reuses "fCurrentAuthenticator" if we previously updated it with data from a "WWW-Authenticate:" response, even if a non_NULL "authenticator" parameter was passed as a parameter to the command. This reduces the number of authetication exchanges that take place if the server asks for authentication on more than one command in a RTSP session. (Thanks to Tomasz Pala for this suggestion.) * Updated "DigestAuthenticator" to allow for the possibility of "username" or "password" being NULL. * Updated the "RTSPServer" implementation to add an access check before the first "SETUP" (the one that doesn't include a session id), because it's possible, in principle, for a client to send such a "SETUP" without first sending a "DESCRIBE". Therefore, we need to perform access checks on both commands. - version 2014.10.28: * Added support for the VP9 video RTP payload format (sending and receiving), including the demultiplexing and streaming of a VP9 video track from a Matroska-format file. * Made "VP8VideoRTPSource" more robust against a bad first-byte header field in the payload. - version 2014.10.21: * Increased the max output packet size for "MultiFramedRTPSink" and "RTCPInstance" from 1448 to 1456, because we had a report of problems when proxying incoming JPEG/RTP packets of this size (and because 1456 bytes still gives a packet size of no more than 1500 bytes when we add in IP, UDP, and UMTP headers). - version 2014.10.20: * Increased the RTSP request and response buffer sizes from 10000 to 20000 bytes, because we saw a RTSP stream (VP8 video) that had an extremely large "configuration=" string that was hiting the previous limit. - version 2014.10.16: * Fixed the "RTSPServer" implementation to handle a rare race condition that could cause a "ServerMediaSession" object to be deleted while it was being used to implement "DESCRIBE". (Thanks to Michel Promonet for reporting this.) - version 2014.10.07: * Fixed a bug in the "MultiFramedRTPSource" implementation where we weren't properly checking the size of incoming RTP packets that have the "CC" field (i.e., number of "CSRC" fields) non-zero. * Updated "Groupsock::output()" to be a virtual function. (This makes it possible to implement "Groupsock" subclasses that implement 'bump-in-the-stack' protocols (such as SRT(C)P) below RTP/RTCP.) - version 2014.10.03: * Fixed a problem in the "timestampString()" routine that occurs if "time_t" is 64 bits, but we're on a 32-bit machine. (Thanks to Deanna Earley for reporting this.) * Updated the debugging output code in "RTCP.cpp" to make it clearer that SDES and APP packets are not invalid; just not (yet) handled by us.- BuildRequire pkg-config to get rpm Provides/Requires pkgconfig(live555)s390p22 1624284783  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~2021.05.22-bp153.2.3.12021.05.22-bp153.2.3.12021.05.22BasicUsageEnvironmentBasicHashTable.hhBasicUsageEnvironment.hhBasicUsageEnvironment0.hhBasicUsageEnvironment_version.hhDelayQueue.hhHandlerSet.hhUsageEnvironmentBoolean.hhHashTable.hhUsageEnvironment.hhUsageEnvironment_version.hhstrDup.hhgroupsockGroupEId.hhGroupsock.hhGroupsockHelper.hhIOHandlers.hhNetAddress.hhNetCommon.hNetInterface.hhgroupsock_version.hhliveMediaAC3AudioFileServerMediaSubsession.hhAC3AudioRTPSink.hhAC3AudioRTPSource.hhAC3AudioStreamFramer.hhADTSAudioFileServerMediaSubsession.hhADTSAudioFileSource.hhADTSAudioStreamDiscreteFramer.hhAMRAudioFileServerMediaSubsession.hhAMRAudioFileSink.hhAMRAudioFileSource.hhAMRAudioRTPSink.hhAMRAudioRTPSource.hhAMRAudioSource.hhAVIFileSink.hhAudioInputDevice.hhAudioRTPSink.hhBase64.hhBasicUDPSink.hhBasicUDPSource.hhBitVector.hhByteStreamFileSource.hhByteStreamMemoryBufferSource.hhByteStreamMultiFileSource.hhDVVideoFileServerMediaSubsession.hhDVVideoRTPSink.hhDVVideoRTPSource.hhDVVideoStreamFramer.hhDeviceSource.hhDigestAuthentication.hhFileServerMediaSubsession.hhFileSink.hhFramedFileSource.hhFramedFilter.hhFramedSource.hhGSMAudioRTPSink.hhGenericMediaServer.hhH261VideoRTPSource.hhH263plusVideoFileServerMediaSubsession.hhH263plusVideoRTPSink.hhH263plusVideoRTPSource.hhH263plusVideoStreamFramer.hhH264VideoFileServerMediaSubsession.hhH264VideoFileSink.hhH264VideoRTPSink.hhH264VideoRTPSource.hhH264VideoStreamDiscreteFramer.hhH264VideoStreamFramer.hhH264or5VideoFileSink.hhH264or5VideoRTPSink.hhH264or5VideoStreamDiscreteFramer.hhH264or5VideoStreamFramer.hhH265VideoFileServerMediaSubsession.hhH265VideoFileSink.hhH265VideoRTPSink.hhH265VideoRTPSource.hhH265VideoStreamDiscreteFramer.hhH265VideoStreamFramer.hhHLSSegmenter.hhHMAC_SHA1.hhHMAC_hash.hhInputFile.hhJPEG2000VideoRTPSink.hhJPEG2000VideoRTPSource.hhJPEGVideoRTPSink.hhJPEGVideoRTPSource.hhJPEGVideoSource.hhLocale.hhMIKEY.hhMP3ADU.hhMP3ADURTPSink.hhMP3ADURTPSource.hhMP3ADUTranscoder.hhMP3ADUinterleaving.hhMP3AudioFileServerMediaSubsession.hhMP3FileSource.hhMP3Transcoder.hhMPEG1or2AudioRTPSink.hhMPEG1or2AudioRTPSource.hhMPEG1or2AudioStreamFramer.hhMPEG1or2Demux.hhMPEG1or2DemuxedElementaryStream.hhMPEG1or2DemuxedServerMediaSubsession.hhMPEG1or2FileServerDemux.hhMPEG1or2VideoFileServerMediaSubsession.hhMPEG1or2VideoRTPSink.hhMPEG1or2VideoRTPSource.hhMPEG1or2VideoStreamDiscreteFramer.hhMPEG1or2VideoStreamFramer.hhMPEG2IndexFromTransportStream.hhMPEG2TransportFileServerMediaSubsession.hhMPEG2TransportStreamAccumulator.hhMPEG2TransportStreamDemux.hhMPEG2TransportStreamFramer.hhMPEG2TransportStreamFromESSource.hhMPEG2TransportStreamFromPESSource.hhMPEG2TransportStreamIndexFile.hhMPEG2TransportStreamMultiplexor.hhMPEG2TransportStreamTrickModeFilter.hhMPEG2TransportUDPServerMediaSubsession.hhMPEG4ESVideoRTPSink.hhMPEG4ESVideoRTPSource.hhMPEG4GenericRTPSink.hhMPEG4GenericRTPSource.hhMPEG4LATMAudioRTPSink.hhMPEG4LATMAudioRTPSource.hhMPEG4VideoFileServerMediaSubsession.hhMPEG4VideoStreamDiscreteFramer.hhMPEG4VideoStreamFramer.hhMPEGVideoStreamFramer.hhMatroskaFile.hhMatroskaFileServerDemux.hhMedia.hhMediaSession.hhMediaSink.hhMediaSource.hhMediaTranscodingTable.hhMultiFramedRTPSink.hhMultiFramedRTPSource.hhOggFile.hhOggFileServerDemux.hhOggFileSink.hhOnDemandServerMediaSubsession.hhOutputFile.hhPassiveServerMediaSubsession.hhProxyServerMediaSession.hhQCELPAudioRTPSource.hhQuickTimeFileSink.hhQuickTimeGenericRTPSource.hhRTCP.hhRTPInterface.hhRTPSink.hhRTPSource.hhRTSPClient.hhRTSPCommon.hhRTSPRegisterSender.hhRTSPServer.hhRawVideoFrameParameters.hhRawVideoRTPSink.hhRawVideoRTPSource.hhSIPClient.hhSRTPCryptographicContext.hhServerMediaSession.hhSimpleRTPSink.hhSimpleRTPSource.hhStreamReplicator.hhT140TextRTPSink.hhTLSState.hhTextRTPSink.hhTheoraVideoRTPSink.hhTheoraVideoRTPSource.hhVP8VideoRTPSink.hhVP8VideoRTPSource.hhVP9VideoRTPSink.hhVP9VideoRTPSource.hhVideoRTPSink.hhVorbisAudioRTPSink.hhVorbisAudioRTPSource.hhWAVAudioFileServerMediaSubsession.hhWAVAudioFileSource.hhliveMedia.hhliveMedia_version.hhourMD5.hhuLawAudioFilter.hhlibBasicUsageEnvironment.solibUsageEnvironment.solibgroupsock.solibliveMedia.solive555.pclive555-develCOPYING/usr/include//usr/include/BasicUsageEnvironment//usr/include/UsageEnvironment//usr/include/groupsock//usr/include/liveMedia//usr/lib64//usr/lib64/pkgconfig//usr/share/licenses//usr/share/licenses/live555-devel/-fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protectionobs://build.opensuse.org/openSUSE:Maintenance:16545/openSUSE_Backports_SLE-15-SP3_Update/30d970e27cad45f2dd27a5decc8dd04f-live555.openSUSE_Backports_SLE-15-SP3_Updatecpioxz5s390x-suse-linuxdirectoryC++ source, ASCII textC source, ASCII textpkgconfig fileASCII textPRg$iutf-82b8fa6049d775dc5f48b1cd99f53576f85b477c40e45a739a295148da5909866? 7zXZ !t/`] crt:bLL ࠰&,}-+:+ɘMF¦ & ]Joߩ'I;Ȉi &tGBOGYXs8*\m@S؟y3 L 5!a,7 i7lIpVZγ,MXhf#h`NB=J2l3'w~CCOk_S} @=C+V$-ׂ/&AG)ІCi "m g3"riVe@O '|X@YaUF _e ^^V _[B@„uEq0kahP %o*M(Ҧ-0jC@Z*&|4:հ.xb^{,ҰVN2ЩJQ&{÷4%5^ 2 rXyspwIպ>)E8ytneƭB0@ R?K5VxBu28 42CRhFe_QZF*E {e"(鍭|mR]E#+u\_::2|agnܥu1z ךMcw0L6l{oXQ;k J')VۅqEOU)\tt٬@$dXQűY+ڑ{@qDn0ȭջ=cK-?^03YBѢ~)>$ sܥ)~AJ~Kq%쏉S8$NK G,l s_rGux'V5XLӍNMB'_/ .>0iаNxx;ByrAT9S -Ǹp9ULTH< r-@&XC~4R ioֵ ?s/; aTe)Z"\E>&V#gww_]M1d8Q`BGe KXa`::y~]@/ :citSw/_{,2HՀ(s>Uh]mI(x^3<ž@vInT0OJ|0 ?Jߑ6Ksӽ V0ف'3%W1VMH^5#V6FSojX2@űVvA]lcr:6iy̼)3O** Qjz̢?[ԳSR?;Ju1u R?<8h%cEb>Fl+/ ,fv#L$%]E lò;ǹ*U2L^zۓ[C[˴+7*RĸR!L$MٚSP @sx_rLt}߲{O~vh%q>#]Sh̴Th/5u> ǏAb5}g*g!7Ԁ"0⾴4~)ّ0&^G`93`Δ FP%*O\/{(=ɶa*ccCTH"9(PziO$SbgLOٳɣ renQi߹Π%z'JXf6d]8 $ǂ!WAɚcC^  ˼A􌂀Eui K '{roFl䨕Hpg͞?;x\]|& ]%U‚(<@ JP($ecǜ:V􅆿ftu^>;ĉB)o&ahKQOd4.%u3Yp6Iti06>O>DT {U6qZN9tbjGRXQn{NZJ E穲'y{nƮU&z}2oh ^ԍy,҅_zDdF.'t@F){I)>"nDdn}v݄cqX[8qKR~MVeb*lVàB Kl *ӆ@߫Z.PaH "[22J*A€S}Pb_0`HʙaP5νw&#aBM4Va% =r%ԙ},ҌDMhYE>1 N̖I\k#rZe0?Ӿ}}FbB;CN0ss޻&l*͌o*.o 7Rt/_]].4Bw)SרNjC u7+MzvJ6+Ny]"fӀ$h&/z,VfJ.$[L~\@oDڙ޿_Zk9! f簒de5za?ܕ6ÕY@XY[:Sey[&;5-O16WKٹmģ3U_ьѱ vB hY|O?rNj[ qf,= `z~Bk p8D"c#o Okpe %6Al8^n]>0~=*m5IJѻ`Jw)MF.fuω@iKnqTV\~<c|>2tZ $@i>80$`³C WA&3$hKC?=tֳx\$+g tn꛱S=;T7FiR߰pZjW>+PI.X;rN@O2fSG]7!;33KSh y4ÊA!<ThH P6 C Ss{xfo!B ?l3@8>ay\D"eۖ1 +Zc}DEΙ*vxZ$FvmrD1k؜Q)3> : {q mP[g-bo]GWh Qͽ1H{mԆXth%ܺ~>RC5"rg]?t#ɥL_b;yS86񂅹3o;d{xeE&n<>%t^f~8˺ᚥ8! ϯ,.a L3(Ц%^ cI'CNuE`h@pIet M-#53h&," 6X˩D $YBr52We##W( 3մ,6ؖ(֔>ik.c[/L*v &8->Goa1}%Ł ABL&22wFD=+xd0*$:#緻=6rQ&LM "b&yC6m{wsiWw8w}hu:7.Ahs3GD%쿚#E5ɳt/s`S Z|d\ZBB͒pKW(|(zaGD+ЂCnްjDU°$-OK$ A-*qҙC5-:^ ȂO!߹վQplg $)1}R [άcaV-#agG2x߲?nvA 6ND,2Y!|nPFRXU%W;Dpfi[eI ^[""`3ӵ2=aRJJ,D0_켟ږH= Nhp"=*{MMr7 ~%Q2ӯ(س.f@R_e98'1Ȳ\ڼlE!KUW˧MY%h]v|g;.@y[f4 K룤Ai&`3*H B>Pu{1'ZF8_{> ?@3|ɩ+TAz.Z^ًCV5>Ye_aLMJDyX5·pƾy7hN"(=Tz=`llôWDYCmb$2}៭7c})b7$hoͼ_ł4x5.4*ˉQd8eAd-飠 C*,?f连1B? [̎Sa!0RX\A?Xs&XYcT:Mu~HB֎i+OjPHŧ2JޱO@RJDTd_(E/ W}UJ{:\,U*NlQ%0}F Tm?xȎ0GʺZ(\X~h+co*[3/mrlW\|Fov ȞFw]Mc =ZKpâmؔт5 P)Y%oN>0'LIx"2s|P?>cS7 [ ˈ_ j)fh_6OFhLyE>(X%S#"?l$ Bks' Jy_LubM3aWWԅ})<4C?;iؑ~4..xWT0 f(N $#ɡX~q%T _M_;,P|C>D.4,|"ʥh07Z '׸bN8|NY:? $}^CNny"DJԬkoє JD-\!V-P;bܠm)ZvwDg\?>zӎ|@/(B)܈ X1:G'Zgߞ,spט#8ErW{UΤ!" MݮO=Cb6jm=dʴG2R Nim6(2^LtUNHMkoFu:@G.r~M{q&|-S S/a oTіm?Ï3ziS )PyƏn-~D򅿧d_5ÈW>fě?mdvm ,C$} :,0/9 K_3ae_̱YhrTfSj|0˒-iK>|NyWۦ$t< tWH]S`5U2(I`6 XuZAQWVv.~1 AB?ncGɁdJȥ q8{_Q4k2a.JnZbB.jJk=ffs(?7sBF\"7*->1 ,2ja< ko#b{|[2oBS3WʢnKs KS?xsY ތhz`=e@0Y鄔0JOil+_|n|GDtD}֖UkZID(F)Cʖ{Iqo'F~7[vVl-oR0ge}sٴ@@ɐ"~때p&.cQ#!֎NWQJ&RFc$i:hl TTv_e\m+BRV#I t3ߪ5,$8+zm~M[J_@NسEt]lb3 H&S,{cvn#Fo Lrc7>C%CfR=Y}v: Ǹ6^)9V߲L6 7F-17ݚ"|#©άk֛AH h:g+[zZ#Ưt 1jU$י% b\0YtFf9+9}L/ĒWp*/Dh^QPi> 0:, h2veT6p,d~xs R+UB,Np ,5opjLMbXcQh2Qisߛ:rs=vYAڇ؉2N/k8P7>9VXŖ+]yECݺ(Z@je[0/lPHn{Q'MTA)V'.|-ژQ=DZS}-8}:A^CPsYV)պA-•q~hO#w XPepB^l^< h"5J;E *}rA1qxFݶ3֞ 1@Nc\_|>e7Nb8x\|#,7(Hh?)VXO) /Z(*A40$BfdGT?9F-$),}&Do+"%hSTr]u9*p8\#8.39ɀE0G_c-XB|m]_/GY!朙\; v2Q$k 0^ش9.rlȨU{OQ f)@\. z\GEҒpҬM=gx{ZąkQLbxT7 FH\_{n/ȒE6I N@u%f?5 !~#Z 7E n.1L^yd4}T2{|;?Hq8ǚD  S% #B:?"tg3t(zbl,hAu W-7'Pf8b2sE dwU7:7`Q8xY+&{5#ȱ6v3P?Yq @M+߁\pZBAׅI6ޫB\Hjl=},3fl S A1yd~y7h[Fx*0*+@*ޞ%A1H'nml.LGf>Kbk` WX.tk`lˑ`|^kV&2]C$$ ;chZKyO*mJכuR=1"}yfmv'LweK[檩PVO+'3/ҾS[*~^ P |F{8鏖̶^Ăo Eklj`M:lռ1D s.&;V@I-X*8Cחc&pÞ3ܦͼX 45`F|8 J@$,cDR5QgS`2#hoq7 <փ`wkAFGs2m ' A^¸D!k::ۄR\|qa^Nj,JUVm8,KNuilcB6z,ߧi\E-ߥblΧPߌΚ~ir+f^d&ppю($=G T8+ؚx !9^'{}AMJ8 '%Gټ Z3&YC-9ҿ% P栀[x2ceh&E뉯VۢIHoP Jls >Pv5K~ 2NA)93k/N ~f|ܝ./ۓxUm:}+j#QW2Ʌ$o5TG!Mm ĈLdtSR0>#(u_Iv ZgR7oʣ{*{r2>U,뫖(-F92n&QhanN36+JKV\WMyzld0(S ~w`D!0.@-3CfLImO4܃nua/-GΑSGFi$eL""weO:4 C+[őikKdC^+4tƿŅEdNOzɌ7$1t 3|}UC ;)Uuk V~\RyWdƒQgF]Ɣ6LSbۏ e9yIWqp= 7/4B0FR\6k<6N{ z@/=~u˴~fp2ыW7M@3[5Rnډ CTJwq\ڭ _Oi惧٭zĶQ|b T ѮB h>w9BTm W|b.G4Y\0P.E=G?'N7'i-$$֘rB#"q1ւȈfu RnAH^_}et,y3rls;D-vr?u :l1o HDY7U1?Z_l>VF Dj.+ a>G<5ab|,R¨{0n9rY,/婼iا469IgDVpj(22֝fTZ4Kt2n\-[|kM>!gSO;kam~e?2~䭠%Sff|oߠ\ETzrO 긂TrQꖒajh̙|ְ(şcr"ekmU+~,oIJdhF-V!v8GW*rQl.WE,H$0؜yE|n AuԾ-0-_Zpvxz4Žѳ6cۆ|m&{¦m.\S- ]k~cr)I}EKerߒK8=V2l8@~}eE"ոt"%"<$uj)9AK, prMZҔUIՎ+ŠwB">Bo?9QP`#'. IP6yXA/aXwO߼'0PW"$m/o\[)D;gCiŘ.v8,q~%0qU09#vmF} O[$zJԩ7^{x5DוV]ngcm&_AW8EQ!s.WxMƲ /$\V`a+DʡϰzRˑؑ>&, g<+H:{d:;?3!T֠v~㰓>,>If4s)|csp nS5R00лN]P_5pOs}2ԈTL?%P=B]P|EUvR_gL}~W'= _ސͺ)U(K)N&0!u@X ywJ% qa kVBϩT~W<ֵ!`oԃ;ɏcwm*,F໏]Ȇm.Qe E#i["Z;ƶpgY=oPBK`U@|tNO?L-쒮6S]+5TQ%$ HWF[7 %0I7=@l&n|kκdh01ъ 6518`3$#JRRTjXwóo/]WxvQ6L :4:;)p($>әUwdhD=ԮŸ[_P1`,e?@ojL(ZN9n;p֏chDҊ3HKI}U ͙q=|0b Qr?"fgjLkp?`hСAN۬Uvvp:HPr 0" T\>[*py97ђt3֬!4C BU"¡[ D۶d34" Hs9{IpvjL #0Q&5Dd=ȣYaxb,d5`N\j˜Sh쇓-gP=݄{iPL #},epQ;C6M2Q3e7fJrX{*=|xɐo>p$_{Y-RYJ)0|Vn*qp`ˠ"$\+T)A ԗ &vxafɐ2ȨVHuHMb;aqWӌۆv hX(5R<ž>CEC (]5 ezw.hӅUԱ+KlPO疙>K:}O* v{Y_kV&1似͚bGC s{*m;~)9q#iLkTnEL1^U!p>,gX pJ٥ HU^WF\.%x<Ek ǺXKn4H!F/ܧ O5d_F 6nKr| ;"V6nKFV:Zu`dy%{?2,3٤OB9`M } *v{% n wEƎ3.5Tʩ Ѻ6C6SaG<7͚[@Jl˪oES}DF5 M$C3 rZsJbH\LNC`؝4ǪOKDuvt9&RQ4 t-pX#ARGJIo1&6eBPx m;m~FֿNyXbל>3H%D(F?0s/'θ+@^{M,:p9OG^NE}p}coɩ(JKhO[.s;,^^ &"nYS&`|5cŃ&etmzfƸ5zXa qPURC>,5N604"1oLr3LZ}=, #w K(zQcmnڶһң|:ǍwZ&0q3Ay79dںz:=FȗpJu,'% MalyRrcb"*_=~7 _rϝFGmd]%ϫLL2,G)(Poٿm; ]ȮlCv QV*Q 'zu A"c[+*V>DGM]pD:ޏX|XT0m5m]SNb4{cCNj5 IR)6LfNod ҹZ~ҫ%~Ji!6oI*^dp|Tx^]cDilKQ!Wt߆jJOXjj|ݺK(QE\ 0k|IkqNx&h!B$] \*s)|ХO ' iT 09>99߱ n%.Ρ3̝eELi4"=V*4JHtu^9M-?pZ}3@XE8)5; Eȫ f{6nب\le6ഩc{u(-dAbg@B5SUU2aj.7,OjX;3(w^ ; 1 (5XU3T!$b XFl,9\4܂<*h|>ֶ+Qe´?A?Kz9މdi?SzF~>,yjO6߈ C`qLv$uUS`A7*3y.suo؆-JI:1iYmù="$W[~j@m>7{T]XBsk?/|Ԥ:#kĨxs g8k!M١8E% zcPMy(PbSˡqqMJ }-MZܴ (M1bgz 4[2~u4ྐྵirHCͭeq 1 D9poE:4$5R<Aͽ @ u/~P'&rřLx2m2ʡvC.Vk:',&‹|OI?]L7&'Q߫ l{^w|Hڠ9i35!9990-?p@B },{#8\Ԋ[wKhH8,(^yyhti$\nb)K~y!H~+ WX9 GilG3RlaYsW 8K+ W""O~vꨣ/puF\Es`D8>R+Fb[zX%>< 6Vdz9afF$EXwFF׏vug/=WVq#/"рB\滜O*OlQ~EDQ.ax@71ش"{v?`BN GRU ؽZ)? 6 )A S}6#yͅK'%& C^19/ [1tYA {lES6'{LӤ}|U9Bf)Xe*_Ɩť\9 2t;D5/?90`$"DVW$m coسxϖL&,)47m r1Ϯ҂ggЂU9ߘ_zx{Gok!4B/ʕC vFǯG#ݼR=thK}B7nekjI茰 mZya큉{FL$_0iPڏ-2B9ɷY)i6xy!u[l\ 5B z 2^F\$ɴ4ḛ4lf>WDpQfP,Ħ^U ]ʘ ;6anډLã^BhoelΗe %ҋ$;ۀ BVv?VtLJ>k[k1n~CHaޡo[Ќ.6S<&Ea) ]uuu@h H KA17C=@Ź&C&a߲ՖwkԢe;NoS'YR2 l0yzICqämd~݀f*EypvV2U* 08ΓTwăzPz$cL_ȨSyOګ$s7HT +RfHHqY &8SC! {:4@zTw1 } &}.>p~=`oc2D0s|g:'u,:BT%\ktƌ-.h S4vG/o>g.} Ù%fnFoTD^2J);݈߫aeT,iXc>Oe!^@ eN)@~]/k15A@{K6*>jQe!+>1hn,O6SY^ 0TpƜwH *xzAoEfJ[<*R:IoAj;&P &cQ ˫ h' 3h@O^T̏InZN80A?xwV#j=oLsH%ssH 4Ԥyw1rJl=鮘bi&lKY2lϦ,,GZ@ఃk )47;,bBeB8@fdP}]*.腣mܼ%&E/eLS ɌPG*+XHhkXb;9Cx=;̘Su;yD+%gr^޹uwY3 OAYpD S]a܂~ƅ%}}[ ?hFZ9U_r,Zo'&t|+9J|*LY|7(WbFN꯲ ˴ ;Q]_=n oL.pPY?:[VJMڅi&)HHd/}A8A CQ L(YŐlIЙ!7\.rS%ZItT+͛t ~ @FbofIHk90yqƒ|%9RKqWucwx׆:LAB7U^ I|UU$J2"Vv1rm7MB9@\qCM/2FLͪjdPQFK[.r⩕ $Nbx ДտSSz /,jxF[olw2/f|V9S[M U}xkU6 Y0. #>o ,X38v7Dhpo~l8\*U륟F[]>+ V@GG5-aJct|+\LY|Q)_."_lڋ"NJFG[rHw>(+>OE2n} !;sjx0nj0K`_⾶Q3!z[p]\Jf3CR|pĨIV~9Ҩc-R+&W@!Ğ3%ަ/MUW9[QMN{.0v9.fKDo5(h7BBo-Wix؜  㷱eyv5݁S 'aq=HWQN6=p$0ϐ^ҁDvϔ._x´E ڜV `6Jqtvc:*,.q:wүMF7 @UqrZlwQQ@J_#d?GrOIPKR M~$ඦl8t}[C'xK%)0ǐ5_G,$g8 )s/sIv]o%׮+&%k$+3MζvgIBT"M,Pn0pdBe8Gk6/GTL?ۅTߡ* rK8QTOCʼF{ G2\'ۨ*Bcg[ a@.!x0_C+ ehF}6yJOЕMH"l@ 0;^ƅ"QAὖqH4z_k:#5~[8bȤt/X ڜwS 2DeƮow>4}&NQ47bk D%&+/(ب(_iڲAG)Ŋ2:'ɨD3B1"F!dU,d8i>CONDAL&BJ9CURtm! ymp68ߍԒ,ӯϱaԈԸah[bwA]ft5u{:&N։:OϣcS =CQ.gEB]eh8-A`g!v_۫ )0["X\Q'xa6EGPg0h(; !V|- m]@1=YN *ݽc4Z铁 pWusA#dǯ]bKK=arYw^_vS$q5Unޔ jrY_;2֠*=al^eGI 9E;N9?ȅ%W-UPArO?0+}vGj>)0Å/T-߱{"1DO_) {D,`!e+En 4AFmZ2mZϳS-.m2v[7׉j;1Mh< &*[i >5_:Ĵ<)FcȆ9i8M`mDe|G T0rVuV v◵ψr8W`>7po]pTfEY@^ʊ̵ќιf.$H ̭JۢmEjPSO [aլ9! {+D6{g fq q(=TudlV$DV(lń $oH`7S۾ISdpA$oǐ'n'`Q;~d4V!=ȭ=U"ݮ* W߮&Gy9눎5tmbL+#:N`dʋ_'-!+z VkQY+(BHlvI٦*yB=7IbU74^7Q|?Ef6[MBZ \2QGlr;Ͽfei}{.Ll bO-rps7UL.՛Ly;X vI 1Gy^rƮ @F{N:yKmMcBj'4+]t'ڤ{Ci0R ibDMtx>2Y7U)ްC=BblWGj0=HGGAx'>DқoN&09nlip"P0sY& 7Sfm6iWS=1<5hƻ9SkjK(Jt3Zؕi/e4 )X-Rk?^l,ز%^Hc9aelޣ'`ܺ((dzH5 (f'|:rce8NTS 4etTpcmd,X#gC# xn`ͧ}BZ I{to؄1y휎RV8c}ܲS5M|i{yKt|Fi`VFGϵ_JU=h Ϲsç„yy@G9VmxSG!GWl辘Is-Hywԩq !17-=>G9i~`cWLqX'LqU'^akK_^J(>ȿa8fzb6 LqE=B&*?DAxH ֆ-$>xa'!X\Zը-BNbxa?s`T<@M6NU$ %N_D[!%qe}y!Zџ_P> o YQ3XK[5E>Gdom({~t z:-F%>"|]GFz~ 9WpEnHiobxgҳ7,MD8<84Ͷza0-Ȍf\ѕ>8>\$[,K kŅauz`fK}'L7޷BOJCAR 6j{A&w( 3yM0(yJxQqhU3$ЅpP^kVюY]cL{4ws>z P:er]%%7غi"8|9:;Pѓ̼lKeQbڞ*ŤrӤMãebQ@LR c$i,pn{08;Q'ҽϞlmڬ]we9C[, y~}$EVh ԇ.q_Dy 9rVud߷lN ˪JqBPmIHȨjƗsu8-(@,AU:3ep4{3Sm>\g,ZSp vo2}cOawרN!sΗPȯjwT3YG55RIҫ쾑}2S[_/BіI[H(.F7ѳ[zgVn;%ɄT%h%av!K)gPV <@R;M3뗭JY;Vp*1}6n:_.f|:2]DѲ>Wi߲+/? p rh "n#m]SI?6 |GGZíJ1VVd\U1[^ -M߇6y7 & -x6%\xKv;IO"(#o z$Vjuڀ5:P_'uw &yRaɂM.2,g!8 R3ƾ 534s<$GTsD]cwh`j /LJ TA5)moU~Tet\P4IgH1Sg~vBĔVXo9,ߒ2sZpC*)+DM'k?[ YpZ=Goz3HUR6۠[fuܲ֠U;dT4i$Eq;+W5+kc6{|˯[ed4`+ 3b4c5[z{B*%$ NuZ f kz w!1`m\^qt;'-Cf oBkՉ^\ 7c.'u?0GcČ2-{_qq2-)K25]v34pϾ M CW7tM,jk2@s#HCT{݉p3n48 OӴ{߱~aB{|[-ia1؄QDN݅]`XƿF(~ Vȟg KhfB!t@{]ʍ@FQ(Pۓa tDBKh^8,N]wg]^U'>u {R@㢳77]~u 3AۋU32dۡp(N*x%+$U.Z^G8e:wFMV)C)h^ SN`CjOJ$neZi#хJX*м(Xd*8l~x1# u&I%;娛'%~%5-ݷFJ3춗m|?M)X%~,xjK 5ȫ ^ p󉑤ZESe利l`M&8ߗ)P4a7n!޿5 ,2{mMӾz!YGa:Ht^țh=,U6yze,^"+4)x щ"s?Ռ5R&ͣWҖ~D hGǑ#E{`H{ଓ:nC$j'=+M+#`lIJn.8F$Rd^Int]oj9~uzF\d a F$W/47z<vT=b-W.x+—ejH|(NĔܛ69 Ć19[2e H`pekPsMk̛2kx/dC jmZ#0d鬙T3Y*İB v[Br&y|;<p gwsb /?i*嫼ua([:"עH<+Y1fYݚ+ eV];%`f]L;F+TZ" P u [?{P# uAX*wx7w].s4k<)|Iŷ2qBnRDKKg+)/86# pF3t|Ffxݝ7ԧoPiaP@]_$BPPIpcO* #:ЌBJTQJ^I1YE9V{Pۉ7 72D"`p^@HhPNF> 4,6`,ڑEDPwC,_Gx ]~U(3!ϯ,%/RQp(G&%l]71Q&*&9k)&|tVLF56N[Wrx go HHl8'H(NX/2;gN{)  Qm#/}F>[>̌aVPWL c+7 \r`XdEV ?Ib*,ɰJI}yM7Fq%A?n'W_$aK|6;1Q }i)nN[G`BtԄ2FEV!n,YOqh6E~=w#rXVN]81=-%?=`HUy?=z8,^iBJ C1(~:6|;[˯|/h:!~u.65p纲j vK0)as*z*@۞vc ;AQT8XKu1E kZqGBt d`ME4VeU!MmPNvv˯B`ASlh\Rܕ4KNF>gSk=W#l,oF}'J.{Li(\mKd[ޑIVu9P\f"mG_'^%%l7-&Ō{`#I4_H.f9!s҆;çhB-4B }0W*} Ͳoͩ_q`±릮1'K-ٛMp6?k|keJY,t-@&$+ :$ ?!-Ľ#VN/C~ /rG<%'W_sWCd@b;G0ʸE嘒J8yYK5H^/~\}Ꝑ VRIy||u<ɩLn?f2Iˤ`RĖ8,ޔgXvBE0MM~M=`XNayjI +5vY`|fr1} "I. 6^%LZ辐PL67#m;}+s} ZUa TSm4:l{.J۪( _JQf}#dF B Va"Qhb %2 Mj+U=mJ`&P],DK]6%@s[RD,-:9}(#xuҮa20o !*YG];0~Y* ՜%vQ5b+i9?(*Tm[tQnT$:ڪEp kk&9"lP?vZe/$ERPKhbNz0hqJf˝OdZ촐x|/Vn̆oqx5`a" 1$nM2"/A @)ޱb=\4%@?Hjt7JPK\,ǤQ ZNE @],"T!j:Hy5ka _0:=Fc,ԑ/JA- K 5^qΰ0[03&,q\cqy}UG?;hq92Bd՝lA8\~/yR*wo%a.uOQ=,<}н;MHAђQh)Gu )U` o詑)Bۍ~okW.?IFI{G k'§A:FVG@Kg ̒--(c3]tNu)b~d1Oa'xUݍ:gzQr ?_vr7SE` ;ވ%k LaND gyP4f 01U`y$"V+> .NEG+)u7{_U}xJc[R>P]DZq8ݙep'ۦ3eR6BL y<ƞ*x^-Rʰw+.a#@L%l;sFu)vى/4Tf>/w:~? }B|bp@E5:3?Tl@7}F0`\I 19b-X.;-vHEwz`A$y3?6`ޏQӜAwzh~p!Oe!C8=oPeR)؀"kڛ#}\vR$΀`W O/2jV"̭W"6 8eX^LI$}0Z/R촂w6u?X2'\g.ZKżVbdQ6(Gv1_Qo?(=qq$bX $UDwNTQ [Hl6^ӫdnl,T+YUa8s=t7{7lߜ!)\8FpwA(Br#MpZZ[!pѠH.rcCCG[ P9selh#12x.+$O#UXж&-tObc/t5[~̀~x+Z/}Pm "Cb_M% &]#g/*~Ic ֜B&>#6 "%Dk,Ya+T wzAm!0eA?Ѽ_/ݩlnY(%iq i+~2E3Lld(4A֫3dFRWF'5ŦxNmP%WץYmONI%;E¦rBLSW^XKm'-~WrlC\W[2sCpGQroњ"~ #{d{3wLh/w1#^>M6YX%kx?otZ/DNȱDj~\ԫY>Ntr#=f!<J7;;݈1gegӊNў:HHtޮ:Pe jK9kb%U xfu҇tbLidOzfͪm'jH$=F[#cv{;mJ 1N"=q7>] G; IF(BࣵbDcJI>7H‰a H5.Hf.ls֤Ts #s>d'v}Y3m0-c4{gԗ .m;|έѝ3ɀk}EB%9V5)juI*p.串oS{8]ȉ`apO6(gnOO'UI{0)JmE2>SuN:yF~2Lcƃ>psɊVaaМSC- ;TkN*06uEPxs&v9 :;B?E;M[J;[xnlO Ql7>dv |H=8 {:æƩ)Sy9_b6] m1o[Ϛ+~<ŋR?z7wJ5 ޙ#RU]KgaEG8l{\1rQ粃\"F+*\2h?Y?*v O*vԇ6 ϗ rަ;y/y9 Gh8qu sW$tK*9 X|y$]Ɉ.X3_V:ԥ-ݝKfq1 gV8T4mF&m:)5T]GکBQ mkhruVRG&s䎦4ze0Eh1^3O}U&_lD\F_UKD3]M m6XDURyۛ )q 18$m^j`o=E`z YBT$CB1 >7cWL>P v"fTe; ǿ:?Дbٛsvǎ1 ީp _!2cB -Zg5 tQV=TZ 7Q?d)q2" 1ӡO]C]ڀ6}3DG540efjX.llZEzYrf"AGGfi/Vﻄe[x;x H{(G;[ &~EB㯬v̽r9Ӊ(ߚ#1.0: ;?thOlyqмSjx5@h-y>((a c飖+V0C*RM^[x{e?ִ#'5)}^*ˏB>fW .?elѳ01&/SYJ/Nzj橌Ř:ilo|t!L"w2Ԯ$"@UF߲ acPT(gZS}(.^@i3;t@$/𷟁ao4?bCX~ ^^;mko+|R2+ZxSB[38]ZKex-r[ٽ:0 '7ZDbI@@%gŃ $̶XX[}[g-Hn[zms)UH vnrbPa_urFϤkb5r󀘨e+У!s$ևպфHj͒yuЩ!BvzU} ~ϗڏYܢ<~P7p ƱۉBa-Q}xaYx,2)jMٺ?ѝv S݊Op&gU51ey^)H'iLE dmlo27P\~5 G ؚb0,\pYjMaǔTxs*ȟ9[x}i=O.nx# LźrhRH3 K;tFq%@e(:=t5Y[ u.5Ίqk ?"D^cLw@#]Wp&YҾQʕOlU]~ WktN>cPRu-C .PyBʋ\G+)2$Dam;5T=%]rI}yQ[xPT 417*ã0xƢkel{~˰)~%ZO%hJm:rQJaPpΐJw*74B 4B,_^g-T{Vizƹ>We-TI#"?w@qJ93Ҝ(Ubފu~tȏTd3M' iyj_u_$LhzxP]N<]Py;&?<}bqY*ٞ ,[rdt~sA;Mz`>s93gK'Cg{ hkn%(&ZX0zSB1VW]/9fizץd90y9[phV\ydD䝌wk^FNJ; $aZrㅇ5C'N<؇1`ϰ&S 8!4΃2onHoQ11\mXl+Z~,NT^V/>")*CyɛNM4]#Wo\\˶Xn ,}GDсsW!ПN[=+4E9"U=΁;:Zh19 {kap)eYjpQ?fiT܋h.1LJf"ɍ 7ɀs>|y'-~\ yU39֚#8H.T l3D4Z>W \Mmyp2JYˤpfƫ'z`'uNozBa<ݎwPк_$(|N1<NP$8_,kθGOͽ?MtۃGՂOOvLcW'zw7휏CFpLrYF#Һ[0_%0]vƔdntGL<@-,%` `2.Q |ɐ|__z` DсPӾI!ơe9c#p!]Agi4D7Iz 2ҘkZ -%c6(}d00QL)I`Hn8ZZG@Ic.' ?ZX"Gc8 ]TtO'd{XN<7idA@v"SBܩ|nR6ݨgR*㒇*q^\fq]I`IXߋi0,~j{pobӱ:jK܆ū eQ _Iʎuo qsK*{ ^CV=V;"f7K kP@%m+i5 ZܵCD0$ Լ؊4;ЄDh[]ps!oL>fy'TraPcm?OQUYP|6U"SV~nܨ)V*Id8T-% DQ 7!KmErkC˼ٳ*_L/jm sɣgܜcG%ciʩy,R1{ӔqGxFr?:)BP']Hgw!{8vhHydMIy-7? ;#-dٴHyF&EK_ a%M F?V`O ϓTnĒ03)hY]0aƱ"ԗBDf jNJGz' ã۟d0}P бW&z^pH !::O+up5ߐh"nnY!eƭXD3ɭ_=2Tw=Vq-‹0VpaI\P,g_!sm9%FQj9R¿Quû]DHxɞ`4F8$vI kafȉ55GSz|^:iE ۥΐI#?=h}gN݋: C!D }v~[Ȥ^;CAYSh._{_V.8a/:Xsk,{c 9@ Է0`G*a@*.#̕G,MU%/kt]Up4eDo;|<߶E!NQ0%X[fh*l V #e p~wA8_]Mm_y2% ,es4#鲖fALh󻶟6FMտe~+5 ŤUF{~s-!Zgߐ۹™h5QPjdce}j[ypN2u_F2ۂQXg=PKi +F%dl.oGx%0:'T 2&@:[uIauB8э ]' 7s*NNw̩xKȁBUr qɃk^xu(_ZNo4Rnqက6{Rj+P 7kJwħ&@+jd<+(Mr M͌Zr>yB4 xPVUe Jd# 479`W]i\&&B?^H.u%}% A?zp5-U].z_|K0 : H6a$: nK綯8>]7iF< Wj8Ϩg#k0@8ˍyȜQk[}y`ڞLɨ@UH[tQ  GcuIB_Zqg3B7h%FEC{c1С,;c4[B.jBSBeV+t ~8!׏% ͒cGD.C/4#)'HH:U-Γ <0%~KUאuB}!HHL7 vV#"jL>u mǍW[B+K9w}:KҭD$ je,P?2I{Os#,ܖǻS RG)XCgk 8[beYk6$>ƞQ h5{Uy8T^ʭ'%-"\{s[dIZ-\T:!8Y)W-I䟞3X`pWi3C9E }BOqwSx),iq\X=ewg'1ˠf=e)[^(12Ru\7UȦFbk6|JLv# kR^)~[݅v[u+\kg\ &CCM:.v c"_|.?Mk]}Y*w~z2{gVߓ6YEa)qáv_ APȁT@SX&&qCT[r[gzQ3sMI}zɬW j:Ԕrܡ9'6&`14l5Q|bʮ4cq؀x%ƒWϔ r(T[w5ԉ" ^P%Q7b]V#zV2_.'4(XE=/,pXjve@ [I`}TݑZ20R"y|S}5d3. Ԇf.-ޗgza,r'j`z5OãcZ_9NL]ܒzd+.a>VKEΝBh-ϪK($Zy+*B 8.SʟJSKr)gJ=lGH+/|x fp24s8îHa0?`)>l1U'=EaIw0Y" gzƀk6љbU%|Ƭ@۵e UcuxZ8,&/tUt]]`0Vlݱ$`k5 ջ j\{GT]x u53C| teoqw$NiE8e>{KMoLʡO2"ɩUR0"[pwc଻$*aJkITڒH'%u@S5bO<eSHLl|W>uDUNE ˸v suخ *ѡ24#X ߺ6|= F{4{9oi~zʸZS>Px>>;HZ3}`,D;#|xdRֈtr5 )y!LMH E+Xч{+N,xgXEq,E_]"/XoL:.wizYo+iQX_;P k9Fs ]+^㽈8*uP49YJdUЇAt߉>~n6# i%. =Iߍ6}k[:Mb솉,Fzɸ]G|Rr ,jqEǩ᫤cA`GA8', }J`g(%j103{hq''&u17;s6p~ni蝳F| m#yY83OvqKjRDKk*'` v1PE7<#1]CKu2>xTK,q'dEC5ed;1̷֭a2P%Lc@B7 _!/ .en?Jڟ0oQʹ "Ptn%#(,Jy*\t@]5wIB5YƨR RE Ȭ? $VjKqҏ!4b⑙‡Pb xEs:p:k mmuB&wwZJqK4ո˽gcOK"ǁLvW%#'*9],f&iIxxh(, }'@a;u{Zũf%6TG,1NV>! Z>u ZBTwe0A@-FRJAe/WcՇ_Dž5jTCxJ7aI+W7qE|SAend=skF{̂nE1?dW$x1em}k  q r6T3o*&"ڭ{jMjy2 >9pJ3x/1frW-V&D~Kc\?*^ъȓ¸)wmlXU&h-Cm[g6eYnj zX "=@p|o^گB@W_fmP}6.ۨyM^._ ZIxE71Dc,o|Ǵ 88k3\Ntyj÷ZzЏrPF'Y$rxlģ,0ѳ0{#IU˥ eDګ Ґi5E(gR s!YI,7.7x8@i~yπm!*J(ԼŜaL)aK8APn?)aVq{N0¿4{nݛۡd- X\!&!vVsߓ%'8S E _Lg.,EޫO?礚B6 GJ+f;FG|Q*fzp5_ OwI1Adn9>Oݹ>(΢RQ DS< =$ k}h5Sp#e րd5Y:)[=P)uv,N+1;8*ۺj.!)TqNvt iRGB 7%]Jis畣/& {MѲRd-xxNwdtEkZp^TR.>bKʼub=ԿG騖=HiP1(.z\]m+8<{~n w'ݢ$Ÿ8U??hvb4E } ]W~@h FtlpvJ!@a/n~&*"`W6癄؛un Vo{:113{h\f$o5)|L6 G fݝMdA!Mf/+4?GCfVȍ/[y)4ibt쟹ul$.֔|])hWthUX庉3 y`% ٵx5Ggy)8 YQG%0(ObUҸ5 ~ap"}ܺG1ψsqY6pH*fE ͨ5mL碂!۵v@_dQn+Bk,2FSa$ru /^ =ֿ!(Dm =Z5O-.S4(ck¸2{6qsV`ᙣ:薭u`OAwyY9(j_9̲|>04nIݱ͂D&7FMv)ȝ{M`D9!w j53`+vjOy^~O hQhu{& .-I݀)c̓| $Dh4bGd\"vQF!I&&C&s:Ѹ3h o52: ̡7K?:溧l (W[_k˝;.k$lss?#pw̑xĢa0g{RFW]@_Uș QT,b0NYDdԄ.y <4JQMb'zeyk̥][K^Ҕ* u0L/ AԳA9BYy4S9kϼeihʻ|5A0k|'cTJgTf `Lg }`D*}h1NjvD5d}?T)A#(i-tKG'Óشy XT +́bCX1"%[aN;7̤2@ [=tvYozWxu7w*NfeqPL(@,tJoc<MvJlH%;@e.K C_Kh$h7H4Y[L(C^*5n?ԏ :MLJe®k䎪v]j)Ԝ*N3Y>ʀ Wp1n7\)R4=ՙ%wʔfbhE/%ۇ=ýbC ƃ췹g<htgw{3\b:2^I@+D6P5X[IԤ;R'r?`pai;w9oeC%DSϷ”"Mf}>^C!TwqvA&tɸ XK^!?&=p9ĒN\I~&v1a=Di"Ѵ$@ "l.5˩%Y9%&$A ʣ*ylgZj4#XO/}ϒZfKⓖtR-VE$Y6BL:N;\x-WP襓G}ee7y*; \wKʽCZ?RjM *i=[&G h]#%2˱<&XK25<1Q |@X2 tSAc.y=Q~S^FEqtw)>uEzU'%t8  %iȑ%XO> H =pn~fH<A@8d -X;W:g%W, ,5K. 9j\ƾϲPGLf`#BNVј`U* Ň258A{[#L)NubSO8lȩ;/^vNnaS\5mϊFuh* g1HXɌuǗSpo9EX8$AFֆ5̼^q1[ :Cߌ*D[1b!3#]jβpb* ʤu&ȭ%bawZc]SI8f o5 ƜW8 E-3qvh2;X(<¾PHyE*րdd`7yye|ꮹ_D(v6z,jmVM\F^HAW+1tP,Hlf$˖z^F^zzN /s8=/VZ`,JAsĈרz=;H뤪' \LL[Ef]G@ͧ(\b7Rr$Y ܴmy8k _l Ӵ]fb7UCHE>dؿ~4Ʒ##Vs( R&0&U֌`=iTTӚѽ3Ի5΃#`4 |#.y^ި2ЏoB${r!]aãc{bbn O ǑgUxc2#¥u== ߰^EjRհ֌&ΠcH?U<6-㶘i}8b,DpIlM[ێ(vrS Er 6DUN!zIsͧEh=kpe=.AT?<3 X7u8sQ`D"TSRfvf9I'1YAv>KÁS=ze1ClxԆZx|2/_poX5uSCfg"ޛ qJ_6T#W¦3(Ordu:ϣ)/Ɲ ֹ2'} ǘ~QpfMyqFAs{qU?mT$1<'M }7N D4rZd~oj koUe;e /]pYgҖ[:点v+zldȳ1L=Kxio$?F :_42-sBԳQa5,R2~5 b % W V(e+5_SNZ@廨rHY d  dgU8:,H8ϤUݏAM]U ,2q~ijTSz[&;6)3~m3JLو(Oe YQЗdZ{X}974N;;^ ׀wȧXf}AZEQ/ m(D ʟ%eq >1p"$ͳݙHx$qcqM7ߐ8"xQ'EaiM$dzҜŬ&L%vÚN .SuӉ ]9)gv̫.sog$q)ݭXZm|La}۵8ܱB!} z*]"gsIgCE)H/@eVCRD_ M,E|(ҧRQZ kj]CUTnx|_&fc*.~ƀ+` w(#m,&T=K9mb8:ԥw6|XY?"X y@z6@Zk5@4n4+7.Y7CK/ʭ:TxPVܺnn *8xIS>v55{#~EP3$=b }xe S|K` Imzk<)Q 挑PVKg'e,\Dk>rޠPplꎏZ$#FNY32-:TYRs[~JE!x::aHTY^b7HbN"tMDWf5/۴Ǥ˚؇nv-hYFI}XS9ufTz|i2WY?p8J9DO}pYҵ5ѣŇWw*V2[AFM2ԕu <EQyғ8GX_l,R(4TQ(7(`-Q;FHB qb q~;pܳ9'aJLe#F8oA_ !B+S,w&yk| %, 20cn/mig^k':OHk3a_~}V {ԪyfBE_:&ө..xWhLUӰ6Kt`GAXtIӡwWי8T;hitf ^܏zY~ω`j q:42F6f|CZ ЯmWPd#ora TH 7! )5uM^;,)Һ 䄴oC68p5xm`2ScxrYBBFOm:N k1'PKIh5f`-s UΏb~y$V2Ck%7Q̿VB`@!9,5^duM>+PH ;@c؛<·5>A]~^$0VL oxL`̘<*ɟԷb ٶ^@Wmg5*ZC6J شO_6X> 1Dۄ+##h5Gs̈*)o_Qsՠ-+d|!q!n<(4MGYNDєEu S3Əif٠z(h͕v!Mr$d􏮳.*.!/p|#cȿ<#CAp`}w h3A T#0;}^'_W96>)!+2ӿ }V"FD8'iPg;"c1M}N!e?`bMVp#%W鎩qKchG-d,b)y@EtJ&)3O FlvaKoD3Er+Wo_B qve%ZV Zr~Q~9O;2OLqH2}XVd%nq։U( mBUJ<~T;R]x @:؂LQPr!&cYg#[E*Z8\P%E rt!AYW,9!'ggy\]bfX] ƙ2}2Rz1'Y8p~:eʗf'xQu=>e8wSwV,OdܠJEPiDi+PBBb@hd:2 r\9c e'=jV7{o * :UfNWXzڦ>jJ&|p<®vC+M_=07 kTB""bANw.[?,u^ ꯄ hxݣFD®i F'A;`K;b@`xA/Exu#!wK{Z"uH|ma֞Y?R2=k `&D~ڲxʜܽӰ~t] `z-ͅ3̇Ws˃}3󥰰8#PEAz޹%J=S{`@kbH1>8tx$e3$ե~Q?Ut?S1GntVG' 0Z²5zeP M'8)kҮh&(T\>`Z|Z;/p>6bϩMKx2UxM+׆u`A^q]x 1Pl7)ͮ:MYGR2T.y8#ߌ"ƺ4 [}ѨD7$#*:$0A]/$vʎLCjf:d2qa~Bp:{Κɮz3 Kj{WmSD|-H0pttܰRa(zԆk]Ai6|rv5 eR|CM45yQ 籘2\-\4ѶhBZd\Vz\ uth׸-vnDرa %H$>ERq8h,o&ּp7>/>5"7o ݃^[C>/ĥ.Gw ͠? Giݾ>or9*τs ]Tk1-"fBRQl"m.a`.nu!.=9ޯsaSE Y?IʍnԷV M ;r^Bʘb}暙dˌP !lzLUYX]B{iH7KlgS(F;d'|huΘ82˦/"XyZܔiKP&]T*qskSx"35SP!O21٩kW;2xzt.qV}Vw]դNg,}qI/B^.iZ,~'rQxԐR*.|7ŴjaZƇ r N(걹3 [*A0Zq89J_^ ʮXjd7n Z96$`<8_CAd@oI0= پe ݧUUT.0fsL* NM!8>Ǩ(;uˑznjZ}ȸZDW)/3:aB`tfzKxA|JC U8ْl_Ɉň #a|ZGG_QSzby֌" fcLLTzQD f;wkq9yj\kncH<& 3W=FCTRPOFEXN EBW":]\#d`kZ@;5,#D>7q\lMbJtGN` ߰oثFo3$psO(XЁ)3<';2jb{rq(w޷:YΟ"Iι!WI_?|Q-5 99@XYlVeTيJ>C8"Xm[MnPb "dJjCykPv>cd4o4NBc􈌴hlݨW3{zflf2%UM}Af˝L_;O EtDN^/2Ee$7TF sXG'Dfʯܦc3ϪZoUiѝ4eMt11M+IN+]Z*{Q Bxў8 CIuh-C&1CF1kOkw흐kK ֔;2u#{Y)($J2r|NӺ2٣;4zvGZAlY!e91*{,F`2Ʋ{ S|ȸZ /J+#evxX{p_ Gн;pz1Dx~TI~m4*82x߼}EfyFO HfM]֘d^Wnr{Teu^`-CO5VtAD'.)\fAQ'+cgjs%N4޾7]$$¥FM* 'wiZD(Ow'R/PRdcڪ_;[} pQ(@ Hwu ~G |vAJ@|FӠOᚭcT`S@G^%b&ol-cIaԵSWO|/{\Cq `B('{ E9U9A&tv7aeNBЇ;LUzAVH(lh sr5`A?>pM[dТߓVjBݦ}i`x+Cvowp!:$劭/F+l\M~z$e7yy5bb}koXR++̗ AQR".'53sseri;Ou$K:3_(QUM'Pz [mtI5D-7ggN%ݯ&;989{M{@RO&ƐvQg;!ԴM}p5Reb.N~"a [yV8iBI!:28:Pp(^(Eā$R.4r#fT!VO/#XRK3H;zj ?q#ѬaKtY _j:b~Kp?"@%G?$ϩvd!z>3?ER=:HNҔ)b$s t@f3V֫÷=Ó?g_->W9<0W4 |Ec(BhLKzL/-2YJ!9[`Yiw NNO"jzGY=ZosƬYrţ*1 2 _sa,嬨̾Z=5 p~6 暻TuEh SzEw](4م e:F5߷n{;c{p.(W} Y!9=κD L͕@d *yO(IZ р}dTQ m꽛A5G;WÖCn7=l#)s^~D Nw' n>=$Z܆+@4=!pܸ43+`@jq[`A[W?c+/ʵoybOR!]rD6+ښj`]'E~9:-IQ4ꘈx]^уkCheLB3>jNQZ8TaCh8?C2xd d;kWŀl)yRBNxv$~yS왶&>ՃD<%/ 649ŋ &@9aXvƗJ7]9W禤`ۛTaj atƫt/Y_bݼϙ Z}N6N|n"Z Pէ"Tb `:O I5 =759&v4 ifBwjP0!NKR+f}OSR&ծLbse ;HuI@=GiӜ Iu_~2G(z =䢆i@0C-&Bᕵ@_(nuqV-kqfSNJ]ޘf).52 ӥWNdOOh5Yj7M_ t U/[Um!F8Fdɚ瓴u C#vF" m":TKU0y#_m;ĸ8!pv+,u|;fB53 @^`zU"m?>u9ݩ؏Ys|Bv4m).D c7f%l vɮ!+kk>)(a,vd2! u~RIj}5Hw-j]V8gL>RR QjX eSvgQIݣf<6;"?uhtƁt@:ȄKmNXm%ߋ82F-t˵ާ3%,/<c]bKp|* GD>ʤ.wc{'U_#k%Q|"v!nW!Ag*h y_qhR0Y&kxH.(4^K;J!r8sṗsqS xWV?\)!KH`ޝ^r}UpüQnw%/3RWQ$bIcoq:Z7ھ}ܢDYĵ83?f{4<ԱI}&}njnʥ[Ġjtӷ mY'r6D|bD?TߣcI WM0@u܂˾uБفeeW_Ö,[qʔʁ!h=3#z2L!Fﯺۦ{Jj|:TlmMSO$ i͚ !uYKNR":rk`iTLҲ(2Gyf9ǃA^3R,>\[%14Az7_qbhz6e'>/xRR;Ѯ$$bGl^2 T%9H-@ĽVxÿ&$?u.@݀8y⩘'dMJ2E|5y(3nYg%~,3e qMgI=_< H8Z2υ8e%S $l5aSg]AƲ2*{>.L V6Poݨv}.:0MO*UH 4,jODTK;Zmhσ7{LyzP嚁hq( X*Y+ ěLbÿ,Jr~,?*w9@D|O* NOnۂy!p; ^sQՂ #=V = 3W }}>lgc} riA\+Ph=~#$3N yUTeR%v5lVȿ6C>L>m&=. Qm5r-~"ͭp ~{& U񐈏B;w3?a&򅉐?([ubIB3mrn>KX)ܭ$/Tb-lP팃{yv2 I,mYl.0H68묎JC&h֣OR3h7S kJsu S\ /Bix}abwi3݈\f΍MkKŦz$~ʰ˜qU3/;;ܿe?.fTt:oTJ47g( N |W{ce"{ d.MAb.!A?o:LF'{j&S])Jx>.Z8D#&. 't 0[LXm$d Tf#2ykˮxT<κʑi$:!4 < IAá] PS,^BbX4--W`}GFӊf6$}2u.\{#6g9&^Yq Y7 ؗvǤLԹ~?E5@..ToiUDL42C.~]8rփg.c2B Z.!VʵJYLW42~JUq4 H#WQ'{Gsݩ?jPbir t?hmdהUٱx6݅|  1=OK5<7 Vs8}OgpW9V&JE^|be b 9+Q/6hvOoȌNr'wHelTY@٘m>.d&oxk;Ra ҡ(iIXfJũ ;gDꆨ->o56Z3B1Yr#` 5g:!C2o??T󪁻dutl|úp :@-ܳa`>Nn#HCz;{}Ceߗ"5s}/ B1ϣp2KE"x4|U+@߁,2M5%/V7U .BTEdbKY/NomUʴ7>䴣H:Q{vYb.F2$j;.\``0 ֛_ƆvT(|lΈ>Ly7P"::ӵjޏL И1W(DeA* ؇B¤Y?B7zT1|d3CD0M_)J5yZsOq 9G\*Fsoҳɷw3JSLXI3-Ӱ{ G5?)ʀS'*cJsڌU %S8ώ!5eš^WzA` ;)wG)՛Z([0B6{Ҧ% k|ϭY<#՝Gq?4; &۰V 0bTµzJ~cHҿݎ ZWH[e[vEZZAug[!ĚgGZ كAiݲ=)5,|S0]$\(Q56(T7@!v_]cYLRҏGJh4&z}ZE 68qf_9HEai&ޖ*ŕ8gCi\H^zt gy_T+DL3m)SCo\u[g2ug<XOJ(i- Fa:6Ԯ|FÖ\dZn ߼Z mxdFh5&,~Tx"vyE=*v\)~5.!2P X{m?L=[&ƭ 5_geh7zt2 N7segrM3Q4cgr0̌5_ yηm]4nzief>¿G.7Kb(.O s` ;$"g6s`ҁG}u=[Ѹ RZ wM =D.~aQYP''hy5 aP8F3L.:$|G'#:K@YTd) DF cAҊ2Wzr~?znV*l|jUwZpwZP`@[~e]L)ȴ-+"e2Y G'OF{DUVPYWM$|[Y]唠 q&EZ۹͋n'{^k+l_}Is?/:ТlѣI!M $u]У?:`tXzh3qlz&ŧ:#C϶ع!y9@' }\0r`ߍDl Q_Zvj,%Ѭ62p-}xˎqliL OY W;V>A<ˎx?8?Pq$ @Y;¿IpAqZя3ڲVW+IP~(INH:@:j4[<Ү$J> CF^5CrʊCorH~ZCYcV%1k:&x:ע|IJWʋB+&Rt N"Mėlk L;e\^MP|˪{Egȹxdi$ Oyb:4̳k規e\V;i1;2{r8¥fkg*3i,qPËRZlqpWCG#wxq\V, EC mbAQ a>5)+)F/b?9—1 >0q.ЈD񢷐u#+Y.9nzG  +'kE`YGf.=$W,S' CZu3ETO*Rk/hs;ï[\_v/}a*ph.}$0?g̩nA[Al ~8xS Siy'[[{U ,8vPZ{ƱYs JfKTjf`ؘ5 `Gh*K͖g)6?8Lv?2(J9h9]/m8/}*aAZ2I <.k bt+5whc{:0fv ^oJ#́DE&F~H3sc= ^O6,ܞK(TG48hK"Z hG0x҉Ue{s?fȪi6s/1($|Љg `k#p\Vpy+@AǀӃ?QG w,dlH%ݱ3[u4p]0.ML!M}ĞYMs'9a6fyI/[>t,lsIc!Ӯ`h4}m}ezFc}t0l@Q^sRH$(~0+]!lav".iN<æ֔K3|݁ao\~XZz4_һK$~LQ/̮w!4ΚX Pah ~&AW4梆\qV)c}e@Z/I܍J8̑n_%RG?Y'kHH2 gg n,*MƘ ʄW®l4^j, &fLLTJP7"yg`^:Rptdžl3\0"xNH `~ Z-Ej,c}_\GY_(%42e2l 0?$? !2a@ll9trI_q,b*[%/~ Rև%6u[ֆI_srvxnþޣq_Gx%|!I[R6cbb?8)7(sʑ KJ= vd#hģLT7AiL ȋ+~&) wULl.IFS\|YP)I>7Y|g,/D1R 3TY8 pKcHh7e*sqU h6=3JJ3h0؅z0H9Ό Uo=%2:oB0C/z 4  +n]p3snr`X#fya%?IRdۺRgH'ܭ*h@qp'xԼԫ:e$1A(,is|8fOZ#wr\02h̷5uiv䩾nDp0]ZGR͏!D$ Om P-R:cXR>n2@X c*q;pw7*v\0qMmkm6eLqƼ/5\A/Dy؟)>/k xyRY)F2"Wϩ*Txy$Vf%O۫̀XPXF>Bc|46A,*4zf̖ƽci5?Pz>f7OcxNA"i+/M* !]Gq ScHj!@6,mfBm6>0֩}Nxû Ny݉)J+|?q V5RjsuczzƒD*Wzߔf;hv.=;Cf~+d]5;ѰηQpjA;SMQyXt5V<- 4 VȆ1;h"}h-"oS*_/} +lqbHg@s_[_#/aL'3@jAQgFbi.UÏ ݤEbַ;bÜԥ`~u;Ag]"l0ܒI)2  095}Ld*`m;Ñ zǑ(}xՍp.@De(GȭLn3uO>0b|6x(8 Bf:m17Ca$ȡ W0tL8JC$s78YvfYˠ६9Vj 81*[1Μn B% ɦˤD>B!4<娊 eWJxLz3{ Q 'EIApImo7MO{]iE ǴZf*])?ɍ=K1J)u;z VCmg+m!$Of0NdE ^m6x\HH+!2$ɠHp`gvdZyP\fx~iwB!>9 e~'2/x(r6t.G w`:8'X?7٧^Yˎw-i ,1\;uo<7K4=9,d|B.OĪ)nAq_14~? JӷScQ,Z-NѬ7Aec雃1Wt>cM@wh ۸ި1JNdG: 1O1T}wAvÊML"F-m@aFG;-c`6/HPG)y\,CQAƃB.#3Uq}Z8)BEЈ ֒J(Rz`+ll*ײtTEV dٝ Muc=%\wӫ&1Wُ+ê!1;wĐ|+5k*v$ZK3 x1+.,.\Zw}|!*2=&a}۹yvݒ0g[h68=BM`qa`@`TC J^V=B{baT7GI-1TLܒSҚբc!}akfbQJw"fP\}Jo{gwޫRJOc2_&'>JSugUP~Xz6 qۺȔX3GmXx0:(l9 sei|6^[}9Aتu Tf>]ATwZ~'^e5\$KLw,~GB3pX>\,qPGL ʷ?v =,N4mU|ҥ*Q2;DOȿa9lQht5xRxhpKNTR,1{%kɲ%YVLlsu q TV d77IPdw~RLɻmL`# sc3VƟ"G/:.JDk1X":L(ٽN4ȍ57R%hHs\# <ڿV3Ғb KgdI[E&)9gd_o1mq̀2EOx{`c=Q䭄`=| '7#4<_aE~ {n۫LF߫տBpx[ 3r>Y$Rg),P\'6ן}ݯtI?t)d(U ,DkyncO?D`'f&i!WMP)@ՙZٿwNXɮ (r_$?_}V~fis:ɀYBRC݇1._K(n΁~&1mEeYI'*DQ‰#^/f}'8Oo'|t^w*(`D/〙~9=_M|͌P%zoBkco8kh~ZW>~7n}eƂ HPqIP30@]zOf?Fv3 MSޒ/o)0yᄟWA빃kK6ĞBp\gb噲3` L?2Vk' G_51U^StaaA(_C2c%p՗)S mfSGأOJ6u =9Ҫ+*YH0[лK2?+b.U7-FȈ wx*MWإ~0;og8s+ V5idl  |BoP_koUy%u'O-47ԝUע:z3w/O9f QLݻZ Öx "p yc&{˘`'ZdrxGg[::J',XHQ*hQb$߂-wrFp3eW^źov=pՄqUwߏ-NML]q%c~ jN]W,ܑd# < K,6緱/PNHt]I0 S0~-)6631D+T5 1Z+gF\m\ԍX*0/^O+.zw @.zsT |DRbQf5H d5Qj:_\zfqt|*LYjRЂ'Ҁ{L(@rh¯S)0657ɰ_lv]A2{rfIUZy!VCjoŭ8A-Lc1ܳbgPי_g!6(2ӛԛM;(SdTbjؾdU,\e,U;|!vJ=H**v7Pj6]W><=J]sC#m_5,Xj̍hj3DGjO4#p$2 $\tW]DŽM'~Bה]ŏ8Hboz/uT(q^lq~ Aj!AT,Is ҀMPU,'[ 󳉕;)Ǝ @q\sHZ 'ok'V9ڑ'rrf@S`^A 8llyE=)9^މ8o%m\1 1p8g>ҋ03,sn}+: 2BUݬ$AI+N<8{BpecQ2QOWcW!L}c븈ct CStG5B$n* wrR/M;eUMD%/stw"6:YB7U!!ÒU"*?Ę\rKP,\(Iׄ(tIdz'řƁDg%#%}п|6҈ izSL~ Ȉ싱YGh6i\LJUI ~ NJCQ[4$sS)P>n5_EtM5TL Qr7H'ALai\t/(LuIyO218ȕ$s U/Dӑ5D+C^jm()Tok^b6Ԉ΀9X)&nZ$np =KL9ek6kW=3N-馯FUCVB!F92K!i'1 ? (7ϲk8.o>Z=Ҁuy^ݺ -ɩ%zDeք@+교k7 E^ x6Ȗ9okozA jςr%ŏj ۗ),wY.-Qv}՟RE]}t(۞ Y-wx@[ʎa)~̱D&6)&"#o"u!Y:@X?IS[rG̬z*#QfD}(^1M8xSV ((̴6# QSZw2?rHb8HǤz}vw&|/ i56Vq +^PsWYkt &|oؖ߀-\m'd}mtfP}Ծќtc[g{-**;2*)hz-z4dCoLjIl?& ]ODWuP>8oy-/gT -D;d"H r?YːZi% 9wwz?& H<#[?}vI<_ YG207MhvT`-:uRFMbs!d*XL=;N4B{}N!@4-}9=UBQF'y\a0xY*W6+Kow, )! W_ī`[X^*a:Ѧ>կo7|ޠ 2\ 30Rp=#~8sp<` 00Wy8կ8Rވȵ(u]`f),X*%6DŽyv7}h?ZZ9 E)X; Ɲ-.3|?Oi6vMhV`5Qd~SGP^ bL,dn?-.}C)sN8҆JciR3h,ehh>ie3@ϔ^oIA_A}uHH [ l:%^k)n5v5j}p cӐ^X-9rB"&Sڈ)J2ntYt7Z壴 *rUl$J"|︮U{]w%]CL/ք1GݚnYiHjC3LHzTb%600lU1^3hΘ5 ;kC=ThQ݊4*} ).٧xv!"{Imx[IF+ǣHKP!Urͳ):r(mCN8q(IO#*X[d9a*kjB 0ꎞ;N[*`1'Npg" F)/bʠg݄-Vh\%ŭqj yaʱۺLtIQ m5G$.&k$HmH#%(x "ܱ >pJ/ԢpÚAVW1obH!Ku q2rIkKY9.$z7%BFosr–pi*khO^/P;ol5e=sٙldl\ ]VyCG& Ks@IuL!e4N08Xڦ2c29|\$,SPOһIr=J&V hN 資+T풮=Yfr7^Y3&#gLJuuE/B^߂ShoGZI`\,3"Hg< Ld _n"@X\sƮuȘ}?;V631Z5_d(J݄K!=%c T#ǽi;uoA]rxxщ*S[bTW 0xa&56f7^L!t ֎pKһ$:l#u(kh=䒈8nƃ=>!|E:7x98PKc%f]FPRݮ/zi¡9ɂ,n_ԃy=Qq{IrSTځbDT 3!$xC CN;7o\N2Hx߂К~OA|"0B>&tuM}0 M$Oz*2fkx/:K)Vs܄5pxH/j~`â_nXnFӽ>qȤZD3&0=˄[wiˠ|a)_Ҏ'|WNj}FXLQv12Yny(O n~./sm}'xIfR0 x6bAQP,ܼ)`\R]s`a*’CYЬY]RHZ<RB8vnkGNVs+TTh< wm&u)S}poF (ؘ¤BLuz8lsH VFᏑ褬V0^1t1f Jtܯӽ9S]"NQYbHӿ8oLt"Yhµ&4bB܃+(?:ߨܬÔ_'}9}|j0c1]xezAOnq#3[~w"P6%~vAm3!k)-Æ\[ >d|Ej&IWg/_~^F9n\Eol B0˗dd9 ڎR_84ޟf(>|qc_y;[oAT]0.0fIQ+D1szJr~ d3΁)a*?@~$LkpN3:^ۯ_Xƒz|-\ee'}QQ}+Tc)t,<mnavL0ہY5+S7\sΝZϡ%j* S&ҶЙn7W{ŇưLZ_w۲-! Ҽ+-Wxنyڈ!GSXw y9\JSl7텒-UUG,"kZ=Wz57g^4 iMwl跶xB挢JfhO۞~:!V }lCN;{d9Rk.l i_&xʾ7XR|Qz:Ia"T+!hq>~=-c͉fQUb(܍\WXHr7 fn I ^ Yug{6ʾ W".eˡY~CaF,)@ 6.lM}9>F(/v7y<6`W-TڗTCc2PUap:60'kC+JZ1z"mN a阯;l(~dH&9,>iq=_Uƺm>Ӱ^*DD4P+,kpRcH}XSՒ'eH.j Am)G?^lǿIy?p#ǔ^s)#\Vq "q}eL"ÎV@g&<tGk \.L/D\:*щ!FNg.&;kzwב@sv;`i&BUis;z ʩ ncAG/2MU6g@Jq^1~iuSElM[A5H3z_Jnγ[ČNfZYb Q+bʻwEB_m[lz^F{tΔ̘{X|#_TJQ d߇}=Q N`z0ld !ffNdrE˃W:#Dl\ŔdXY3DTHo v~cj)wi23aF|2V1o~#&@JCRc n$$+ryz_(g^ˋ[qqhQ߳18!nAh4m7PAhC㏽֛^DOG+9N(*4Cx`R}S|NnSE\9ۂ䱳WB {`GX٢XAbnA=Z9U;kJSf'`ồ_B+QDB9h: FdbSR$x<;X|_PcA B`F `6M6,W{Z28FEMU=CIEvU]ޡ ZV}O<y@ H?uN%lL2 Y}vcTkSnybe3ZG56<;zz]Ƕh6Ъu JR\ -f Jmqv|Bb`~s5sp| :xsDdXdqGO(ç Mҭ8_S+[{Ot,~#f8?͡"U^<p12 6v!\= i3N tC'<|cn\'g G7\o(6I$@+ȕ/Z1/Z3dѭ$:qbÛ$U+ [Ixv7hORUʇ"A}_ 4?c߂޳s}R, K˧ 6ϒ3!  `X̤~aiXp~s>֧ #mtD$1}%^1ܬf80Ib74</{ @ rS-  mTR*ʸ@Ӭ/Zv3e:#7gS/,Ls'bh1ou±eYg vQ\S"|hQb0.hb^ }Dٶ6 +& Y G>O&r[AF}'_uВr)?#nQ?ȚfHĠM`7VC;S4 )*9T~t6cL %ǼūDd\Y<+p?B)BwحPXv9sBqF(2~&jõCS I@Ƃש۽ms؈\ K4mD ;Az`*}Ayl^ctzF0R*JR:X"{DOTh$td@Zdd-yBD^yűZnkklCNǴB ؒO-}9JxHMH _4ҢJ /R;/f܉\:#Rsm`4 a f#nxhO)MbaǴێ x1Q9f[Zw 6QIiԢH1iԕ !,Q-]c[`>x4M.e,z,i2f0UmwϢ5}DBȩ=U$Ng饻+хR7!FFn+{#k5-u+Ш2n ,)݊{l'jW5<SV`nU2_+q4(8hkȭ2~i^oa4Ep{@}>v!Հi:Ҳq˼xA<F1rk3#>r{+š^O)زG[R܀n>FO΋I(!5&͑Hnl~uxYTCcL¸i[7T}ZD˅y ]3apy[t՝P}htc'*+}?{5+oc1 #8|@zZ N Gt;tJR*#ፋL+&r&c X\7ަ!'r}*& ..9\S(5c_X{T|?:5BDpƃoK`!Vʶ}h45\O%?7$(O((Rf˛G;XGnO*,#CտVA5w/̕NB,Y8ii:HpJ&ug`z6_nTZ)br)TA`u8)X>dXL*g%{&do ]Zjq>bɊ /2z> k^2gr3$)*._uHIF e3LVO(yͻYYWnO7~toY|r]XPq]g<׾j &U` u&:qIQ ٬!\7rLr"GWI-7쬞7*jY."̸:]!Q FhFn[+6PHlK>,ežĮވ1Un409yb eq)Yl4d~˰ S j99 RuFu:VH-hk< ~MZH\\h]xOz~"ţv^pm༗';e`}og֝辜\@2USqG%<uDHmitVn鱢dS`fH \K N1ȼ%1G6FzB rͯϡ%!㢆K#d樽.+T,uMs.ECb.wCe{ 5Aj s;@d޹نKg#fJ{4`Hb Xb w͘aɲA]SxT?`PCR 4}aEEf:Qp FQIV CC:i/cvݚBF1^͏?Vy?ǀd3oS* }̢Z]ڼi{Ry|dEBcX&鹙(_k(]QdX|"4n=NUYXǀ2jm̚| <en ׉uz+Ztg#>O#xcP&FG0TުWqVRU? {-e&f}cSE z{X{ĕ.VsqxÑŨe:k/q[t~$6)Jt~tvԒ>A<ѺRZpxr2q&$IՑFb -IjgIc*&mLï4C~޳e͡N9qOg*f8d1YO}<ُt X ƼP8GbӃ cP¹mCInB2I[CCu.@2xC٬-BAdmc=23#y甕O$*r垃T*՘ZKj ?ܙP…d Vu[ku$ru[~`gTN[a&߂RԜB#ഡ\9rI@JMtQ [6rrbRPϟ/M֍'<)[D[%%7BFYUȸR NWP_Q/묪kX8#qQQO@>y5'Z;YJ~d^ \1dYqۯLGxJ՘ӥ%ܛVFݪ}* l=}PNS%F GE53!q/ :l\dٞ9`)ftͷPli/6wm6U-Vc\ާr;sT牑v=ODv ˶^_rd_kz{UMOJ 8#us2"[N(IۃC,{•|ćp߆b^zo=SNYY tCZΆv2miǣ`~7YU>P^Ȫ{@p?5| wF_^$#LOce .Q M1?[ zr:[yHRDA@$N1/0FRP DC÷1 -O[h tšW#qmVVaBaPOt«Uցr!>_= ~tI'e'GRBS,A߀<`- 7sdr(kq}┿wu [e'! ʉc%"{\'?gO56a:^1~7(\OVznhP ˚F~VNEopCDԪ _]Mw2zmByV[O㋝5>^]e~mgF獰B`_W[0P M{{'Sk cN_k p|ӈ2\#2Eѐ$F,Ng(⮃t[b7"=ElW՚lOc.:cm_~зmdhjgH&bܯv#tL;0@w]D)aSTda+ k+\opVJ:^ڹԷ҂m5.vԄz1f8~WfB4} 㦢8уD!uËwF&N;Pu6t!ף{7ϲF ]vz͹&}ʔ_-on(C]</r~HJZp\Mew@\K,D\"K|MH{Mf|smE ҢA(a_+xC25Ro$$3.,3 'u >+O݌MEmN[A4RrGљN+E[S&ѿnISA]1p% qek 6FDI@]|`yQW)yFFCU4By3% N6L.&8u8tV>dTrAvgլ]tpձhoވ[nVʹ.PQyM7U7b[n41 oq[.# ] #?4ur 12qy c6?ݘ -$%:|Wa}WB,Inu꿴 5XX Rg0*߯~G G ˯W֠##&K9jɆ۾Oh(_berZ5nѨ[n-C;0 8-Gn7]1 ' \WŵOBM+yq{AF#K/Q`q希\zc,5"ht( @9*Hklѽ/,>qͤT"!BPcd$~9b>b'0,e|DjXkDJLItwcCX.B, 뵂^6#xV)<}kζdObp:/_j^&tv:)[X/w]rp,O} FLN U7(BPZN:d5O UL2czs:B rk"/1 HYhnB-eջDZ2avB]rv8V!_wB [_3N= j'h MI14 xʗY󷵨q,)P9;#*F{9 ;d6[6kM5OfcD'gLIBWNjf&K Iloh=(kWp[y"6QWޙ, "RϦhr|{0>n={DR@WNR`pb6liѯ'-2} ]q7VU6L_2~+qLM3MTD ZUA )c+L_dtɳi M^FxeM٬3!_@*ipŬ(_ծ}>+;.Gy[춚7=R1ojKTq2X[&i` Ii t:Q o+D H!N}.ax"(?ѷ_T6vՊ iz[;D`Az9@ܲI)xkjZTlu#ԸsLΰ! [) uCLNFbs@[Iӄ磽)Iud4!D=oi5752_٘yEFn4 ucGF[+62{c-)2niG)-gR۬hMTkacѬ3,(BL|1p>FJJ =$=͝ O&b~0p-Qt?FUnycF-20]L^ dQ#EBу: c-f~f{ ]F/>uK?ދF$&|[Svjv;4 GT&TcQyz:;QʹqF>Bm*hՙEwx}>9wFD\Ǡ&+%ax6;+֠XKt /O*L3fz06~acr5GwEomdn$Cqygp>*]I:k~k4 Ad J—1&Mev>hϸbycKဣ|r+ꄉ^jȘOea$~ܾV޹=۴>%aO7vt돝i3갤}OpMu)3B bзGj0N%R [::7_DElw2 _3o% %>򫀦[|Vr ݻBG6梎W8U gu);Tn<鞂"o( 4`8Xs=^4WLL LS} ca|Fw «^J;BJ-"R%+ #/_*7˝r]H9٦b3dAL?cs,%^zb!*q6"9) b =i1u("gvBkU!7TLfMR)5񷿤v胄d Lym-PeE_ȮZx5[؊7G6XITB(6gQBEG)sˌpV9ގPEc5U].pH"8@ A ӑ@u]gS-rCC0PL?yEd5]񖓿gRULn,!bC6tX{I8(L 0LbsbgWxWJ@0u%('ZkVOgƋcq<߼ Ҭ.U.}m-,/ 67Z}iɂ|u+.sQ2}-6jgZћU *0GA|iaS/ \L-/^^9{gW.-̳SqT"AKp ީ[`}HZ-S,Uf붆ɩGy^9۴O$Oܾ m* sQֺU431(Z`s=۞}I0Y4A Nׁ*/;?{ f $kaK P|dBx&BG3i._$帮-ݽC(UTyAǍaa \Uy0u`Ďۥ[sm2]c{!HR|@7aa}3cm(ZOMn WBeF!2?'%&x_=8l'8ӌNR,zDlt13U>lTF#a*`Vz8 ;8%H |$ڼUn2<*ͰkUWj*d듬ˑ>"eX%hBM[i7Eb/"voxvz9Ae%J6+bj>f8'3|Ƈ.h:HM"6P#PdT`|CDRڋzyf) 쩭rVi>m$égI3*xpAe(w ?9$0(_" .Rh{Oms?)8iogdЦ}MmFOu@nRִCRm!fr#$m$ZLGܥ'';77D)$|vjFxtMTCFt"D(Qx︥(%7s\1#Th8x+/e#2;F1%PSC.I~ 9!ܳGCe aUyX5qp*|\ SCq7 gg&𤻇Q[Ar}+]dcVU#W,^zuP^p2TP!#_{墤vXᘆg !ņh|Uܳ+.N6P1y5{"1&1i*88.^ \^}T_f8936u \k./x"FE&.|WVcʸܳ(=Á YZ