liblouis-data-3.3.0-lp150.3.3.1<>, \ȸ/=„3M2ןyM+I nc^SYY9>fK#S}KGMn@nDʄ:W0xRIm)Yϱ702+$ݣ > +]s|Ԡw9+k\uK=.,mԓ#;Vr P]#mD7(x(WtmC+OlX&T ޟmlf&2PeW}6~U&*6]7\r r)r-ːd-#zej!Pn㎿>>?d " Y\`lp ww  w  w xw r/w swyww*Pw,Pd (8$9:FGwHwIxwXY\w]w^bc rd e f l u wvzCliblouis-data3.3.0lp150.3.3.1Data files for the liblouis two-way braille translatorliblouis is a translator from and to braille. It features support for computer and literary braille, supports contracted and uncontracted translation for many languages and has support for hyphenation. This package contains data required by main package.\cloud120l1openSUSE Leap 15.0openSUSELGPL-3.0+http://bugs.opensuse.orgSystem/Librarieshttp://liblouis.org/linuxx86_64qA-!#H(|P(Ag?9B="8 /K< !.a24?&e6P*qb7?`?u-b o-q "~8+N  ^9 +$7::$S)z WIl+ 6v#NW\`mmO79#:: P 8tw!  _%n/,,*,,#xћI7::B Y<%(?l)Y K/8/}72qTs)y+ ^H6FE6wWzRn &!FՌ\R0V}|vBt+-X</x}|@p!x$S7588NK$.O% } /DG4!6~5~7%8zAS$* T87  )U ,H(9e*KWL  - *] "{v 'HwFI ,X<9aV %u,HE ,AAA큤\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ\ɿ5036761dee14b65a9ac2ec97c202ce9392e7cb573712191da06d29847e75328eb7b9f07d00d877b236774e36eea0eb138ed2ff4d03ad53c66f211c1e715d1a13c182d49651ebba266d8eb0a61429cfa68182bc60832c3d0148acc34acf70eb310b6b44c31887fe6078126af6b46fcb583391698a5795f742e4c7dc01f3b300f1bfb18feedcdcb1048643ecb15a4ef11bf8c73820c413241acb63a6b6d9baf720d37e6afa2f67800ed920e60e3d4bc60df16cd0a215c33aa1662dc0fa1ff552a331f15746aa98bf3d0150f2a8ef63e327ba5117604c143745f5e09c260566b5d90566995b0676574f74a710ce74c5de3af8269a201b06e0a8c3759c84fd5c288978860edf9d59a0063395856d656ac06b6d08a0e54ff9ac05461730c3704c4ebbafb767dd9523490d368952edb04b0cb1061af46ccad680089d208a2040362dc78504144bab39eb329815f48eea669fba67d836dd1f4501d216a52906db2d42859498b18c534f2755482554dfe13e2c11da8e046e401a60a8396ee7b0fd4b317c1d3cbe7d0814555297da742d2174628946b1d6e08f7b0eeec783012a399fdd294d9032587607cfe2fe1b75f9641c5e8fbc6bdf1160708e273c57a8d540386cac1ec12595825a71e865a65c63c319bd2f5c5876c611219c39ac80da3bfb955164f1121cad2a033fa41697ea49c07ff9d5f98b567135651e168c1d710e31aa59eea8e3d1708c4299be780bf98cc6fc541a86a00b0691406d18796cf5a97dee5772b2cb4677d21553fd9c066a0e7a56a0ca60c1f762202a45306328c12ddd42b33c27fd2510897e2e857eba4534ee424b98a116fe04de2ec380d73adef4467e07ada8ab96a2502c2525f458d1a9034256034447073b19fea94065670068e0f27e7e20ad530f335fa93a2dd723446af4333c9c31abb3fbce65ed851c35055b9eb3532739d28edce6689c6cb32979b4f88dd97eff6ff40a616efcff34d6014fdbaf396458b9ab20ac897d97b0613921c6053bf82958c03f8b9705effbc0885dfbf70a3f2b9652a7aea5d5b416807050d44b20ab10326cfe9d98a8cb42aa6c4546f15c3b89ca49affa18773b36b29fe6724d2192dfb6d36a3cc4e6226c8a3a303cb7423c350f3d21ed897f5f78453c76db313363c635830099ee1f13ef7ee91c458bdefbbaca502cfda75ebe4c1ba23de5b8678f596e2ca4535ec1f98cc3568c2cb2afbe3abf0f2db85040a7a27408f854618a3730711af9705542afbf4eeebd005959ab017858e9585b6ec9547755dcdc69a23286af5e2e3903ffb9d85dc56cee8303a930baff32abfd40b4b46319108942ed999070f289906b3363414629c3672c38ea4d156cbfcdb8ab825e48ec1fe1d71f13467fcf8637ca72d4edd592b0b30bc45e24558303fa6db1642ee99dde12c43a42938edc7de26e87d09d4acfbeae6bbefd126239a2a469a31d86911bd41ed896180977fdcefa2906c311964781ebf62581b1d188b428d2745c689f86eb13a2a291f4626707ef0655fc54ccedc1c9bb57474f91bcc5f101c115fc410bf18a15b6ed291cb8476448d00f4f4ccd2447c31bfd534a325720e6ec2f7573ada7cd9a9be274f07d818223b58a616206fa57761c0f2c98690c04437726a332e3312ac0b4b73168d09e59c90b72ba6c90b23ec031e9f1ceee58a37a8170eddc84ad046c00aad601dd73cbbadf74c667e279c8ea0f16291ab4c166c1069dad6da5f46ef90acb443025f34b7f2bb8da078bf358fdd52f0776e3d8a0f687bd887ef3f99a6be7bf239d37c4b730eb64066fa7906eb18c1bf351f0831a02aae9b6a804f98417cd4d3a9b9baa542c09795ac289a0b97708c257f6407730cfac4ca718b2f3dce369c482b774bf69e04e547d2be902f00dc0fce2908c639023efd748bd3ac077ca7db120a838e97031c32796ecf59da0d0e3f50149c6dd2f9fc08645eac0267d39ff041364d72a8800ac8c6f77201f3ab37c1b703a89b87835e9aec777d561950493bf863eb8a204efa7d9d44ec2f1542e9352789b3901d4667a77aa04bb832b8d5925a5ca07094e97ba09c21d77750768341b677c88bceb47c4d34550c549fcb722c8135c7ed83b808df30f84cd898bb82fe3ff77f77bbeedbd5e368969eeb898985d86b128faf076bdf15824ab17b992535264a286ddb9e26074bfead6496abc3427ab319ade417507ea06591f6ae428666cf642b6769f342a5fcd9bf23e8a723835925fe87569fbd46e0c19455131f1ede338d07a5de6be720179960a5fe5f3fe9f5c47f0ac9ea07fa8b65586e28fe033dcc2bb93f55e5390e7bbf323d9d4ace4393165c5811c33e06e2397911951afaf797d0fd7cf85fbaec6de933f751911afc8b5a769d81616b211a45c340870f47ade344547e2cfcea4da3980b2e9abaad3381fc6aae423b80066a19c5998c10e07bd42ee987df1d955863391a7526081d68e044788edf1ee77519291027ec78ca98014c2c6416e1de95989dd5659f400ffcd171c68128261172b26cdd269792dff3ca40dcf806b27f314fa0b696a61008193cef5920106cc56cb4080317ad14dcb60cd6944515fa12808376e0ab8b9975eea377cc9db047f34911b04fb909cddcfdd5b9a50957c3e7d65871d197e2964e2cb23b37b29eb7efaff92c9632c1c211214d548b9e9f4a8a601f3503d36ea299073c9d5d6478905a43e0a638c7b04a4cdc3825f5cd24fa4287f9c6a0ce40b39e7eb72172642471db6bb72089038e40513f72f28419e6dc58519d7b4eeb17a98a7e1e9787d3b883c9843fe9f16d7b5623688eb55d08bb8f036a7785de672c6ae802dbfd5998a4dbe309805e9f106bf6df116eb284d21563aeff9e2342839229eed89bdaef218927782fe35178f6b0e01d86ecb662a0a7e660094661e18ea0212a77d641d77f3e29a68713c04b59eeb11338271e9f4c11fa21208f942f1d66e6346a13fb21d80da4e81b2e839a1abf488129cb86b389cd80d15134fb7e3886fa9daee470d183805cbfefd40e64160c4429552bbaebc4a5595fead2f1b36747985d4f323ea1a01a80372e6c7ac8aa835e26d62fe42c6b49e7ec55d6900da6e387c33dac40046e15ea77b19c78a25df2ace43db694f89304a8eea8ac25c662719242318da8dca2a9d59932757de095716bc2ebe4038b545ff49d77e03342664eb16162084bfa44161bba52dc3f7205b771fa9afe84d4dc0d0d41de8adde776cc832a916063e2e9c62a55f8ff2ab04cb2634bba964937e3429ae3cb14e9e65333380fc9607d6412a9a12f6690c703cd975a4b04778126e933d94ee3f05419de1a3c1e9e82cddeb9abf91823b0b0f36be4f565bc3bf077284f6ecb051b679cef0fa94197018c221f36b0995a3c367fe4014102e6a6f3682bdb20c53458ee813773288d115d094b965c9f58ef0bc3ff98ce80c241e248571e0eb5a793aa7e93ac856d641afc13a3a555dbf3920eda758f6a0f94182cb61ec0d673abc07ba63aa90d7a451798e18753cff172d3c27d2b6c09c8d8f6ef9cfaa1de5a241b3d0afaf7b1347d431c2153c3c5057c3b2ed4af7fe57a781a7fbe8faea492d41585d9c8a1d8ef17468279f178baab7c3f5466d459438b22ec6d5fe26cd7b53cb481d273a0e8bacbdcfce139ecbc2212366aff72153042041d2ec0c0a4cc52d8ffe14cbfc79ecbfb01c3dafc26082bbcf539ffe0092ce0e56eec23b5073c41f849ab8436560d12fba58fa4b0c1b90a17d5e5741e0304e1df73f07cac1d475a2c6ad6c7d7ee93922a2ee11c76ef08857531dca7ceacdf6b6574e61da7c5538782aa2ddc7ed7aa8cb88fa1ba109c501159ba422f6d68a6cc0080f31a62007595b4c54cadd61634bb71ed51709ed84827012350fdbc9dc45a0e29b5df3fcf3f84a5957360c3535faac6089535fb23ff29bd3b04febd54f3a2d1b2a5a1054f809f7aa07ee85a6fd2c6c4c7104a2c269461af44273f1986a9f04677931e7926e05b361f11bb145d627e9f36482072d4a907db9542c4f45443ae84cad1e81b943415139576d4ba1c14d7208f1b8738112d2844c4c1cc4f878ff3ddd542fecae399ba5cddb0f4b698c4f6e5f62486960117058f64d63b57a82fd7301fdd2b2e72c5745bf50d96a793b527dddbe50a001048c64b7d1def0ebef5aa5ba3281b1902c6b863a2c328b29462bc4b8abacd000108865215a5a732d8fb6b5832e214e4ddc227fd8d4a4fda5de38afc055d633118c279002e964d6a45a4ff5b807e31e76056c67cca053b8eb37e1406872fe4299690f744291151ec37f6842da689f6b7cb83eb78609c7fc3b21296698e05c2de4f6b6854900c5c46c76c1a459944c7593d4c2053cf47b593243fd6a45a5e79810c7c9bef380379bf0409e7b11b8d9d6c9b06f83494363a417db42422f5e81d8cc064e7f5810a24bf0f168dcae7ee09a50aa2afaf292c4b6d9a943c09180253ddaf6d068bd9cecb8412211f6e7b8b53571ac7e3281934c22b065d5274a6f5d61815fef56e30464de854028ff1104992249fc51a4ed26689dbb58311077c3b34265322f7607c9cea1cecb6f9f5195f6068bde6e45103466045db98c68f84e537fd5689460aa2be059636732b3ea3dbce878d0573651a3c1fab16358c84eb7d0e90c94f8a6a2b266ff0ddb7c1a4d62eb6f53108f1197ec5d5ccfef78f377b6c14c4ab6356ba7e647d4c168cdad23d4fa2926bdc0e46fedf0f18e755b3c50a904e5e5b16b635eac88eff6a086f75db82b2106d282ef3fe7d3f6b954c60c405073b1bc9200d2c5d8eb2b28bf15e2befffac34337e310238277aa10b114f6c580cd5d49bb9fd907ea3195958334f63ec4f323313ae533a5bbf7736fc9d202f8edfede16f83b67821b0a44d40a98c43f23194fbfa9cc2a4f771094aee830825128c44565b797c55815c4a949415dc29f5d73c06931a39bb50d29c3137333b287011a0e348468b1664ba9d473bf8e425b585d2e88b4a5d79b39845641f46a27e539521ff29e17de27011b983f67f53075043a7b7a80c15c939c11b3595fa3f080b9997201972d4c333f0fe579c9f4cb409923daefdb52a90ed835d17d42778b88dd0957c15859eb32eaf33189ca8514d39c6dd6deb2e4e29e1859e117ea32cc10e51d63fdb1915a3151de57eb04a6f3dcebf37d76a1b7c201f58b841190a6fb29e25156f8c38200fa30648bc786783cc39db68ecbec4da2af2ee8d2fce1e281a3c2009e5cc45193c2f434f5e611206ca7a87107060d908a9e79a3863d0b93bb36105f1e6fec356236f2d3d3ca5ce67756b95d217a47e17dfcf70e64d14fd567a4c7e5676d17dfb9d9c667e3d0242a1ec051ebb1e661126972c0e296550ecb89296a6459e011cc25dc037b7a9d3dfbc1dcde6d8a5f76cbe49af3f95882e599ee04722e2495e1e9d5546b1754372b65d6e7ff572619387869751e052a63033086ed6ad605c00394e62dc9ba1ffcb9edea3f51a63442181a412cfd27796ae66d2c744983e95706db4b8693b3e5c66d88706bf046f8e1e8db76f8135acaf11353474a22350e00995f6f4a194bb3e610e10e1ee67dad1228b8f661d3023400ce15cdb12d6d829acb7e419a36431a8cc3338a891d762530c002cbd84dd3470d00ecb763284d9fc549974bdf54f9c45202d5fe1dfcf4d19ac1c1f47124211c3b20ca2994289e2b5e4e73dd6a471bb0a9715280ae3bcd134e20035d5149acd34531e0f8918e3a2e0d1d101873439b07bf59229cc1d26ea8329116b4ff6c094fe261c1479f342e3513b2cde8e4731f0e542b4f0c664ee359d2038ac166bcc447f3ec7651c0aeb732aa50123c4ff08ddcb8cc1d17608955631677e6ec3305f761da27f0a4d510cf55078dce6be14462484ad7e3eb575988520b3f4e114e4548e4bb1c9922794e65d9c5aa846c97aebead115311d66d79efb719126d3a01953b84412c50a7ba8b3654ea922aaa61a418da0ac3173366c9d9c9fcb31e1798c1752b305dc17b4f71fbc07a5494820be68c509e836cef72824e28b8667a0ea6b27a762fe6d2ce345dc318a2c3d56390bb1d68a7baf90402ab89523f66e4af85ab091de7673234697210b50f03b4a900a5853866ca4572f5affcd3a4aede5471799997308efdaa444667f27dee50aa61e47bbab88d5fd04d959609587f7f782fc21a51db24300dcc17598486d2970e03aba40f0ed0a3991e727678a3f1e52f5c3f5d922361b14c66828e394085eee632004c516dc95b39099831df082d62ce918ea4658f18053c35f78fabe5e9ebdbd61d5a755581e34ad089450be0c4c2349d01670f3e4d6be5c8a7785a771ffc47ac45e496ca53bbddfac311e193f3fdd6d988fe3c9485f4334f14c4fa40ac96a8e8e043e65623199750b146e7966ac83e17ea2201e994c7faa034d738bd140539e905037379a430661c0e9014e937b5f68cc4804a7e2b77632c2bdc2c061536a6cc8ae9e4a6a7078dfca397b369e10537bbb9f822369281deee47dae6a9bad73a1f2bfa90b8e51fd0c9080727c57f668baa94daee2cc4f6fcb3a1f0824f19f17dfcb7df756166c4247806261c166e5ff7a3c6eec6bc0e6726ec8d073ed2b9ccf379ef1a852761ac3a0ad40eb5ecd551e9937f2a4121ec0e1e0b86056f83d98fe6d14f429969f43b8a4c57935376837200884f9f43999cb7090941c0267396e4db770af320dfe0aac241825f11e313b5e780b978de926c9faae5167df126ce3d23931ed24e94ebade98dd1961f1761457fe0104c1888262b841c1107ec64e65d15d1cc064b69abbfc86711120666b9f1e3f0eabc5dadece00ce7565cc5013a77fbaec64e41c985e16cb68cabc08690656044c0bdd06dac8c7e74a43c42ca5b247f7aa650398c8783320866303af92796c40d46d9c8dcb0cd4bfc2a64d71d7f855a10d6363ad4ed66a8da4c0582f0e66b84efe7269cfb31e752e94ace7bd1fef9982a63cdb7be00163f2e36a2ff26eff96d997a187b00a2152d4a904dcf717954ff4c936adbde3586980ba2a02fe066a46958d1b18c32c2e0232c76d783c352eb377abefe95c5eebb0555357b47518e2a02e7b49040c0072c951b3ede1ba05d49877689ba9e07da69bcf2d63f56b448de198fcaf6dac990170a2b3b2b1783ba96bf04efd91f005b85af89a17b3dced14a12ae1b0badcb76ca8b6667d8cd784cb1c314627a5fffbbe02aada2e6d96d0be93fb22cb9f7c9d02e1d7c127bb50f4bdadf8cabfe994c7b5106d5a0e13a86ac4933ac3a69d6c40a3c74027a80a5b06387f52de28cb3ae44c05006a535ac3f203eecf6f2f75d09fc37611a0585908c4cbad8fc8982fed8f2bae64ff7024dc45a6eb8b07e47a9706c5ee259ee8f4c20ebfe0a4510ea87fefcdf984be0fb6ab92f5a864a805918aa17bd1cb8dd46f8efdc770ebbc24ad0fd8fd9b626e5e2a5e5ce95ad764e21862dfa9d3973501333303c990c8edadf7f0f344ea17b89350865bd36c1ac33cb641da1bfa04c7c859d38edc7d0725d7774eb9ec439dd819eaab3e412c6782ce9993bd69fc21aa6e57fbe0871467fa0d982da82f1574a7742e00e7e78bac09f06219b44bfbb3ae61134789de67b33a107b804b480a992a27d9983215cbbf8c724c04328c41e55ca56702a24eea24a5ec472b367dbc3b131f3cb8087271b6e60814dd94c9908e8d1587497c18eee5e123a32d694cd97d27f1a82781b90b62f1a6fee91b247300db5e9d7aeb82df9d28f3fb86c80c1d10946d25f8e2b75351b4b4697db4a5a630a4fa13cbc45443e4cef28df105701f0b71d95d8deae96284ac22181288fd152b9d34bbdce49c451189b74e784a302beb59be9c72e8b85025d47ea41c9518c1210be4f5938fbc37fce1cece70bdd7159d6c839dbff791c6c835c3db2cb443877dbe3b3111a1b28ebdc20cf3e990c1579aa3109290593218256740272f0973af752e9f1bb71e1b0f3f1951623c37880f4485395a52a73c052978122fd74439d4be4bdbb1aab2518be0dd230b5071f00fa3671383e145f746966de5355a731712d2088307a36da4367f9f1344958e90be5ebeea1f56806f6e60655ff541a2f4300af190f0986359b602714a9417f0bf228a11cea785cd63a9f7fba8634e0fefbf19467271582409b9a634c535ce6e5fa112f74df58fc2b12320e5fd0b3bd1f1b691ebd2b5cbbd60b888e5ad3534d15fb2d6a2bcd1149886e221ebfccbeb78e133c22517774993d5d9ce1f71b92fdb46a67145163ab846c283697d3ce47b599ebc21a30886509564cb1b46597e352eff895a586ae624bb3636f4d55ec9bd885faa7573cc1815dac5e2221d6a017f3d1fb1f1ae463a03b6c5034317f62fd34b442c676abccf1e5241df3dba8e03a8dfd06a479794405a93d5a1c5de7c191d8c016fd35a4abebc6bee01cadcbbbd0c6de6e242a4a2ab5ba945bf650aacec3203aadc1abd43afc590081273b82cb7a3150b6e7457aff3610ad148be843f22bdc48b61ab1dee4411085a5a007ba7a3bf4ad56e98a20319144069294ea38fae175f30a9232dce9525a5d2fbf95c09fe80458c8a38cc4a35d88405af5bd886525494aae578a3a3d8e459d723e1fb8e977872dc3afc33ecd88309b2ff7fc06bc1acb9a4b5d71045e6321cd2c0bd22e8dbb5740eeb1504f5a3a7514b1f9da74f8e9de75f333012b0f130b440b2b0dc92fec3990a2bf2e6c39958409cf679e9b7231dcb3088d652ffcc1ff7962035d0f440e5d3ef2c8569199c3592b28167fcddfda503c3cf4522a6211788ce45c898ca275460888ca2b88e1b16447e28b15539a3afcbd5ef6b796f885c72fdbd728292d8e0126d3458aa2aaee7b41a4451ae20d263cf1e926a895d94937087d20abb75dfc8a281bdfcd6b4d394eba588f23a8f24e59ca5672adb4133f2386b78ccda59da091b518ea549349bf7a5d2ad3a2446140e6a855d7c15213788628d806e8d9205c6c479432dd0a8c12793e89e42d21bd278e5e9fbfa7baf3eeac8c95deb19bc610b8e08869d9c6c9b07d9f2c60bb47857fd629d9a453026312c894665d22c72e8e1699420f6c3d39067eb1331290207e754a60d61c38c812379affeae3cafd640997de427060c6c9b07d9f2c60bb47857fd629d9a453026312c894665d22c72e8e1699420f6ce4195bd2bed6543d8c1df83a775c922b08ea3a1eaadfb97179ce163e47aa706b6f18ee89de6db21d9b06120a5527ec41d8132514fc112ccfe7d289ba91649840bde8de5c60f982ccd45721cec83d49c3cd7e9a9a03c4084da039154f8b5fe7ef5c9e1ded87a89c71418aeb3bd24fe69b03db51e984b8b62f491a4d849699919e7e0d3f3ae8b9137698d580725920bc7d09777ccc81b48efbe8087c75d8560732fdec00e449017bfe4814bad25114940577d5807896b2ec7c70846ccdbc097d42e16926be185437d655fafdeb69b4760095506c0fdc4354afaba9a456f05c2c28ce068d666194b42a2b08e890021020ed16e6dc7828275fbfc01f813c3043d856e5f92fdb45eb35575041b5c1a54c1b9214ee4695b26812bd435466655f6ef892d36ad34cd4d5126cbb79bd3d730b3d350afec39ac24dc0958caa6c8d3d697b47c7267ad70c57da77ad64b4e82386849323e0db2b17621ba93665371ba4ee7a31bf8cd2b2069880d39e62104e9e27a111d7493997640348075036abd0bb5b173f01c843ca073a4c7084aadc3f35cff062568e8ffd82f120738e934a10c76f64aa0b42115f51997e5b482b48a8b6a71282f27fc85704e5d39cc9d4f0bda030a2bcb2be1ceae832790b0b9fcb68258c4d063b54ececb13bd4d3f3b09590f0ce29771ce2237f3d4dfa295464be8eef4357943dc1437d2e345d5a604e885a7c1f63061d1912ca7074bd4bca2aed24694bf324170364e1ca17d75895196155a5405cb1b0aacc8639142dbf0aba9f44d5665b2c28a701b9160d2fabbc09d98939a6922152afdaa83ec814b9617d0477704aa68411d955d83cf264f10325f01d5309bb165a0313f22e3d8d6e3f776413e3bc24ee9e136ff7a98165323b26ef5198f01efbc284a1a6b4891d36914499ae2f64c07b8ff26cc231388fcc4a220325fccee8878f32f3584b81d32b2d6da509555e71767b0129e2917ba5af3bd98d03fc83175a1a2a19b99e2e4447efc75dc26d7f8986b312641197442d970af85716449ab40ea2f7e8068046ae7b9397f52b45fcaf1cd857b10f651fc5da8feb3cdea3dce203e427a9f3f77fbd9be7b3295bafd45a91d5ee59bd2309d43fcd23dada6bdc3b775197713c84ddd1ccecb339a8399c792c7aa4b58f141bc36f9aa6ddbd42219cf7f8286f586cea2835e044e09739e97f7e3164798f5353141de1f4afd1c2392b250375bcafb11f2dcf8507b5754f18daa6143924f718c35a351e54bf4c3fc4ef7a0da3143c7d1a3bae53416f4ecb9b15fe2e6c10d549faaf14f0d432af07002798b93ba307c2f9a41984bb3f5bf62961b0d83a2504e711785677fe0e53f7d18b698c37ff459ab13181094725de45be7f7b357116f85ac7a083bd82c4d9b3a124ffbd9429399dfddd138b47755d297a0fe78cb88a113661546336c8ee7e112476cd7e8c1fc84b287f72c16262493f25a624e435a13b6abbafcf794c719ba3677ac7a1dd315ca4dbdfca04076368addd05f33213553e6ffa337a11daa0d7bc7388895a85fc12df45bd13dff67e3924aa562ffc7ad282c321ff025fcd26a76fcf53497dc6e70c78258c393dd7a8fad0280c3f0163621f051a3ac6b4ffc97f9ca49221a41d317ee0a03a24e4ee15122a8623b97d6f93b3a5286f2a30eb5652f4a05554b98142f70e2c69dbc6106355bcfc3d72573156bffa33d2a9f6945ca4fbacb723e690ec297bd28456f7ade0228690ce62e1b8df941f9e87406e8768aca46fc9ec327a1f4632fa8c73e41704425133262c8bdbe55a874363561ce99fd17f4bed04285978aa80e86cfa8f1943a61769dd7f690b061b15f894c6016c5e6199d84603736a61e5aa7be171e1a76abd8d6684fec975a0c1179ae022b5c5c37022dd225f852384f5054946847abcdc9cbd75a1d1e90844495c953eaacf724e12a27dd29e68bdf58b1663e164dc2c49b5454e95704f3df98af87c25eb8a0a1568bf726a7d136a44f17ed7d283a9519bca911c0f649b43b963394ada345dc92846bffd7bf94c66e4322e52835669bd37729c4ff9941106a7b2bbca72f89f85922ebc9d38fdd1d2fbba7ceeb03a512dd0dd2044b7d3e61752cc7e1e264079f9f491a1e78c97dfd6e2259661ad3e6a93d7569f51e58de719f3ac967509d8f5bd45b10d4fead4ec5af250793a764667f02a2d08263c831dd76b0e513fcd7a297f53407daa36007c26b92d50cf2c155bd50688651dbea613b20201c404e83e9b28925e55954b8cfd4ae29a20eeec432be7524cc7317e2b711faa66e1789a97d7992f51b4c8c3c608e3db44441b76e3edf8fdcbb54ce265c67d2d8305e4174732466b87aa9b5ab90458061891efd7f5073ebed62698a0c7931267088bf071a4eae258de94f36e57f56eaa3d7ab0278806bd090b2de65e23f73df630508fac4b621ce18146f715bc2f89be8244aaf459d78709e44886d5f9e9e310adadedd0f656acb24e8fbe4f3183ab560cae7f77451db12cf8c5bdf13c8d6dffdd991cf041bf26ed8e8339376cb414c9ff8892154b48c53e9d8caebca1c3fc0445ca6212202d5bfa4bdb921a5e466a3e1666bfddd2b8c4478c54bb6383784b6c8bec3d6ea8dd3aca8f88ca0e837d4f47d27a7a872b29a847eb5ae25bc2ae704842168c576f3eca2d7be3ea2cbb2c47e8bc1226d763e4285e3a3bc6b1b7f080466a04aa66534162f034a0681982f8abd148daa7e70d27bdd7d442541cefaf306a36d4cb25c71e7a7f5d9490dad36e62d3d3f34f1b02058ccc08ea0a55540b0ab28cb138afd9c740b0c59d3c64a4863a40791f75f5c9f9d29c40b482a1e27f64080657e3070222a9925eec60c06841bcb2b2c866a282f5190d3b5c4517221a90121e6d055479e718b9fb5e4a2848dec542e63b79a8c4da2d7a14732467f6282db19cfe94e83d8a4933a5e9df4d4adeb5a276a381676960b70b3602fb81c41bf1fcfc3088a5c17a747499ad6b625feff5b4d1653eee3c6136a998939d8a34bc7f1ff49654c5d46f3e839a6797a17590cb1758ac67f6525172cc3012bf3d8b7068429bd5f56254edaf63437da73da79d77536f7e8a0096b5227734a9ea238d90b9f03dcd98247ddd5aae5577c52ed6d0c1b1a1c94601d6a6a68802d4f4f8d9bb349c2d97a0f3097175f8f36674752f0d1a55f7240312b8fcef5a307a9b79eee28becdd6bdd200f9139c559db1ddf1fea4309ecf6f50f48d06d70b2346a049209b6284131f26839766d3552bab494ed96c7641fc23477176f3b1dcaf549c26cfad8d3e9eae7e04e10d02c228eab04ec166128af42c476da5929257d5148ea0bb8cd5b48493952c768841a4b37d5ff044e32605b23a4b74cd96379593786b6dd2387caf5f3810bfea6b8a2729d63a6d0e093f719f5ac1c8735b976a60eff08ea2b1bc9a2d9c8808bc3bbede4bf1bcae7659b6b3c33a26e8f0975170e15a5d94870b8be9ae697cc5b346b8db356440c23b7e7775c174210722027adfb37e5e16ae990ea801f40c25e7be09ea064a01668824f535e61c515e7d059690cb46538204ad78a6a0142616460308f075da9f0a99b12475d44093d7c85480bcdd53e1a1ec8361c194aaf93999a23dc3bf9050796d41e02f2f2c688dd5621fd53f56f1010e3643abb9669d7005a879f227d8c5c7f6d2a56338cfb2acb7db38525aed19330264d00f1f3b4c16cc52b06e3bb6f58d473ffc7eafe59321e1abb3081fdad2d137cb5bd548a13f424c8587b60a629993276894052132b94d41090b61e2a7c67057c47013398b86f16251eb7a120a9613895bee30c73c2d09a73a1e3bcdc3a817b8bb75965f51835a1a919178dd6634b618ddee1ebac394da77a8a8ca3d89a1922c117ccea20d97a6723c5e4a0ff67693e3af8b8bf17081ec7d807ff9208360953c212343d5f6084032383c981ca846ca04df0876b131a65cc8231ae1bea387e27827ef8a16a7b542434c47b4e716c566b82fda978dcb5737f45fdce43669f022dd8c8d2ef96af594a47adb5dc54141a32ebe084e9e7f2ea0136f5a2ab8b7ee0075a621d0ed52645d34cb2c485a08cfa4ee9ce26e89fde0f69b8e139c1820d24f6227ac0c281ceb6c8f9cba678e41ffb58373d975e752a98686b432fb72ded9537d313d27d732c43975857847f652aae53bbf504a6911f66db646be5297cce16916a088313a2e12e28a61f3007e5c9eb0aa3477c9e8cd4287c2e9ad4d6ff630a4ec249ea4d521196c5aca7df14e4513024a2a29349d15723633558d0f3c938f503c403ac3c7ab98a1148ed98be50c56f0c8b1967f6af61dcea688854aa1a6f8701218a13c467b74231ae0076043b97b1cb37a88e8b0bf1febd64bc5514ca6971682870c268c4a1699164c196bc08510dd3a333fe2b97e3d369df722ed7c4f757b1bbb9bcc389e26cac388851ad10f68fd61da013d7ee89463bca08a5566a55d780e608975103bbd90f7a5cd614dcb3d209202303d9daeec0bd4f1522b0251468b001dc5a883c107433d7d0709321437e232d4f5ac806851667b242484a89dde6844eaaa07468e681b87ba5aa17f721980a5038ed7a527bd569144c3edceaeb311f0fdb3bd7906e2c6b7706be69ed205d1761e68260184dfb20ae716048148a0aaf57638d161d419381db670d86ab8b97122010efcaa07899f0ee79f7667a5f71f45703f3c1a8d719b95b81176217d2e36743fbeac78c3a676bc5b6fbb3ca43c30b5bafede7caffde716d973d58e2fa041955ce348cbecd2dcb1d047fbacd7229640fbdb6785c49660baa94c9e6c2cda3f8847eb056661c22402435f6ead1fbaaaee955bbf143a3f6638ef66f66fa3ecb88d7ff9c1cb9e5636b7d0d45cb2024e1b6a518828a39d0c9b7ec07c06901886e22e426063276b99278f27520336900fcf13ba8c7330753eb32d94e933ac2c54ad4c9a68153f9aec59b4ba8a3e9d5fece5e505b5c50beebe5f0c30db3666eddf8d78c6b223766fbeea8606c29967f88f44746cfad7d95fa05c63cb19c509e62d9b5ecba4be3870c0a9f4412dfb237ec52997c398150b65f3e1a644971d5d8e721287731e13087b17a999a2cd850a131319a8609179be58fd4cc390fdd5202a5455084e43a1d8b8a28f58b2a8025c72bb313ba9df1db9ff79a4c8a2a1095057c8fe60b36bc454844e8a805a8cce795c44c9312e0b548735f1a5318216bdd9e89c1dbdf2eb54e7112328b4a5d9b915a269598d2a209c397d53992975a1f2ab5f68404d29968e5bfac5cf16cc6c832fb48dd565beacb453b03197adceed76311bcf72682d52dca31068b635005667489dc1f561914b431bf15ed503880fe8ccc6ea9be6f4b1a44143022d4f4516aeb9070a421928d88017b6cd8d8b664944bf136d28209b5fd89ae9fe2bb8f45800429790c6137e868eca8b7d96301e09d27ec87db711867fc452c535e7bae436df4312fb07ad5862789a3c267f42e99fb0d4236275f3c9faf36c0e54cfe604e3ccad63a056f7a12c64c134d5c5bba5d1467e3a345813b47e9f69d6bbcf3ecfae808d2fc75be3c231f2eff0a9adec1dc87dbdb493067cf7eebd73806d3e7026f944702d204514178ae23359908ab46af895884f574f946d7ae1e9dd5c4bdc4eb4f91dfbffe785304b51cbfc6683d79bf6c553c41c4b0c9957a82247d7fdd91f7edb36d36a3de89ff43589d351e014ed4e831e5d6396a7c1fad79f90f177be2ed1c34e935a0603fdafe972ad6a32452b35f457d3db300094bbc91b3406b087c5136baea6c8fb4d7b6dd02dd970ff9cf8959d7d74b4a8efe7ffbe9a1f978cce97aba07612843e42d8d23345b601b0d1c6a09f0a86d41905cbcf27d30bc84711652b3bd91a2a84058bb074c7c1287730b7e227da930c9d9d536d0bf3b2229772f9ae63b67e9390d5c85c0b6035dc79ade661815fb5031f10d8c20c15fae6c74ad952cb42fa598f9a15774d3830e030f7279dc41bc1253c3bd72df2137f7c07e30de7cb925293dce8b0c7c0fc1460a452a0bc8f9a428d88665ba153093c5a92a56938ee6fd4f9a57b4985724786c2702f3bece5bc45f1a051d0106ae1382d87582f7ada4a69811bb9e1e23cb6f63c9b20589588b9643b9022d39c9aad87bab5aab1438af6fd036f96b42eaa83dd49c198fe48da925e8c98d274b120ed72a8cded39fa7cff56e3991c9fb73fb8e82a8d9eca6b0e8c412107e40bf1fa192eace816deed48147a4e17309ce04a65bfae48b753e26a00c4061fa0619036eceb37a7569620ab69b0f454cf51b6b4b361d9e886f677e0b87738064e51b0e97ae80aa708b984d178c90ccaf0762a59ac481ebf585ed3b354789e8259364665a1032faee4bbe576e06d64719fcb18dbf2f9c8f9a5ed23502cb27ec4cc09d22da0f67ede35ec5fb1d02083bbefc79f762b2a02d4deb8781cc546a35bbdfb8db6ea428351a3b4f779bf11d7a7ed8128ca883cd4e2dcc9499fc68ca5bac4398269fd3c8a0c2fd39d6417aeb42dbd04a9adb61a6220dfa006831adc54c3e9b19e8106ea359395b0ba55cd964bf621d651ed2157ccae100b0ae356be5174666681f01894541a40765cab8200340733773dfddbe96b634e831b14e828763a0a40299c21145303ecbfd54b13dd06bbbe0fdc7e1e066fe8fdaa5a972c9b511dc64f9dd3a38761b9291db5d45c87767a51d75c176917323db8a5400586b4300e6dc8b10051f972f3aded398c9735b540b8690f5718a469de606917fcaaf737da6803942e6e824db9142758f017171442893239c3ec932bafda4928c0244d12849f564b99039e13a8b88b22d5ce4ef2bda791ba8e665c9bf1272cb0e388e64901e45a41f83968bc7c656660955510ff96d0ac9d76027be233e3e92ea4e405dbfa060e9faa8d65799126a192a0e915af5e8153c534e05691c594e20470aa48686f90f35d056045cd0651d6fe79f843733a625793f7dd0487f1dd805485a94e79e26eccd0df31bce67a449d73e227ede8a4c2d6de6438b5b6ba520b24d27b11331ab6436bcb5b6ce78492af2606c531369165f3333928e46fd0d87df55a412084dcac1c5ba5e10642bc27842927f121620fd93c327aae6642576af51d83b07ea11f6ade5e769c7d34181238c1d20ffa90e9e7e230667463c55b1e1ab31755e579f3fc257f792b4c2727f8a24852ef171217d94608a6ed4a1b0a6f16f4214143d46d9bfa8e66fa48834da9f4c5e905c64b1e3147b31b1e124061e62d1ab420b75e2d920eb4494b2293aefb20e5ade2f794ad2b03b2e2e309d99f2bebdd1599f2b1190a4dbefb028d4aec66120eba7d4913301151a6d5fc30bf759d88aef89ce624f25bb8137afea49fd6a6b57bddfd25a938d195d6454eda838752b72a61cd5fe2d3ffcfdd8b5fc9d5d1eee4946ab7cfd4eda806c77582e0256db8b6e0219e239e6e47a379515c44f62b2e104ad7ab8019dad4597ada95bbb458a1e687c808508185ffc83a758a6e1a3dec2914a5e56a0c696ae5dd8fdd2dc8dda4759c5a0d5a8ea713292808fd71dee33d2ee4b5503adeee614634fc4dc72c18fb0eac8f381b28c627826de0325dc49b21de66750766a22ca9b40041129da22ddf6e2de16c8620b771db3942ef1e68c7a7e6827b3329ab703cd1a40e0f38e4b895f07405e3d713a31e36f786fcd73d582171759b47c8963f94e73bb031f8a41ce45e0728b7f48b0fcb2d26f8c0a9ce95f8dc08faddb4535ac481383c1a231d7b7c5287b41b25b6f14rootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootliblouis-3.3.0-lp150.3.3.1.src.rpmliblouis-dataliblouis-data(x86-64)     rpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PartialHardlinkSets)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)3.0.4-14.6.0-14.0.4-14.0-15.2-1liblouis23.3.04.14.1\M[vY{Y*@Y@X@WUeW@V%@V@V'~@S4QőPP@P@PaPWPM@OG{MLx@KVJJ@J@J@Jq@mgorse@suse.commgorse@suse.comjengelh@inai.dejmatejek@suse.commgorse@suse.comdimstar@opensuse.orgdimstar@opensuse.orgmgorse@suse.comjengelh@inai.defcrozat@suse.comzaitor@opensuse.orgmgorse@suse.comzaitor@opensuse.orgdimstar@opensuse.orgzaitor@opensuse.orgdimstar@opensuse.orgdimstar@opensuse.orgvuntz@opensuse.orgvuntz@opensuse.orgdimstar@opensuse.orgvuntz@opensuse.orgvuntz@opensuse.orgvuntz@novell.comcaptain.magnus@opensuse.orgvuntz@novell.comvuntz@novell.comvuntz@novell.com- Add CVE-2018-17294.patch: fix a buffer overflow translating strings, backported from upstream (boo#1109319 CVE-2018-17294).- Add several security fixes: CVE-2018-11410.patch (boo#1094685 CVE-2018-11410) CVE-2018-11440.patch (boo#1095189 CVE-2018-11440) CVE-2018-11577.patch (boo#1095945 CVE-2018-11577) CVE-2018-11683.patch (boo#1095827 CVE-2018-11683) CVE-2018-11684.patch (boo#1095826 CVE-2018-11684) CVE-2018-11685.patch (boo#1095825 CVE-2018-11685) CVE-2018-12085.patch (boo#1097103 CVE-2018-12085)- Redo package summaries, and compact/trim descriptions for size.- drop separate spec files for python-louis and python3-louis - completely drop python2 bindings - build python3-louis as a subpackage of liblouis- Update to version 3.3.0: + New features - A new tool ~lou_maketable~ enables the creation of tables based on a corpus of known good Braille translations. This has huge potential to simplify table maintenance for tables that have so far been dominated by large exception lists. - A new API and a corresponding command line tool to query table meta data + UEB Grade 2: - Fix back-translation of whole word contractions followed by other contractions + Fix back-translation for contractions followed by punctuation + Security - Fix a number of CVEs (illegal address access, buffer overflow and use-after-free: boo#1056105 (CVE-2017-13738), boo#1056101 (CVE-2017-13739), boo#1056097 (CVE-2017-13740), boo#1056095 (CVE-2017-13741), boo#1056093 (CVE-2017-13742), boo#1056090 (CVE-2017-13743), and boo#1056088 (CVE-2017-13744) + Braille table improvements - Changes from version 3.2.0: + Bug fixes - Fix capsnocont opcode. Also mark capital letters with capsletter symbol when capsnocont is defined but no begcapsword indicator is defined. - Fix the syllable opcode. It had been broken under some circumstances since 3.0. + Other changes + Fix building of Python bindings when cross-compiling. - lou_checkyaml is now only installed if libyaml is available. - Enhance documentation on usage of display tables in particular in conjunction with Unicode dot patterns. + Braille table improvements - Changes from version 3.1.0: + New features: - Most of the translation tables now contain meta data. This makes them discoverable. Programs can use the lou_findTable function to find a table based on a query. - Add a noUndefinedDots mode to disable the output of dot numbers when back-translating undefined patterns. - When back translating input from a braille keyboard cell by cell, it is desirable to output characters as soon as they are produced. Similarly, when back translating contracted braille, it is desirable to provide a "guess" to the user of the characters they typed. To achieve this, liblouis needs to have the ability to produce no text when indicators (which don't produce a character by themselves) are not followed by another cell. This works already for indicators liblouis knows about such as capital sign, number sign, etc., but it does not work for indicators which are not (and cannot be) specifically defined as indicators. For example, in UEB, dots 4 5 6 alone produces the text "\456/". Setting the noUndefinedDots mode suppresses this dot number output. - Add a partialTrans mode to specify that back-translation input should be treated as an incomplete word. If this mode is set, rules that apply only for complete words or at the end of a word will not take effect. This is intended to be used when translating input typed on a braille keyboard to provide a rough idea to the user of the characters they are typing before the word is complete. + Bug fixes - - Fixes implicit declaration of 'pattern_check' - Fix a stackoverflow crash on applications with smaller stack size. - Fix the \v escape sequence. - The Python bindings now give a helpful error if liblouis has been compiled with a different character size than Python. - Massive bug fixes in multipass rules. Dave Mielke has done a tremendous job improving the multipass machinery also in the context of back-translation. Where needed nofor/noback has been added to the multipass rules. + Other changes - Improvements to the Emacs mode for editing liblouis tables - Documenting lou_charSize + Braille table improvements + License changes - DocArch has agreed to re-license their tables, so we have 8 more tables under the LGPLv2.1+. - Changes from version 3.0.0: + New features - Numerous features to support UEB properly. - support the many emphasis classes needed for UEB. - support translation of numbers according to the rules of UEB. - Capitalization is now handled just like emphasis. - support for numeric mode - UTF-8 support for all tools - Add ~lou_checkTable~ and ~lou_getTypeformForEmphClass~ to the C API and to the Python bindings + Bug fixes - Stop buffer overrun in ~lou_getProgramPath~, and also free memory after usage. + Other changes - The license of the library and most of the tables has been changed to LGPLv2.1+. + Braille table improvements * Changes from version 2.6.5: + New features - lou_trace supports backtranslation now. + Bug fixes - Fix a bug in the findtable code. - Fixes to the logging code + Other changes - Clean up dead code i.e. remove support for (undocumented) nobreak opcode. + Braille table improvements - Use %{version} in Source - Pass --enable-ucs4 to configure, for compatibility with python - Build with make -j1; otherwise make is unable to resolve some dependencies.- Define python_sitelib: newer versions of python-rpm-macros overwrite it to be python2 specific (python3 macros is called python3_sitelib). - To be on the safe side, define __python to python2 when not building for python3.- Move %install_info_delete from postun to preun. - Drop makeinfo BuildRequires: it's quite a big dependency and the .info file is present in the tarball. - Install doc directly (make_install -C doc).- Update to GNOME 3.20 Fate#318572- Use %{?_smp_mflags} for parallel build, newer %make_install for installation, and remove redundant %clean section.- Move data from library package to separate subpackage, to ensure library package can be safely upgraded.- Update to version 2.6.4: + New features: YAML based harness tests. Harness tests can now be written in simple YAML notation and they are integrated with the normal `make check' command. They can be used for both ucs2 and ucs4 and no Python is required. + Bug fixes: - Use a separate gnulib instance for the library and the tools. Use the strndup module to avoid build problems on windows. - Fix a problem with the nocross opcode when used in combination with the opcodes nocont and compbrl. - Fix a problem with the decoding of the harness test files. - Fix numerous problems in the way braille indicators are handled. There is now a safe version of the checkAttr function which makes sure that no attributes are checked beyond the boundaries of the currentInput. This fixes the random behavior with tests where the emphasis extends to the end of the input string. + Other changes: - If found use texi2any to build the documentation. - Fix permissions of Korean tables. - Update the windows build instructions. + Braille table improvements: - Changes from version 2.6.3: + New features: - [beta] The new function lou_findTable can be used for table discovery based on meta data in table headers. - The Python API now has a new function to check tables aptly named ~checkTable~. + Bug fixes: Fixed a problem in resolveTable when using a Java resolver. + Other changes: The build dependency on makeinfo is now optional. If it is not installed we simply do not build the documentation. + Braille table improvements. + Corrections and improvements made to UEB tables. - Changes from version 2.6.2: + New features: Harness tests now can test for typeform differences. + Bug fixes: Fix for emphasis bug. + Braille table improvements. - Changes from version 2.6.1: + New features: New Braille tables. + Braille table improvements. + Bug fixes: Fix a compiler warning in the logging code. + Documentation updates: The documentation has been restructured to be more beginner friendly and a short introduction to translation table writing has been added. + Other changes: - When compiling with mingw or cygwin resulting dll is liblouis.dll. - runHarness.py: add new output format, compact output mode suitable for grepping. + Backwards incompatible changes: - Deleted ga.ctb now superseded by ga-g1.utb and ga.g2.ctb. - Nl-Nl-g1.utb has been removed. It is superseded by nl-NL-g1.ctb. - nl-be-g1.utb has been removed. It is superseded by nl-BE-g1.ctb. - Changes from version 2.6.0: + New features: - New Braille tables. - Logging callback. There is now a callback system in place to get error messages and warnings. + Bug fixes: - Fix back translation problems when word gets split in unusual places causing back translation of whole words. - Fixed bug to prevent removal of \xffff between largesign rules. - Fixed a bug in back translation, when a letsign was encountered, the letsign was being applied beyond the element it applied to. - Fix memory leaks in the default table resolver introduced in the previous release. - Fixes to the build system. + Braille table improvements. - Bump soname following upstream changes, leading to rename of package liblouis2 to liblouis9. - Update url and sourceurl to new working ones. - Add exlicit makeinfo BuildRequires, we want to build documentation.-Update to version 2.5.4: + New features - Added function lou_registerTableResolver for plugging in a table resolver callback from your host language. + Bug Fixes - Fixed ENDSEGMENT indicator in computer Braille. - Emphasized words should now be contracted consistently. - Fixed several problems with back-translation. A slash within a number and strings such as 5-inch-diameter and 25-year-old-man should now back-translate correctly. - Fixed a problem with syllable opcode. - Fix warnings with gcc 4.8.2. - When a table is specified with an absolute or relative path, the "includes" in that table will now work as expected, meaning files in the same directory will be found. + Braille Table Improvements to fr-bfu-comp8, en-us-g2, en-ueb-g2, BUlgarian, en-gb-g1, Nemeth, Slovenian, Norwegian, Nepali, Danish. + Backwards incompatible changes - Delete the table chardefs-ueb.cti as these rules are now provided by en-ueb-chardefs.uti - Update source URL. - COPYING.LIB has been renamed to COPYING.LESSER - Use fdupes for base package.- Update to version 2.5.3: + New features: - New Braille tables. . Korean grade 1 and grade 2. . U.K. English 8 dot computer braille table. . New Russian literary and computer braille tables. These replace the older Russian tables which are left for backwards compatibility. . New hyphenation dictionary for Russian. . Updated hyphenation tables for the Norwegian language (nynorsk and bokmål). . New hyphenation dictionary for Esperanto. . New Esperanto grade 1 table, using the x system for accented letters. - runHarness.py: . Accept filename globs on the commandline to run specific harness files. In tests/harness, one can do make or make runall Removed from make check because these checks are checking the validity of our tables, rather than validity of the code. + Braille Table Improvements: - da-dk-g2.ctb, mostly rewritten to use nocross and hyphenation table. - Most tables: removed the default collapse whitespace statements, if you need to compress whitespace, consider adding compress.ctb to the list of tables when processing. - Corrections to Unified English Braille Code (Grade 1 and 2). - Corrections to apostrophes in the Computer Spanish 8 dots Braille table (Es-Es-G0.utb). - Corrections for double angle quotation marks and emphasis marks in the Norwegian Grade 0 Braille Table. - Fixes for a minor problem regarding the noletsign in Norwegian contracted braille. - Corrections to the Italian table. - Corrections to the Hungarian grade 1 table. - Corrections to English, U.S. Grade 2 (ABAE) table. - Further reorganization of the tables to remove duplication. Move litdigit opcode common parts and include where needed. - Removed obsolete en-us-g1.utb, which has been replaced by en-us-g1.ctb. - Added dictionary harness tests for: en-ueb-g2.ctb, en-us-g2.ctb. - Corrections to Nemeth character definitions. - Corrections to the Esperanto table. + Bug Fixes: - Cursor position calculation is now based on the same code that calculates inpos and outpos. This probably solves a number of bugs. - Fix nocross opcode processing. - Fix several buffer over/under runs in lou_translateString.c:hyphenate. - Fix the '=' problem, i.e. fix inputPositions calculation for the case where the equals sign is used as the dots operand. - Fix a bug when resizing a table. Previously not all references to this table were updated. + Backwards incompatible changes: - The feature that allowed a mapping between language code and Braille table was removed as it contained a out-of-bounds access bug, was never documented and probably never used.- Add python3-louis target.- Update to version 2.5.2: + New features: - New tool to trace rule application (lou_trace). - New Braille tables . Inuktitut grade 1. . UEB grade 1 and 2. . Korean table. - Braille Table Improvements - da-gk-g2.ctb, fixes for transposed â, å, æ, ä, ø and ö, corrected/improved harness tests. - Corrections for en-GB-g2.ctb. - Corrections to the Hungarian grade 1 table. + Bug Fixes: - Update gnulib. - Fix a bug in the correct opcode which causes sometimes random results when translating. - Fixes for compiler warnings. - Fix some Valgrind warnings about invalid reads.- Update to version 2.5.1: + Braille Table Improvements - Fix encoding problem in italian table and added more character definitions. - Rename it-it-g1.utb to it-it-comp6.utb and it-it-g1.utb2 to it-it-comp8.utb. + Bug fixes: - Fix outputPos and inlen where an input character generates multiple output characters.- Update to version 2.5.0: + New features: - New Braille tables . Estonian grade 0 . Portuguese 8 dot Computer braille - UTF-8 support in tables - Improvements to the python bindings - Add a doctest infrastructure - Support for Python 3 in the Python bindings + Improved C-based test framework + Improved documentation + Braille table improvements + Bug fixes - Remove checks for outdated openSUSE versions (<= 11.2).- Create a tools and a doc subpackages to contain the tools and documentation shipped by liblouis, instead of having a liblouis subpackage, since that's confusing (because what people are usually interested is the liblouis2 subpackage). - Ship COPYING.LIB in liblouis2 subpackage and COPYING in the tools subpackage since everything is LGPL-3.0+, except the tools that are GPL-3.0+. That fixes bnc#779253. - Since we don't have a liblouis subpackage anymore, add Provides and Obsoletes for it to liblouis2 for smooth upgrades.- Update to version 2.4.1: + New features: - Czech hyphenation table - Spanish grade 1 table - New tamil table + Braille Table Improvements: Icelandic 8-dot, Norwegian, Portuguese grade1, uncontracted Spanish. - Changes from version 2.4.0: + New features: - New Generic Farsi Grade 1 table - Emacs mode for editing Braille tables + Braille Table Improvements: Czech, French comp6 and comp8, Generic Arabic Grade 1, Romanian.- Update to version 2.3.0: + New features: - Multiple table search path (with LOUIS_TABLEPATH environment variable) - New --quiet option for lou_checktable - New functions to make libraries relocatable - New Braille tables: Swedish, Sorani (Kurdish), Ethiopic, Serbian, many Indian languages , Icelandic 6- and 8-dot, Catalan, Dutch Braille (for Belgium and the Netherlands), Flemish Braille Math Code (a.k.a. Woluwe code). + Braille Table Improvements: Chinse, Spanish Braille, French 6 and 8 dot, Italian 8 dot, Generic Arabic Grade 1, Spanish, Norwegian. + Bug fixes: - Fixed a long standing bug with an infinite loop in the table compiler + Improved documentation - Add pkg-config BuildRequires to get proper pkgconfig() provides.- Update to version 2.1.1: + Bug fixes: - Fixed problems with the Danish grade 2 table - Fixed problems with the Marburg maths table for mathematics and the UK maths table for mathematics - Changes from version 2.1.0: + New features: - New tables: . Added tables for Portuguese grade 1 and 2 . Added unicode.dis for Unicode braille - Modified tables: Updated Danish tables - Implemented language to table mapping - New format of error messages: the error messages are now reported in a format similar to the one used in gcc. - New opcode: added undefined opcode - Python bindings: . Allow the user to configure the maximum output length by specifying a number by which the input length is multiplied using the outlenMultiplier module variable. . Add compbrlLeftCursor mode constant. . Add compileString function which wraps lou_compileString. . Corrections/clarifications to docstrings. . Add python binding for the lou_hyphenate function. . Added python wrapper for lou_backTranslateString and lou_backTranslate. - Add liblouisxslt as an example to python/examples. - Add compbrlLeftCursor. + Bug fixes: - Fix the output cursorPos when the compbrlAtCursor mode is enabled and the characters around the cursor translate to multiple braille cells, such as in the Chinese braille tables. - Fix outpos when doing back translation - Fix the input/output position arrays for characters in the input which are undefined in the translation table. - Table fixes: . Fixed a bug with back translation of '*n'. . Fixes to the en-us-g2.ctb table - Python bindings: . Remove unnecessary imports, allowing the bindings to run in Python 2.7. . lou_translate* writes output information in typeform, so allocate enough bytes for it. Fixes possible buffer overruns and resultant crashes. - Miscellaneous: . Fixes to the man page generation to fix issues . Do not invoke help2man when cross-compiling . Documentation updates (issue 10) . Removing noletsign defaults . Many small fixes - Changes from version 2.0.0: + New function: Adding lou_charSize function - Changes from version 1.9.0: + New functions: - lou_dotsToChar and lou_charToDots function - Added lou_compileString for adding entries to tables at run-time.- Update to version 1.8.0: + This release contains a number of improvements notably the integrationof gnulib, the automatic generation of man pages and the addition of tables for German grade 2. + New features - New tables . Tables German Grade 2 . Swiss German - Modified tables . Updated Norwegian tables - man pages . All tools accept the --version and --help options and are documented in man pages - Corpus based test cases for tables + Bug fixes - Many small fixes - Rename liblouis0 subpackage to liblouis2, because of soname bump.- Fix python-louis build: with the new upstream release, we now need to build the library before building the python bindings.- Update to version 1.7.0: + The main new feature of this release is the support for UK and Marburg math. Other changes include a new tool to check hyphenation and the usual improvement and addition of tables. Also The test suite has been enhanced and finally passes + Fix for library name and Python bindings + Documentation fixes + Many small fixes - Remove liblouis-build-fix.patch. Fixed upstream - Remove liblouis-dlopen-versioned.patch. Code changed- Add liblouis-dlopen-versioned.patch to have the python bindings open the versioned .so library, so that they don't require the devel package. - Make python-louis require liblouis0.- Use python_sitelib instead of py_sitedir.- Initial package.cloud120 1553779144  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvw3.3.0-lp150.3.3.13.3.0-lp150.3.3.1liblouistablesCz-Cz-g1.utbEs-Es-G0.utbEs-Es-g1.utbFr-Ca-g2.ctbFr-Fr-g2.ctbIPA.utbLv-Lv-g1.utbPl-Pl-g1.utbSe-Se-g1.utbUEBC-g1.utbUEBC-g2.ctbafr-za-g1.ctbar-ar-g1.utbar-fa.utbar.tblas-in-g1.utbas.tblaw-in-g1.utbawa.tblbe-in-g1.utbbengali.ctibg.ctbbg.tblbh.ctbbh.tblbn.tblbo.ctbbo.tblboxes.ctbbr-in-g1.utbbra.tblbraille-patterns.ctica-chardefs.ctica-g1.ctbca.tblchardefs.ctichr-us-g1.ctbckb-chardefs.ctickb-g1.ctbckb-translation.ctickb.tblcompress.cticontrolchars.cticorrections.cticountries.ctics-chardefs.ctics-g1.ctbcs-translation.ctics.tblcy-cy-g1.utbcy-cy-g2.ctbcy.tblda-dk-6miscChars.ctida-dk-g08.ctbda-dk-g16-lit.ctbda-dk-g16.ctbda-dk-g18.ctbda-dk-g26-lit.ctbda-dk-g26.ctbda-dk-g26l-lit.ctbda-dk-g26l.ctbda-dk-g28.ctbda-dk-g28l.ctbda-dk-octobraille.disda-dk.disda-lt.ctbda.tblde-ch-accents.ctide-ch-g0.utbde-ch-g1.ctbde-ch-g2.ctbde-chardefs6.ctide-chardefs8.ctide-chess.ctbde-de-accents.ctide-de-comp8.ctbde-de-g0.utbde-de-g1.ctbde-de-g2.ctbde-de.disde-eurobrl6.disde-eurobrl6u.disde-g0-core.utide-g1-core.ctide-g2-core.ctide.tblde_CH.tblde_DE.tbldevanagari.ctidigits6Dots.utidigits6DotsPlusDot6.utidigits8Dots.utidra.ctbdra.tblel.ctbel.tblen-GB-g2.ctben-chess.ctben-gb-comp8.ctben-gb-g1.utben-in-g1.ctben-ueb-chardefs.utien-ueb-g1.ctben-ueb-g2.ctben-ueb-math.ctben-us-brf.disen-us-comp6.ctben-us-comp8-ext.utben-us-comp8.ctben-us-compbrl.ctben-us-g1.ctben-us-g2.ctben-us-interline.ctben-us-mathtext.ctben.tblen_AS.tblen_CA.ctben_CA.tblen_GB.tblen_US-comp8-ext.tblen_US.tbleo-g1-x-system.ctbeo-g1.ctbeo.tbles-chardefs.cties-g1.ctbes-new.dises-old.dises-translation.cties.tblet-g0.utbet.ctbet.tblethio-g1.ctbeurodefs.ctifa-ir-comp8.ctbfa-ir-g1.utbfi-fi-8dot.ctbfi-fi.ctbfi.tblfi.utbfi1.ctbfi2.ctbfr-2007.ctbfr-bfu-comp6.utbfr-bfu-comp68.ctifr-bfu-comp8.utbfr-bfu-g2.ctbfr-ca-g1.utbfr-fr-g1.utbfr.tblfr_CA.tblfr_FR.tblga-g1.utbga-g2.ctbga.tblgd.ctbgd.tblgez.tblgon.ctbgon.tblgr-bb.ctbgr-pl-comp8.utigu-in-g1.utbgu.tblgujarati.ctigurumuki.ctihaw-us-g1.ctbhe.ctbhe.tblhi-in-g1.utbhi.tblhr-chardefs.ctihr-comp8.tblhr-comp8.utbhr-digits.utihr-g1.ctbhr-g1.tblhr-translation.ctihu-backtranslate-correction.dishu-chardefs.ctihu-exceptionwords.ctihu-hu-comp8.ctbhu-hu-g1.ctbhu-hu-g2.ctbhu-hu-g2_exceptions.ctihu.tblhy.ctbhy.tblhyph_brl_da_dk.dichyph_cs_CZ.dichyph_da_DK.dichyph_de_DE.dichyph_en_US.dichyph_eo.dichyph_es_ES.dichyph_fr_FR.dichyph_hu_HU.dichyph_it_IT.dichyph_nb_NO.dichyph_nl_NL.dichyph_nn_NO.dichyph_pl_PL.dichyph_pt_PT.dichyph_ru.dichyph_sv_SE.dicis-chardefs6.ctiis-chardefs8.ctiis.ctbis.tblit-it-comp6.utbit-it-comp8.utbit.tbliu-ca-g1.ctbka-in-g1.utbkannada.ctikh-in-g1.utbkha.tblkn.tblko-2006-g1.ctbko-2006-g2.ctbko-2006.ctiko-chars.ctiko-g1-rules.ctiko-g1.ctbko-g2-rules.ctiko-g2.ctbko.ctikok.ctbkok.tblkru.ctbkru.tblks-in-g1.utblatinLetterDef6Dots.utilatinLetterDef8Dots.utilitdigits6Dots.utilitdigits6DotsPlusDot6.utiloweredDigits6Dots.utiloweredDigits8Dots.utilt.ctblt.tbllv.tblmalayalam.ctimao-nz-g1.ctbmarburg.ctbmarburg_edit.ctbmarburg_single_cell_defs.ctimarburg_unicode_defs.ctiml-in-g1.utbml.tblmn-MN.utbmn-in-g1.utbmni.tblmr-in-g1.utbmr.tblmt.ctbmt.tblmun.ctbmun.tblmwr.ctbmwr.tblne.ctbne.tblnemeth.ctbnemeth_edit.ctbnemethdefs.ctinl-BE-g0.utbnl-BE.disnl-NL-g0.utbnl-chardefs.utinl-g0.utinl.tblnl_BE.tblnl_NL.tblno-no-8dot-fallback-6dot-g0.utbno-no-8dot.utbno-no-chardefs6.utino-no-comp8.ctbno-no-g0.utbno-no-g1.ctbno-no-g2.ctbno-no-g3.ctbno-no-generic.ctbno-no-generic.disno-no-latinLetterDef6Dots_diacritics.utino-no.disno.tblnp-in-g1.utbor-in-g1.utbor.tbloriya.ctipa.tblpi.ctbpi.tblpl-pl-comp8.ctbpl.tblprintables.ctipt-pt-comp8.ctbpt-pt-g1.utbpt-pt-g2.ctbpt.tblpu-in-g1.utbro.ctbro.tblru-chardefs.ctiru-compbrl.ctbru-letters.disru-litbrl.ctbru-ru-g1.utbru-ru.disru.ctbru.tblsa-in-g1.utbsa.tblsd.tblse-se.ctbse-se.dissi-in-g1.utbsin.ctisin.utbsk-chardefs.ctisk-g1.ctbsk-sk-g1.utbsk-sk.utbsk-translation.ctisk.tblsl-si-comp8.ctbsl-si-g1.utbsl.tblsot-za-g1.ctbspaces.ctbsr-chardefs.ctisr-g1.ctbsr.tblsv-1989.ctbsv-1996.ctbsv.tblta-ta-g1.ctbta.ctbta.tbltamil.ctite-in-g1.utbte.tbltelugu.ctitext_nabcc.distr-g1.ctbtr.ctbtr.tbltsn-za-g1.ctbukchardefs.ctiukmaths.ctbukmaths_edit.ctbukmaths_single_cell_defs.ctiukmaths_unicode_defs.ctiuni-text.disunicode-braille.utbunicode.disunicodedefs.ctiur-pk-g1.utbur-pk-g2.ctbus-table.disvi-g1.ctbvi.ctbvi.tblwiskunde-chardefs.ctiwiskunde-translation.ctiwiskunde.ctbzh-chn.ctbzh-hk.ctbzh-tw.ctbzh_CHN.tblzh_HK.tblzh_TW.tbl/usr/share//usr/share/liblouis//usr/share/liblouis/tables/-fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -gobs://build.opensuse.org/openSUSE:Maintenance:9928/openSUSE_Leap_15.0_Update/6b0973730df621965952a3a6e5c43a36-liblouis.openSUSE_Leap_15.0_Updatedrpmxz5x86_64-suse-linux      directoryUTF-8 Unicode textASCII textC source, ASCII textASCII text, with very long linesASCII text, with CRLF line terminatorsUTF-8 Unicode text, with very long linesUTF-8 Unicode text, with CRLF line terminatorsC source, UTF-8 Unicode texttroff or preprocessor input, UTF-8 Unicode textISO-8859 texttroff or preprocessor input, ISO-8859 texttroff or preprocessor input, ASCII textj~LXM7utf-8a4fd532feb26b2e96b4ca93ca8ed0b5d1c414de763e360cfa30dded14eda3944? 7zXZ !t/ ]"k%ʽdccd^GHGs8+ǚRD` vt T v K*2>^L ?B[4jynu۲@QC9p_.$ё>T^L E6>1jx5Rí#JjZo0B`:gp)vf F eTMV'v<ظGm{0c˥dWx3 H]7# }sK?G[uSnkВ֞lT*T RqAGG`9?p{0TkH>?xj+W؞ׂ{f aBA"? Cȃ<[ JqR̅S\|S=ͻ9F<#bmw &\Rp-9=cW/xc?5({V+AuHb붰]>i&5vmIT8:fCQī ]|Bca-wp4<]LVлbј4ތn"g|pf(ºxZų mN^e96'Y.\ UZ? ^T`uQCPR$}TTgqoiqU &BޓyXw%JWA `XjZ /#<^o?|0bhچo#,#ܾrxXV>[a+gr؀LG]A>>vxV!.l^uiy}/X#͘B a])# eg [y4u}1?C()ys ZtNVeDUjdm'::*0}!P< GvM'XL8;IlbEQDl{͡h n1=h_du!lh<'\Wu(s## !^3606.>?@1 ȗ9nT^Zw㗡/T \/xf. 0 'Afd0!][ՇND5؂{-~α0ld& ؍e8_ _0@"\ n݂p̪6Hnk'JEįD6RVg} f Ht.[Fj4/,ؚqJ>FζE-jvڰfuKpnw{yw37[]i^1*`~QA;sWY ]~ö 7.vnT eP6ٻ|$tO6J 嚓}G_H{ʭ_Pr$]*2'@[Vu1Oѝ!ԅ6۟O^LY_FQR7 D!?r_nUjytxw%\t?4^%-4͗U t#7J8!aNUNf"s0;y'w,Z(G+:ڭv2"ĝݢy*JCyܠ:pC#L-dgk:nd`QG2Hb2 %P*Edl"D]܃\} M}LeehZq]呯o~H^ n|+ߋS<^`z@LۂT39-2myP)v]4N@Ȁ  >EKGhtHr_[^J/c-Zmt Mz`3g4!R#=gX;R/=CN.k?ʗ:0; o͒v=M~.uO